From 116bc14c55ca56f3269910c73aa180d38afc622f Mon Sep 17 00:00:00 2001 From: prabatuty Date: Mon, 2 May 2011 17:01:18 +0000 Subject: [PATCH] windows odbc example --- tmptest/winodbctest/odbctestcsql.cpp | 211 +++++++++++++++++++++ tmptest/winodbctest/winodbctest.sln | 20 ++ tmptest/winodbctest/winodbctest.suo | Bin 0 -> 22016 bytes .../winodbctest/winodbctest/winodbctest.vcxproj | 85 +++++++++ .../winodbctest/winodbctest.vcxproj.filters | 22 +++ .../winodbctest/winodbctest.vcxproj.user | 3 + 6 files changed, 341 insertions(+) create mode 100644 tmptest/winodbctest/odbctestcsql.cpp create mode 100644 tmptest/winodbctest/winodbctest.sln create mode 100644 tmptest/winodbctest/winodbctest.suo create mode 100644 tmptest/winodbctest/winodbctest/winodbctest.vcxproj create mode 100644 tmptest/winodbctest/winodbctest/winodbctest.vcxproj.filters create mode 100644 tmptest/winodbctest/winodbctest/winodbctest.vcxproj.user diff --git a/tmptest/winodbctest/odbctestcsql.cpp b/tmptest/winodbctest/odbctestcsql.cpp new file mode 100644 index 00000000..2d4e5d77 --- /dev/null +++ b/tmptest/winodbctest/odbctestcsql.cpp @@ -0,0 +1,211 @@ +// odbctestcsql.cpp : Defines the entry point for the console application. +// + +int mainfn(); + +int main(int argc, char* argv[]) +{ + return mainfn(); +} +#include +#include +#include +#include +#include +#include + +void checkrc(int rc,int line) +{ + if(rc) + { + printf("Error %d at line %d\n", rc, line); + exit(1); + } +} + +int mainfn() +{ + SQLHENV env; + SQLHDBC dbc; + SQLHSTMT stmt; + SQLRETURN ret; + SQLCHAR outstr[1024]; + SQLSMALLINT outstrlen; + printf("STARTED\n"); + + //Allocate an environment handle + ret = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env); + checkrc(ret,__LINE__); + printf("Allocate env handle\n"); + + //we need ODBC3 support + SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0); + printf("Allocate setenv handle\n"); + + //Allocate a Connection handle + ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc); + checkrc(ret,__LINE__); + printf("Allocate conn handle\n"); + + char dsn[1024]; + strcpy(dsn, "DSN=mycsql;MODE=csql;SERVER=192.168.1.3;PORT=5678;"); + //connect to Data source + ret = SQLConnect (dbc, + (SQLCHAR *) dsn, (SQLSMALLINT) strlen (dsn), + (SQLCHAR *) "root", + (SQLSMALLINT) strlen ("root"), + (SQLCHAR *) "manager", + (SQLSMALLINT) strlen ("manager")); + printf("connect called\n"); +/* + //connect using unixODBC Driver Manager + ret = SQLDriverConnect(dbc, NULL, (SQLCHAR*) + "DSN=mycsql;USER=root;PASSWORD=manager;", SQL_NTS, + outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT); + + */ + + if(SQL_SUCCEEDED(ret)) + { + printf("Connected to CSQL\n"); + } + else + { + printf("error in connection\n"); + ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc); + checkrc(ret,__LINE__); + ret = SQLFreeHandle(SQL_HANDLE_ENV,env); + checkrc(ret,__LINE__); + return 2; + } + + // Allocation of statement handle for DDL nad DML Operation + ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt); + checkrc(ret,__LINE__); + + // create table 'T1' with two fields, F1 INTEGER AND F2 CHAR. + SQLCHAR table[200]= "CREATE TABLE T1(F1 INT,F2 CHAR(20))"; + + ret = SQLPrepare(stmt,table,SQL_NTS); + checkrc(ret,__LINE__); + + ret = SQLExecute(stmt); + checkrc(ret,__LINE__); + + printf("Table T1 created\n"); + + //Insert 10 Tuples into the table 'T1' + int id=10; + char name[20]="THIRU"; + char names[10][20]={"Gopal", "Aruna", "Kanchana", "Vijay", "Ganga", + "XieLiang", "Rajesh", "Steve", "Veda", "Jitendra" }; + + + SQLINTEGER slen = SQL_NTS; + + ret = SQLPrepare(stmt,(unsigned char*)"INSERT INTO T1 VALUES(?,?);",SQL_NTS); + checkrc(ret,__LINE__); + + ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&id,0,NULL); + checkrc(ret,__LINE__); + + ret = SQLBindParameter(stmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,196,0,(void*)name,0,&slen); + checkrc(ret,__LINE__); + + int i,count=0; + for(i=0;i<10;i++) + { + id++; + strcpy(name,names[i]); + + ret = SQLExecute(stmt); + checkrc(ret,__LINE__); + + ret = SQLTransact(env,dbc,SQL_COMMIT); + checkrc(ret,__LINE__); + count++; + } + printf("%d Rows inserted\n",count); + + + //Fetch rows from the table 'T1' + int id1=10; + + ret = SQLPrepare(stmt,(unsigned char*)"SELECT * FROM T1;",SQL_NTS); + checkrc(ret,__LINE__); + + ret = SQLBindCol(stmt,1,SQL_C_SLONG,&id1,0,NULL); + checkrc(ret,__LINE__); + + ret = SQLBindCol(stmt,2,SQL_C_CHAR,name,sizeof(name),NULL); + checkrc(ret,__LINE__); + + count=0; + ret = SQLExecute(stmt); + checkrc(ret,__LINE__); + + printf("Fetching starts on table T1 :\n"); + while(SQL_SUCCEEDED(ret=SQLFetch(stmt))) + { + printf("F1:%d\tF2:%s\n",id1,name); + count++; + } + ret = SQLCloseCursor(stmt); + checkrc(ret,__LINE__); + + ret = SQLTransact(env,dbc,SQL_COMMIT); + checkrc(ret,__LINE__); + + printf("%d rows fetched\n",count); + + //Delete all the rows from the table 'T1' + ret = SQLPrepare(stmt,(unsigned char*)"DELETE FROM T1 WHERE F1=?;",SQL_NTS); + checkrc(ret,__LINE__); + + ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&id1,0,NULL); + checkrc(ret,__LINE__); + + + count=0; + for(i=0;i<10;i++) + { + id++; + ret = SQLExecute(stmt); + checkrc(ret,__LINE__); + count++; + } + + ret = SQLTransact(env,dbc,SQL_COMMIT); + checkrc(ret,__LINE__); + printf("%d Rows deleted\n",count); + + + // drop the table 'T1' + SQLCHAR drop[50]="DROP TABLE T1"; + ret = SQLPrepare(stmt,drop,SQL_NTS); + checkrc(ret,__LINE__); + + ret = SQLExecute(stmt); + checkrc(ret,__LINE__); + printf("Table T1 dropped\n"); + + //Free the statement handle + ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt); + checkrc(ret,__LINE__); + + //Disconnect from the Data source + ret = SQLDisconnect(dbc); + checkrc(ret,__LINE__); + printf("Disconnected from CSQL\n"); + + //Free the connection handle + ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc); + checkrc(ret,__LINE__); + + //Free the environment handle + ret = SQLFreeHandle(SQL_HANDLE_ENV,env); + checkrc(ret,__LINE__); + + return 0; +} + diff --git a/tmptest/winodbctest/winodbctest.sln b/tmptest/winodbctest/winodbctest.sln new file mode 100644 index 00000000..48b7fa2f --- /dev/null +++ b/tmptest/winodbctest/winodbctest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winodbctest", "winodbctest\winodbctest.vcxproj", "{434F6307-1D65-4E0B-9CE3-E7B26391428D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {434F6307-1D65-4E0B-9CE3-E7B26391428D}.Debug|Win32.ActiveCfg = Debug|Win32 + {434F6307-1D65-4E0B-9CE3-E7B26391428D}.Debug|Win32.Build.0 = Debug|Win32 + {434F6307-1D65-4E0B-9CE3-E7B26391428D}.Release|Win32.ActiveCfg = Release|Win32 + {434F6307-1D65-4E0B-9CE3-E7B26391428D}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/tmptest/winodbctest/winodbctest.suo b/tmptest/winodbctest/winodbctest.suo new file mode 100644 index 0000000000000000000000000000000000000000..6baf73a9c9af77e4c397cc3b3cbe87811b1bd55c GIT binary patch literal 22016 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 literal 0 HcwPel00001 diff --git a/tmptest/winodbctest/winodbctest/winodbctest.vcxproj b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj new file mode 100644 index 00000000..38bd7919 --- /dev/null +++ b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj @@ -0,0 +1,85 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {434F6307-1D65-4E0B-9CE3-E7B26391428D} + Win32Proj + winodbctest + + + + Application + true + NotSet + + + Application + false + true + Unicode + + + + + + + + + + + + + true + ..\..\..\..\csql\include;$(IncludePath) + ..\..\..\..\csql\winclient\clientlib\Release;$(LibraryPath) + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + csqlodbc.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.filters b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.filters new file mode 100644 index 00000000..db960b04 --- /dev/null +++ b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.user b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.user new file mode 100644 index 00000000..695b5c78 --- /dev/null +++ b/tmptest/winodbctest/winodbctest/winodbctest.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file -- 2.11.4.GIT