SQLDriverConnectA not working

i am trying to connect sql 2008 r2 express with vc++ 2010 professional on xp
but fails , what is wrong here ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include<iostream>
#include<Windows.h>
#include <sqlext.h>
using namespace std;

int main()
{
	SQLHENV henv;
   SQLHDBC hdbc;
   SQLHSTMT hstmt;
   SQLRETURN retcode;

   SQLCHAR OutConnStr[255];
   SQLSMALLINT OutConnStrLen;

   HWND desktopHandle = GetDesktopWindow();   // desktop's window handle

   // Allocate environment handle
   retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);

   // Set the ODBC version environment attribute
   if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
      retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER*)SQL_OV_ODBC3, 0); 

      // Allocate connection handle
      if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
         retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); 

         // Set login timeout to 5 seconds
         if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
            SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);

			//DRIVER={SQL Server Native Client 10};SERVER=(local);Trusted_Connection=yes
			//FILEDSN=C:\\my_programs\\myDSN;Trusted_Connection=yes

            retcode = SQLDriverConnectA( // SQL_NULL_HDBC
               hdbc, 
               NULL, 
               (SQLCHAR*)"[ODBC];DRIVER=SQL Server;SERVER=WW2001453\SQLEXPRESS;DATABASE=vivdb;Trusted_Connection=Yes;", 
               _countof("[ODBC];DRIVER=SQL Server;SERVER=WW2001453\SQLEXPRESS;DATABASE=vivdb;Trusted_Connection=Yes;"),
               OutConnStr,
               255, 
               &OutConnStrLen,
               SQL_DRIVER_NOPROMPT );

            // Allocate statement handle
            if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {               
               retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); 

               // Process data
               if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) {
                  SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
               }

               SQLDisconnect(hdbc);
            }

            SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
         }
      }
      SQLFreeHandle(SQL_HANDLE_ENV, henv);
   }
   return 0;
}
got it connection string need to modify as below

"DRIVER=SQL Server;SERVER=WW2001453\\SQLEXPRESS;DATABASE=vivdb;Trusted_Connection=Yes;"
Last edited on
Topic archived. No new replies allowed.