我在MSDN网站上找到了一个很好的例子。SQLConnect
我想连接到一个SQL服务器,我的数据库,但不幸的是,SQL connect总是返回-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。
有人知道我做错了什么吗?
谢谢!

最佳答案

SqlConnect不接受连接字符串,它只接受数据源名称(DSN)。DSN在管理工具中的ODBC管理工具中配置。如果要使用连接字符串,则需要使用SqlDriverConnect

关于c - 什么是通过SQLConnect的正确ConnectionString?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9288903/

10-11 16:45