exp changes and test case modification as we do not support mmap to
[csql.git] / test / odbc / Adapter / odbcselect1.c
blobad6de99b0bd1d38bb30c42cbc296aeb3e19ce5db
1 // Adapter Without network
2 // SQLGetData() test
3 // SQLNumResultCols test
4 //
5 #include<stdio.h>
6 #include<stdlib.h>
7 #include<sql.h>
8 #include<sqlext.h>
9 #include<string.h>
11 //*************************************************************************
13 inline void checkrc(int rc,int line)
15 if(rc)
17 printf("ERROR %d at line %d\n",rc,line);
18 exit(1);
22 //*************************************************************************
23 int InsertTest(SQLHANDLE env,SQLHANDLE dbc,SQLHANDLE stmt)
26 int ret;
27 int f1=90; // f1 field
28 int f2=20;//f2 field
31 ret = SQLPrepare(stmt,(unsigned char*)"INSERT INTO t1 VALUES(?,?)",SQL_NTS);
32 checkrc(ret,__LINE__);
34 // BIND PARAMETER
36 ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f1,0,NULL);
37 checkrc(ret,__LINE__);
39 ret = SQLBindParameter(stmt,2,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f2,0,NULL);
40 checkrc(ret,__LINE__);
44 int i,count=0;
45 for(i=0;i<10;i++)
47 f1++;
48 f2++;
50 ret = SQLExecute(stmt);
51 checkrc(ret,__LINE__);
53 ret = SQLTransact(env,dbc,SQL_COMMIT);
54 checkrc(ret,__LINE__);
55 count++;
57 printf("Total row inserted=%d\n",count);
58 return 0;
60 //***********************************************************************
61 // FETCH ROWS FROM THE TABLE "T1"......select * from T1;
62 int FetchTest(SQLHANDLE env, SQLHANDLE dbc, SQLHANDLE stmt)
65 int ret;
66 int f1=0; // f1 field
67 int f2=0;//f2 field
69 int rettype ;
71 ret = SQLPrepare(stmt,(unsigned char*)"SELECT f1,f2 FROM t1 ",SQL_NTS);
72 rettype = ret;
73 if(rettype!=0)return 1;
75 ret = SQLBindCol(stmt,1,SQL_C_SLONG,&f1,0,NULL);
79 ret = SQLBindCol(stmt,2,SQL_C_SLONG,&f2,0,NULL);
80 */
84 int j, count=0;
86 ret = SQLExecute(stmt);
88 SQLSMALLINT noc;
89 ret = SQLNumResultCols(stmt,&noc);
90 printf("SQLNumResultCol() returns = %d\n",noc);
91 SQLINTEGER slen = SQL_NTS;
92 while(SQL_SUCCEEDED(ret = SQLFetch(stmt)))
94 ret=SQLGetData(stmt, 1, SQL_C_SLONG, &f1, 0,&slen );
95 checkrc(ret,__LINE__);
96 ret=SQLGetData(stmt, 2, SQL_C_SLONG, &f2, 0,&slen );
97 checkrc(ret,__LINE__);
98 count++;
99 printf("F1=%d\tF2=%d\n",f1,f2);
103 ret = SQLCloseCursor(stmt);
104 checkrc(ret,__LINE__);
106 ret = SQLTransact(env,dbc,SQL_COMMIT);
107 checkrc(ret,__LINE__);
109 printf("Total row fetched=%d\n",count);
110 return 0;
114 int main()
116 SQLHENV env;
117 SQLHDBC dbc;
118 SQLHSTMT stmt;
119 SQLRETURN ret;
120 SQLCHAR outstr[1024];
121 SQLSMALLINT outstrlen;
123 // Aloocate an environment handle
124 ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env);
125 checkrc(ret,__LINE__);
127 //we need odbc3 support
128 SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
130 //ALLOCATE A Connection handle
131 ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc);
132 checkrc(ret,__LINE__);
134 // connect to the DSN mydsn
135 ret = SQLConnect (dbc,
136 (SQLCHAR *) "DSN=mycsql;MODE=ADAPTER;SERVER=localhost;PORT=5678;", (SQLSMALLINT) strlen ("DSN=mycsql;MODE=ADAPTER;SERVER=localhost;PORT=5678;"),
137 (SQLCHAR *) "root",
138 (SQLSMALLINT) strlen ("root"),
139 (SQLCHAR *) "manager",
140 (SQLSMALLINT) strlen (""));
142 if(SQL_SUCCEEDED(ret))
144 printf("\nConnected to the Data Source..\n");
148 else
150 printf("error in connection\n");
151 return 1;
153 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
154 checkrc(ret,__LINE__);
156 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
157 checkrc(ret,__LINE__);
158 return 1;
162 //******************************************************************
163 // TABLE CREATED
164 ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt);
165 checkrc(ret,__LINE__);
167 SQLCHAR table[100]=
168 "CREATE TABLE t1(f1 INT,f2 INT)";
169 ret = SQLPrepare(stmt,table,SQL_NTS);
170 checkrc(ret,__LINE__);
171 ret = SQLExecute(stmt);
172 checkrc(ret,__LINE__);
173 printf("\nTABLE CREATED\n");
174 //****************************************************************
176 InsertTest(env,dbc,stmt);
177 //*****************************************************************
178 int ret1;
179 ret1=FetchTest(env,dbc,stmt);
181 //****************************************************************
182 ret = SQLPrepare(stmt,(unsigned char*)"DROP TABLE t1",SQL_NTS);
183 checkrc(ret,__LINE__);
184 ret = SQLExecute(stmt);
185 checkrc(ret,__LINE__);
186 printf("Table 't1' dropped\n");
187 ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt);
188 checkrc(ret,__LINE__);
190 ret = SQLDisconnect(dbc);
191 checkrc(ret,__LINE__);
193 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
194 checkrc(ret,__LINE__);
196 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
197 checkrc(ret,__LINE__);
199 return 0;