[英][Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
I am trying to connect SQL Server in C++ using below code but i am getting the same error "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified" 我正在尝试使用以下代码在C ++中连接SQL Server,但出现相同的错误“ [[Microsoft] [ODBC Driver Manager]数据源名称未找到,未指定默认驱动程序”
SQLHANDLE sqlenvhandle;
SQLHANDLE sqlconnectionhandle;
SQLHANDLE sqlstatementhandle;
SQLRETURN retcode;
do
{
if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &sqlenvhandle))
break;
if(SQL_SUCCESS!=SQLSetEnvAttr(sqlenvhandle,SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0))
break;
if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_DBC, sqlenvhandle, &sqlconnectionhandle))
break;
SQLWCHAR retconstring[1024];
switch(SQLDriverConnect (sqlconnectionhandle, NULL,
(SQLWCHAR*)"DRIVER={SQL Server};SERVER=(IPADDRESS\\SQLEXPRESS);DATABASE=test;UID=sa;PWD=abcd$1234;",
SQL_NTS, retconstring, 1024, NULL,SQL_DRIVER_NOPROMPT))
{
case SQL_SUCCESS_WITH_INFO:
//show_error(SQL_HANDLE_DBC, sqlconnectionhandle);
retcode = 0;
break;
case SQL_INVALID_HANDLE:
case SQL_ERROR:
//show_error(SQL_HANDLE_DBC, sqlconnectionhandle);
SQLWCHAR sqlstate[1024];
SQLWCHAR message[1024];
if(SQL_SUCCESS == SQLGetDiagRec(SQL_HANDLE_DBC, sqlconnectionhandle, 1, sqlstate, NULL, message, 1024, NULL))
{
retcode = -1;
break;
}
default:
break;
}
if(retcode == -1)
break;
if(SQL_SUCCESS!=SQLAllocHandle(SQL_HANDLE_STMT, sqlconnectionhandle, &sqlstatementhandle))
break;
if(SQL_SUCCESS!=SQLExecDirect(sqlstatementhandle, (SQLWCHAR*)"select * from testtable", SQL_NTS))
{
//show_error(SQL_HANDLE_STMT, sqlstatementhandle);
break;
}
else
{
char name[64];
char address[64];
int id;
while(SQLFetch(sqlstatementhandle)==SQL_SUCCESS)
{
SQLGetData(sqlstatementhandle, 1, SQL_C_ULONG, &id, 0, NULL);
SQLGetData(sqlstatementhandle, 2, SQL_C_CHAR, name, 64, NULL);
SQLGetData(sqlstatementhandle, 3, SQL_C_CHAR, address, 64, NULL);
}
}
}
while(FALSE);
SQLFreeHandle(SQL_HANDLE_STMT, sqlstatementhandle );
SQLDisconnect(sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_DBC, sqlconnectionhandle);
SQLFreeHandle(SQL_HANDLE_ENV, sqlenvhandle);
Current configuration is below: 当前配置如下:
but getting same error for all these settings. 但是对于所有这些设置都会遇到相同的错误。
Please let me know if i am missing anything or do i need to change my connection string or if there is any other way to connect SQL Server in C++. 请让我知道我是否丢失任何东西,或者是否需要更改我的连接字符串,或者是否有任何其他方法可以使用C ++连接SQL Server。
I have just added the _T in the connection string argument and it worked. 我刚刚在连接字符串参数中添加了_T,并且它起作用了。
(SQLWCHAR*)_T("DRIVER={SQL Server};SERVER=(IPADDRESS\\SQLEXPRESS);
DATABASE=test; UID=sa;PWD=abcd$1234;")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.