我在MSDN网站上找到了一个很好的例子。 SQLConnect
我想连接到SQL服务器,连接到我的数据库,但不幸的是,SQLConnect总是返回-1,应用程序冻结。
我编辑了上面的代码:
direxec::direxec()
{
_mbscpy_s( chr_ds_name, MAX_DATA, ( const unsigned char * )"Server=mySQLServer;Database=myDatabaseName;" );
_mbscpy_s( uid, MAX_DATA, ( const unsigned char * )"testuser" );
_mbscpy_s( pwd, MAX_DATA, ( const unsigned char * )"testpassword" );
printf("\n%s",chr_ds_name);
}
void direxec::sqlconn()
{
SQLAllocEnv( &henv );
SQLAllocConnect( henv, &hdbc );
rc = SQLConnect( hdbc, chr_ds_name, SQL_NTS, uid, SQL_NTS, pwd, SQL_NTS );
// Deallocate handles, display error message, and exit.
if ( !MYSQLSUCCESS( rc ) )
{
printf( "\nFailed %d",rc );
SQLFreeConnect( henv );
SQLFreeEnv( henv );
SQLFreeConnect( hdbc );
if ( hstmt ) error_out();
exit( -1 );
}
printf("\nConnected");
rc = SQLAllocStmt( hdbc, &hstmt );
}
使用SQLDriverConnect我可以连接到我的数据库,但是如果可能的话我想使用SQLConnect。 有谁知道我做错了什么?
谢谢!
答案 0 :(得分:1)
SqlConnect
不接受连接字符串,它只接受数据源名称(DSN)。 DSN是在“管理工具”的“ODBC管理工具”中配置的。如果要使用连接字符串,则需要使用SqlDriverConnect