传递SQLConnect的正确ConnectionString是什么?

时间:2012-02-15 06:33:34

标签: c windows

我在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。 有谁知道我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

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