adding test scripts
[csql.git] / test / odbc / Parameters / parameter5nw.c
blobbf2593ffa7c8e14ff8f107f735913b3505ed1fa6
1 /*Use Connection String "DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;" for Connect Data Source
2 * CREATE TABLE "T1" WITH 10 FIELDS.
3 INSERT SOME TUPLES IN IT.
4 SQLNumParam() should return 10.
6 AUTHOR : JITENDRA Lenka.
7 */
9 #include<stdio.h>
10 #include<stdlib.h>
11 #include<sql.h>
12 #include<sqlext.h>
13 #include<string.h>
14 #include<CSql.h>
15 //*************************************************************************
16 // ERROR CHECK FUNCTION
17 inline void checkrc(int rc,int line)
19 if(rc)
21 printf("ERROR %d at line %d\n",rc,line);
22 exit(1);
26 //*************************************************************************
27 // FUNCTION FOR INSERTING ROWS IN IT.
29 int InsertTest(SQLHANDLE env,SQLHANDLE dbc,SQLHANDLE stmt)
32 int ret;
33 int f1=90; // f1 field
34 short int f2=20;//f2 field
35 char f3[50]= "jitendra";
36 float f4 = 2.5;
37 float f5 = 10.50;
38 int f9 = 5;
39 long long f10 = 15000;
40 int result;
42 SQLINTEGER slen = SQL_NTS;
43 //***********************************
44 // STRUCTURE FOR DATE DATATYPE
45 SQL_DATE_STRUCT date;
46 char strDate[30];
48 date.year=2008;
49 date.month=03;
50 date.day=18;
51 // strcpy(strDate,"{d '2008-03-18'}");
52 //*******************************
53 // STRUCTURE FOR TIME DATATYPE.
54 SQL_TIME_STRUCT time;
55 time.hour = 5;
56 time.minute = 22;
57 time.second = 10;
58 //*****************************
59 // STRUCTURE FOR TIMESTAMP DATATYPE
60 SQL_TIMESTAMP_STRUCT timestamp;
61 timestamp.year = 2008;
62 timestamp.month = 03;
63 timestamp.day = 18;
64 timestamp.hour = 5;
65 timestamp.minute = 22;
66 timestamp.second = 10;
67 timestamp.fraction = 764576;
68 //******************************
69 // PREPARE THE STATEMENT.
72 ret = SQLPrepare(stmt,(unsigned char*)"INSERT INTO T1 VALUES(?);",SQL_NTS);
73 checkrc(ret,__LINE__);
76 SQLSMALLINT nop;
77 SQLNumParams(stmt,&nop);
81 if(nop!=1)return 1;
82 printf("Number of parameter=%d\n",nop);
84 // BIND PARAMETER FOR ALL THE FIELD
86 ret = SQLBindParameter(stmt,1,SQL_PARAM_INPUT,SQL_C_SLONG,SQL_INTEGER,0,0,&f1,0,NULL);
87 checkrc(ret,__LINE__);
90 int i,count=0;
91 // EXECUTE THE STATEMENT
92 for(i=0;i<20;i++)
94 f1++;
95 f2++;
96 f4++;
97 ret = SQLExecute(stmt);
98 checkrc(ret,__LINE__);
100 ret = SQLTransact(env,dbc,SQL_COMMIT);
101 checkrc(ret,__LINE__);
102 count++;
104 printf("Total row inserted=%d\n",count);
105 return 0;
107 //***********************************************************************
110 int main()
112 SQLHENV env;
113 SQLHDBC dbc;
114 SQLHSTMT stmt;
115 SQLRETURN ret;
116 SQLCHAR outstr[1024];
117 SQLSMALLINT outstrlen;
119 // Aloocate an environment handle
120 ret=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&env);
121 checkrc(ret,__LINE__);
123 //we need odbc3 support
124 SQLSetEnvAttr(env,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
126 //ALLOCATE A Connection handle
127 ret = SQLAllocHandle(SQL_HANDLE_DBC,env,&dbc);
128 checkrc(ret,__LINE__);
130 // connect to the DSN mydsn
131 ret = SQLConnect (dbc,
132 (SQLCHAR *) "DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;", (SQLSMALLINT) strlen ("DSN=mycsql;MODE=csql;SERVER=127.0.0.1;PORT=5678;"),
133 (SQLCHAR *) "root",
134 (SQLSMALLINT) strlen ("root"),
135 (SQLCHAR *) "manager",
136 (SQLSMALLINT) strlen (""));
139 if(SQL_SUCCEEDED(ret))
141 printf("\nConnected to the Data Source..\n");
146 else
148 printf("error in conenction\n");
150 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
151 checkrc(ret,__LINE__);
153 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
154 checkrc(ret,__LINE__);
155 return 1;
159 //*****************************************************
160 // TABLE CREATED
161 ret = SQLAllocHandle(SQL_HANDLE_STMT,dbc,&stmt);
162 checkrc(ret,__LINE__);
165 SQLCHAR table[200]=
166 "CREATE TABLE T1(F1 INT);";
171 ret = SQLPrepare(stmt,table,SQL_NTS);
172 checkrc(ret,__LINE__);
174 ret = SQLExecute(stmt);
175 checkrc(ret,__LINE__);
176 printf("\nTABLE CREATED\n");
177 //***************************
178 InsertTest(env,dbc,stmt);
180 // FetchTest(env,dbc,stmt);
182 //**************************************************
183 SQLCHAR drop[100]="DROP TABLE T1";
184 ret = SQLPrepare(stmt,drop,SQL_NTS);
185 checkrc(ret,__LINE__);
186 ret = SQLExecute(stmt);
187 if(ret!=SQL_SUCCESS && ret !=SQL_SUCCESS_WITH_INFO)
189 printf("Statement failed\n");
190 return 1;
192 else
193 printf("Table 'T1' dropped successfully\n");
195 ret = SQLFreeHandle(SQL_HANDLE_STMT,stmt);
196 checkrc(ret,__LINE__);
198 ret = SQLDisconnect(dbc);
199 checkrc(ret,__LINE__);
201 ret = SQLFreeHandle(SQL_HANDLE_DBC,dbc);
202 checkrc(ret,__LINE__);
204 ret = SQLFreeHandle(SQL_HANDLE_ENV,env);
205 checkrc(ret,__LINE__);
206 return 0;