exp changes and test case modification as we do not support mmap to
[csql.git] / test / odbc / Select / odbcselect9.c
blob7ea4ee1afab9639bfe3ad9ec9d487c67a0c12746
1 // SQLGetData() test
2 #include<stdio.h>
3 #include<stdlib.h>
4 #include<sql.h>
5 #include<sqlext.h>
6 #include<string.h>
8 //*************************************************************************
10 inline void checkrc(int rc,int line)
12 if(rc)
14 printf("ERROR %d at line %d\n",rc,line);
15 exit(1);
19 //*************************************************************************
20 int InsertTest(SQLHANDLE env,SQLHANDLE dbc,SQLHANDLE stmt)
23 int ret;
24 int f1=90; // f1 field
25 int f2=20;//f2 field
28 ret = SQLPrepare(stmt,(unsigned char*)"INSERT INTO T1 VALUES(?,?)",SQL_NTS);
29 checkrc(ret,__LINE__);
31 // BIND PARAMETER
33 ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f1,0,NULL);
34 checkrc(ret,__LINE__);
36 ret = SQLBindParameter(stmt,2,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f2,0,NULL);
37 checkrc(ret,__LINE__);
41 int i,count=0;
42 for(i=0;i<10;i++)
44 f1++;
45 f2++;
47 ret = SQLExecute(stmt);
48 checkrc(ret,__LINE__);
50 ret = SQLTransact(env,dbc,SQL_COMMIT);
51 checkrc(ret,__LINE__);
52 count++;
54 printf("Total row inserted=%d\n",count);
55 return 0;
57 //***********************************************************************
58 // FETCH ROWS FROM THE TABLE "T1"......select * from T1;
59 int FetchTest(SQLHANDLE env, SQLHANDLE dbc, SQLHANDLE stmt)
62 int ret;
63 int f1=0; // f1 field
64 int f2=0;//f2 field
66 int rettype ;
68 ret = SQLPrepare(stmt,(unsigned char*)"SELECT F1,F2 FROM T1 ",SQL_NTS);
69 rettype = ret;
70 if(rettype!=0)return 1;
72 ret = SQLBindCol(stmt,1,SQL_C_SLONG,&f1,0,NULL);
76 ret = SQLBindCol(stmt,2,SQL_C_SLONG,&f2,0,NULL);
77 */
81 int j, count=0;
83 ret = SQLExecute(stmt);
85 SQLSMALLINT noc;
86 ret = SQLNumResultCols(stmt,&noc);
88 if(ret != 0 )
90 printf("SQLNumResultCol() returns = %d\n",noc);
91 return 1;
93 SQLINTEGER slen = SQL_NTS;
94 while(SQL_SUCCEEDED(ret = SQLFetch(stmt)))
96 ret=SQLGetData(stmt, 1, SQL_C_SLONG, &f1, 0,&slen );
97 checkrc(ret,__LINE__);
98 ret=SQLGetData(stmt, 2, SQL_C_SLONG, &f2, 0,&slen );
99 checkrc(ret,__LINE__);
100 count++;
101 printf("F1=%d\tF2=%d\n",f1,f2);
105 ret = SQLCloseCursor(stmt);
106 checkrc(ret,__LINE__);
108 ret = SQLTransact(env,dbc,SQL_COMMIT);
109 checkrc(ret,__LINE__);
111 printf("Total row fetched=%d\n",count);
112 return 0;
116 int main()
118 SQLHENV env;
119 SQLHDBC dbc;
120 SQLHSTMT stmt;
121 SQLRETURN ret;
122 SQLCHAR outstr[1024];
123 SQLSMALLINT outstrlen;
125 // Aloocate an environment handle
126 ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env);
127 checkrc(ret,__LINE__);
129 //we need odbc3 support
130 SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
132 //ALLOCATE A Connection handle
133 ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc);
134 checkrc(ret,__LINE__);
136 // connect to the DSN mydsn
137 ret = SQLConnect (dbc,
138 (SQLCHAR *) "test", (SQLSMALLINT) strlen ("test"),
139 (SQLCHAR *) "root",
140 (SQLSMALLINT) strlen ("root"),
141 (SQLCHAR *) "manager",
142 (SQLSMALLINT) strlen (""));
144 if(SQL_SUCCEEDED(ret))
146 printf("\nConnected to the Data Source..\n");
150 else
152 printf("error in connection\n");
153 return 1;
155 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
156 checkrc(ret,__LINE__);
158 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
159 checkrc(ret,__LINE__);
160 return 1;
164 //******************************************************************
165 // TABLE CREATED
166 ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt);
167 checkrc(ret,__LINE__);
169 SQLCHAR table[100]=
170 "CREATE TABLE T1(F1 INT,F2 INT)";
171 ret = SQLPrepare(stmt,table,SQL_NTS);
172 checkrc(ret,__LINE__);
173 ret = SQLExecute(stmt);
174 printf("\nTABLE CREATED\n");
175 //****************************************************************
177 InsertTest(env,dbc,stmt);
178 //*****************************************************************
179 int ret1;
180 ret1=FetchTest(env,dbc,stmt);
182 //****************************************************************
183 ret = SQLExecDirect(stmt,(unsigned char*)"DROP TABLE T1",SQL_NTS);
184 checkrc(ret,__LINE__);
185 printf("Table 'T1' dropped\n");
186 ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt);
187 checkrc(ret,__LINE__);
189 ret = SQLDisconnect(dbc);
190 checkrc(ret,__LINE__);
192 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
193 checkrc(ret,__LINE__);
195 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
196 checkrc(ret,__LINE__);
198 return 0;