c - Hvad er den korrekte ConnectionString for at passere SQLConnect?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har fundet et godt eksempel på MSDN-webstedet. SQLConnect [4]


Jeg vil forbinde til en SQL-server, til min database, men desværre returnerer SQLConnect altid -1, og applikationen fryser.


Jeg har redigeret koden ovenfor:


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("
\%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( "
Failed \%d",rc );
    SQLFreeConnect( henv );
    SQLFreeEnv( henv );
    SQLFreeConnect( hdbc );
    if ( hstmt ) error\_out();
    exit( -1 );
}
printf("
Connected");
rc = SQLAllocStmt( hdbc, &hstmt );
}


Ved hjælp af SQLDriverConnect kan jeg oprette forbindelse til min database, men jeg vil bruge SQLConnect, hvis det er muligt.
Har nogen nogen ide om, hvad gør jeg forkert?


Tak!

Bedste reference


SqlConnect accepterer ikke en forbindelsestreng, det accepterer kun et datakildenavn (DSN). DSN'er er konfigureret i ODBC Administrationsværktøjet i Administrative Værktøjer. Hvis du vil bruge en forbindelsestreng, skal du bruge SqlDriverConnect