added icsql tool with no dependency on readline libraryw
[csql.git] / demo / gateway / odbc / GwStmt.c
blob713bd800f76b75162ed0091ef508cb16d247bc9b
1 // INSERT SOME TUPLES IN IT. AND FETCH ALL THE TUPLES.
4 #include<stdio.h>
5 #include<stdlib.h>
6 #include<sql.h>
7 #include<sqlext.h>
8 #include<string.h>
12 //*************************************************************************
13 // ERROR CHECK FUNCTION
14 inline void checkrc(int rc,int line)
16 if(rc)
18 printf("ERROR %d at line %d\n",rc,line);
19 exit(1);
23 //*************************************************************************
24 // FUNCTION FOR INSERTING ROWS IN IT.
25 int InsertTest(SQLHANDLE env,SQLHANDLE dbc,SQLHANDLE stmt)
28 int ret;
29 int f1=50; // f1 field
30 char f2[50]= "Praba";
31 SQLINTEGER slen = SQL_NTS;
32 ret = SQLPrepare(stmt,(unsigned char*)"INSERT INTO t1 VALUES(?,?)",SQL_NTS);
33 checkrc(ret,__LINE__);
35 // BIND PARAMETER FOR ALL THE FIELD
37 ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f1,0,NULL);
38 checkrc(ret,__LINE__);
40 ret = SQLBindParameter(stmt,2,SQL_PARAM_INPUT,SQL_C_CHAR,SQL_CHAR,196,0,(void*)f2,0,&slen);
41 checkrc(ret,__LINE__);
43 int i,count=0;
44 // EXECUTE THE STATEMENT
45 for(i=0;i<10;i++)
47 f1++;
48 ret = SQLExecute(stmt);
49 checkrc(ret,__LINE__);
50 ret = SQLTransact(env,dbc,SQL_COMMIT);
51 checkrc(ret,__LINE__);
52 count++;
54 printf("Total row inserted=%d\n",count);
56 //***********************************************************************
57 // FETCH ROWS FROM THE TABLE "t1"......select * from T1;
58 int FetchTest(SQLHANDLE env, SQLHANDLE dbc, SQLHANDLE stmt)
61 int ret;
62 int f1=10; // f1 field
63 char f2[50]= "jitendra";
65 ret = SQLPrepare(stmt,(unsigned char*)"SELECT * FROM t1",SQL_NTS);
66 checkrc(ret,__LINE__);
68 ret = SQLBindCol(stmt,1,SQL_C_SLONG,&f1,0,NULL);
69 checkrc(ret,__LINE__);
72 ret = SQLBindCol(stmt,2,SQL_C_CHAR,f2,sizeof(f2),NULL);
73 checkrc(ret,__LINE__);
75 int j, count=0;
76 ret = SQLExecute(stmt);
77 checkrc(ret,__LINE__);
78 printf("Fetching starts on table t1 :\n");
80 while(SQL_SUCCEEDED(ret = SQLFetch(stmt)))
82 printf("F1=%d\tF2=%s\n ",f1,f2);
83 count++;
86 ret = SQLCloseCursor(stmt);
87 checkrc(ret,__LINE__);
89 ret = SQLTransact(env,dbc,SQL_COMMIT);
90 checkrc(ret,__LINE__);
91 printf("Total row fetched=%d\n",count);
95 int main()
97 SQLHENV env;
98 SQLHDBC dbc;
99 SQLHSTMT stmt;
100 SQLRETURN ret;
101 SQLCHAR outstr[1024];
102 SQLSMALLINT outstrlen;
104 // Aloocate an environment handle
105 ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env);
106 checkrc(ret,__LINE__);
108 //we need odbc3 support
109 ret = SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
110 checkrc(ret,__LINE__);
111 //ALLOCATE A Connection handle
112 ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc);
113 checkrc(ret,__LINE__);
115 ret = SQLConnect (dbc,
116 (SQLCHAR *) "DSN=test;MODE=Gateway;SERVER=localhost;PORT=5678;", (SQLSMALLINT) strlen ("test"),
117 (SQLCHAR *) "root",
118 (SQLSMALLINT) strlen ("root"),
119 (SQLCHAR *) "manager",
120 (SQLSMALLINT) strlen (""));
122 if(SQL_SUCCEEDED(ret))
124 printf("\nConnected to the Data Source SUCCESSFULLY..\n");
128 else
130 printf("error in connection\n");
131 return 1;
133 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
134 checkrc(ret,__LINE__);
136 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
137 checkrc(ret,__LINE__);
138 return 1;
143 ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt);
144 checkrc(ret,__LINE__);
145 //****************************************************************
146 InsertTest(env,dbc,stmt);
147 FetchTest(env,dbc,stmt);
149 //****************************************************************
150 ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt);
151 checkrc(ret,__LINE__);
153 ret = SQLDisconnect(dbc);
154 checkrc(ret,__LINE__);
156 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
157 checkrc(ret,__LINE__);
159 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
160 checkrc(ret,__LINE__);
161 return 0;