错误/异常说明了问题所在(尽管乍一看似乎有点通用)。
“未找到数据源名称,也未指定默认驱动程序”
找不到数据源名称->您未指定DSN,但未指定
要使用DSN,请忽略此部分
。
并且未指定默认驱动程序->您打算使用驱动程序,因此这部分错误很可能适用于您。
语法上正确显示连接字符串:“ Driver = { Driver Name } ...”,因此下一个
步骤是检查您尝试使用的名为SQL Native Client的驱动程序是否存在
在您的计算机上。
“ SQL Native Client”是SQL Server 2005的驱动程序名称。
在SQL2008中,驱动程序名称获得了版本描述符。
Driver={SQL Native Client},sql2005
Driver={SQL Server Native Client 10.0},sql2008
Driver={SQL Server Native Client 11.0},sql2012 and later
Driver={ODBC Driver 11 for SQL Server},sql2012 and later,odbc appears in the name
Driver={ODBC Driver 13 for SQL Server}
Driver={ODBC Driver 17 for SQL Server}
在计算机上查找已安装的“ SQL Native”和“ SQL Server ODBC驱动程序”驱动程序的简单方法是运行ODBC数据源管理器。在搜索框中输入Odbc数据源,或在命令/地址栏中输入odbcad32.exe(对于64位:%windir%\ system32 \ odbcad32.exe)
在ODBC数据源管理器中,切换到“驱动程序”选项卡,您将在这里找到所有可用的/已安装的驱动程序。
这是一个Powershell脚本,可使用odbc打开与localhost的连接。根据安装的驱动程序进行相应调整
cls
$conn = new-object system.data.odbc.odbcconnection
$conn.connectionstring =
# all these installed on my pc and working
#"Driver={SQL Server Native Client 11.0};Server=localhost; Database=master;Trusted_Connection=yes;"
#"Driver={SQL Server};Server=localhost; Database=master;Trusted_Connection=yes;"
#"Driver={ODBC Driver 11 for SQL Server};Server=localhost; Database=master;Trusted_Connection=yes;"
"Driver={ODBC Driver 17 for SQL Server};Server=localhost; Database=master;Trusted_Connection=yes;"
$conn.Open()
$conn.State
$conn.Close();
..和mfc按钮
void CMFCDBTestDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
CDatabase database;
CString connectionstring = _T("Driver={SQL Server Native Client 10.0};Server=localhost;Trusted_Connection=yes;");
CString messagetext;
TRY{
//database.Open(NULL,FALSE,connectionstring,FALSE); //ok
database.OpenEx(connectionstring,CDatabase::noOdbcDialog); //ok
if (database.IsOpen()){
messagetext = _T("open,database:") + database.GetDatabaseName();
database.Close();
}
}CATCH(CDBException,e) {
messagetext = _T("Database error: ")+e->m_strError;
}
END_CATCH;
AfxMessageBox(messagetext,0);
}
,
创建带有udl扩展名的文件。示例:test.udl
双击文件。使用GUI连接到数据库。完成后,使用记事本打开UDL文件并提取连接字符串。
请参见https://www.dmxzone.com/go/312/how-to-generate-an-ado-connection-string/
,
问题出在以下地方,因为连接字符串中的多余空格:
“驱动程序= {SQL Native Client};服务器= MYPC; Trusted_Connection =是;”
到(并更改驱动程序名称):
“ Driver = {SQL Server Native Client 10.0}; Server = MYPC; Trusted_Connection =是;”
连接将成功。
本文链接:https://www.f2er.com/2965580.html