• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 487
  • Last Modified:

problem accessing database headers thru C++ program

When i try to run this program

*******************************************
#include <windows.h>
#include <sqlext.h>
#include <stdio.h>
int main(void)

{

                HENV                      hEnv = NULL;
                // Env Handle from SQLAllocEnv()                
            HDBC                      hDBC = NULL;                                                      
            // Connection handle                
HSTMT                   hStmt = NULL;                                                      
// Statement handle                UCHAR                  
szDSN[SQL_MAX_DSN_LENGTH] = "db97";                
// Data Source Name buffer
UCHAR*                  szUID = NULL;                                                      
// User ID buffer                
UCHAR*                  szPasswd = NULL;                                                                
// Password buffer                
UCHAR                   szModel[128];                                                        
// Model buffer                
SDWORD             cbModel;                                                                
// Model buffer bytes recieved                
UCHAR                   szSqlStr[] = "Select Model From Makes Where Make='Vauxhall'";                
// SQL string                
RETCODE              retcode;                                                                  
// Return code                                
// Allocate memory for ODBC Environment handle                SQLAllocEnv (&hEnv);                
// Allocate memory for the connection handle
                SQLAllocConnect (hEnv, &hDBC);
                // Connect to the data source "db97" using userid and password.
                retcode = SQLConnect (hDBC, szDSN, SQL_NTS, szUID, SQL_NTS, szPasswd, SQL_NTS);
                if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
                {
                                // Allocate memory for the statement handle
                                retcode = SQLAllocStmt (hDBC, &hStmt);
                                // Prepare the SQL statement by assigning it to the statement handle
                               retcode = SQLPrepare (hStmt, szSqlStr, sizeof (szSqlStr));
                                // Execute the SQL statement handle
                                retcode = SQLExecute (hStmt);
                                // Project only column 1 which is the models
                               SQLBindCol (hStmt, 1, SQL_C_CHAR, szModel, sizeof(szModel), &cbModel);
                                // Get row of data from the result set defined above in the statement
                               retcode = SQLFetch (hStmt);
                                while (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
                                {
                                                printf ("\t%s\n", szModel);                                                // Print row (model)
                                                retcode = SQLFetch (hStmt);                                 // Fetch next row from result set
                               }
                               // Free the allocated statement handle
                                SQLFreeStmt (hStmt, SQL_DROP);
                                // Disconnect from datasource
                                SQLDisconnect (hDBC);
                }
               // Free the allocated connection handle
                SQLFreeConnect (hDBC);
                // Free the allocated ODBC environment handle
                SQLFreeEnv (hEnv);
                return 0;}
*******************************************


i get the following error, i have included odbc.lib, odbccpp.lib and winmm.lib while compiling the program


Warning W8004 DBC.cpp 70: 'retcode' is assigned a value that is never used in function main()
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'SQLAllocEnv' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLAllocConnect' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLConnect' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLAllocStmt' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLPrepare' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLExecute' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLBindCol' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLFetch' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLFreeStmt' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLDisconnect' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLFreeConnect' referenced from C:\JAVA\JNI\DBC.OBJ
Error: Unresolved external 'SQLFreeEnv' referenced from C:\JAVA\JNI\DBC.OBJ
0
bhavanigiritharan
Asked:
bhavanigiritharan
  • 2
1 Solution
 
SteHCommented:
It seems that a library with SQL functions is missing in your build. Add it to the project (to the objects the linker treats).
0
 
jkrCommented:
More specific: You need to add ODBC32.LIB to your project also.
0
 
bhavanigiritharanAuthor Commented:
Thanks a lot for the replies.

I am sorry, this is probably the third program i am trying to run in CPP, other than hello world's..

I am not sure of how to add odbc32.lib to my project.

this is the command i use to compile the code..
c:> bcc32 -I"c:\borland\bcc55\include" -I"c:\java\lcc\lib" -L"c:\borland\bcc55\lib" -okewl  DBC.cpp


where c:\java\c\lcc\lib has odbc32.lib.


0
 
jkrCommented:
Then you should use

bcc32 -I"c:\borland\bcc55\include" -I"c:\java\lcc\lib" -L"c:\borland\bcc55\lib" -okewl  DBC.cpp odbc32.lib

0

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now