adding test scripts
[csql.git] / test / sqlapi / Csql / DMLStmt / updisnullisnotnullonalldatatype.c
blobb0cc08e504c1505c63671f4a2b500de828f906c6
1 /*
2 Testing update on all datatypes using is null and is not null operators
3 CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);
4 Insert 5 records into t1.
5 INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');
6 INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
7 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL;
8 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL;
9 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL;
10 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f2 IS NOT NULL;
11 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f3 IS NULL;
12 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL;
13 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL;
14 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL;
15 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL;
16 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL;
17 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL;
18 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL;
19 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL;
20 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL;
21 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL;
22 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL;
23 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL;
24 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL;
25 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL;
26 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL;
27 UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL;
28 UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL;
29 SELECT * FROM t1;
31 #include"common.h"
33 int main()
35 DbRetVal rv = OK;
36 AbsSqlConnection *con = createConnection();
37 rv = con->connect("root","manager");
38 if(rv !=OK) {
39 delete con;
40 return 1;
42 printf("Connection opened\n");
43 AbsSqlStatement *stmt = createStatement();
44 stmt->setConnection(con);
45 //Creating Table
46 char statement[400];
47 printf("CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);\n");
48 strcpy(statement,"CREATE TABLE t1(f1 TINYINT,f2 SMALLINT,f3 INT,f4 BIGINT,f5 CHAR(20),f6 VARCHAR(30),f7 FLOAT,f8 DOUBLE,f9 DATE,f10 TIME,f11 TIMESTAMP);");
49 int rows=0;
50 rv = stmt->prepare(statement);
51 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 2; }
52 rv = stmt->execute(rows);
53 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 3; }
54 stmt->free();
55 // Show all tables
56 strcpy(statement,"GETALLTABLES;");
57 rows=0;
58 rv = stmt->prepare(statement);
59 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 4; }
60 stmt->execute(rows);
61 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 5; }
62 while(stmt->next() !=NULL) {
63 printf("Table Name is %s\n",stmt->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx)
65 stmt->free();
67 char f1var;
68 short int f2var;
69 int f3var;
70 long long f4var;
71 char f5var[20];
72 char f6var[32];
73 float f7var;
74 double f8var;
75 Date f9var;
76 Time f10var;
77 TimeStamp f11var;
79 //Fetching records after Insert
80 strcpy(statement,"SELECT * FROM t1;");
81 rv = stmt->prepare(statement);
82 if(rv!=OK) { delete stmt; delete con; return 6; }
83 stmt->bindField(1,&f1var);
84 stmt->bindField(2,&f2var);
85 stmt->bindField(3,&f3var);
86 stmt->bindField(4,&f4var);
87 stmt->bindField(5,f5var);
88 stmt->bindField(6,f6var);
89 stmt->bindField(7,&f7var);
90 stmt->bindField(8,&f8var);
91 stmt->bindField(9,&f9var);
92 stmt->bindField(10,&f10var);
93 stmt->bindField(11,&f11var);
94 int count=0;
95 rv = con->beginTrans();
96 if(rv!=OK)return 7;
97 stmt->execute(rows);
98 while(stmt->fetch() !=NULL) {
99 if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | ");
100 else printf("f1(tinyint)=%d | ", f1var);
101 if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | ");
102 else printf("f2(smallint)=%d | ", f2var);
103 if(stmt->isFldNull(3)) printf("f3(int)=NULL | ");
104 else printf("f3(int)=%d | ", f3var);
105 if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | ");
106 else printf("f4(bigint)=%lld | ", f4var);
107 if(stmt->isFldNull(5)) printf("f5(char)=NULL | ");
108 else printf("f5(char)=%s | ", f5var);
109 if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | ");
110 else printf("f6(varchar)=%s | ", f6var);
111 if(stmt->isFldNull(7)) printf("f7(float)=NULL | ");
112 else printf("f7(float)=%f | ", f7var);
113 if(stmt->isFldNull(8)) printf("f8(double)=NULL | ");
114 else printf("f8(double)=%lf | ", f8var);
115 if(stmt->isFldNull(9)) printf("f9(date)=NULL | ");
116 else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth());
117 if(stmt->isFldNull(10)) printf("f10(time)=NULL | ");
118 else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds());
119 if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | ");
120 else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds());
121 printf("\n");
122 count++;
124 stmt->free();
125 rv = con->commit();
126 printf("%d rows selected\n",count);
128 //Inserting Records
129 con->beginTrans();
130 rows=0;
131 printf("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');\n");
132 stmt->prepare("INSERT INTO t1 VALUES(1,11,111,1111,'CSQL1','LAKSHYA1',11.00,1111.00,'2001-01-01','01:01:01','2001-01-01 01:01:01');");
133 stmt->execute(rows);
134 con->commit();
135 stmt->free();
136 printf("INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n");
137 stmt->prepare("INSERT INTO t1 VALUES(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);");
138 stmt->execute(rows);
139 con->commit();
140 stmt->free();
141 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL;\n");
142 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f1 IS NULL;");
143 stmt->execute(rows);
144 con->commit();
145 stmt->free();
146 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL;\n");
147 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f1 IS NOT NULL;");
148 stmt->execute(rows);
149 con->commit();
150 stmt->free();
151 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL;\n");
152 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f2 IS NULL;");
153 stmt->execute(rows);
154 con->commit();
155 stmt->free();
156 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL;\n");
157 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f3 IS NOT NULL;");
158 stmt->execute(rows);
159 con->commit();
160 stmt->free();
161 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL;\n");
162 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f4 IS NULL;");
163 stmt->execute(rows);
164 con->commit();
165 stmt->free();
166 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL;\n");
167 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f4 IS NOT NULL;");
168 stmt->execute(rows);
169 con->commit();
170 stmt->free();
171 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL;\n");
172 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f5 IS NULL;");
173 stmt->execute(rows);
174 con->commit();
175 stmt->free();
176 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL;\n");
177 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f5 IS NOT NULL;");
178 stmt->execute(rows);
179 con->commit();
180 stmt->free();
181 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL;\n");
182 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f6 IS NULL;");
183 stmt->execute(rows);
184 con->commit();
185 stmt->free();
186 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL;\n");
187 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f6 IS NOT NULL;");
188 stmt->execute(rows);
189 con->commit();
190 stmt->free();
191 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL;\n");
192 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f7 IS NULL;");
193 stmt->execute(rows);
194 con->commit();
195 stmt->free();
196 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL;\n");
197 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f7 IS NOT NULL;");
198 stmt->execute(rows);
199 con->commit();
200 stmt->free();
201 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL;\n");
202 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f8 IS NULL;");
203 stmt->execute(rows);
204 con->commit();
205 stmt->free();
206 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL;\n");
207 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f8 IS NOT NULL;");
208 stmt->execute(rows);
209 con->commit();
210 stmt->free();
211 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL;\n");
212 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f9 IS NULL;");
213 stmt->execute(rows);
214 con->commit();
215 stmt->free();
216 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL;\n");
217 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f9 IS NOT NULL;");
218 stmt->execute(rows);
219 con->commit();
220 stmt->free();
221 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL;\n");
222 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f10 IS NULL;");
223 stmt->execute(rows);
224 con->commit();
225 stmt->free();
226 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL;\n");
227 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f10 IS NOT NULL;");
228 stmt->execute(rows);
229 con->commit();
230 stmt->free();
231 printf("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL;\n");
232 stmt->prepare("UPDATE t1 SET f1=2, f2=22, f3=222, f4=2222, f5='CSQL2', f6='LAKSHYA2', f7=22.00, f8=2222.00,f9='2002-02-02', f10='02:02:02', f11='2002-02-02 02:02:02' WHERE f11 IS NULL;");
233 stmt->execute(rows);
234 con->commit();
235 stmt->free();
236 printf("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL;\n");
237 stmt->prepare("UPDATE t1 SET f1=NULL, f2=NULL, f3=NULL, f4=NULL, f5=NULL, f6=NULL, f7=NULL, f8=NULL,f9=NULL, f10=NULL, f11=NULL WHERE f11 IS NOT NULL;");
238 stmt->execute(rows);
239 con->commit();
240 stmt->free();
242 //Fetching records after update
243 strcpy(statement,"SELECT * FROM t1;");
244 rv = stmt->prepare(statement);
245 if(rv!=OK) { delete stmt; delete con; return 8; }
246 stmt->bindField(1,&f1var);
247 stmt->bindField(2,&f2var);
248 stmt->bindField(3,&f3var);
249 stmt->bindField(4,&f4var);
250 stmt->bindField(5,f5var);
251 stmt->bindField(6,f6var);
252 stmt->bindField(7,&f7var);
253 stmt->bindField(8,&f8var);
254 stmt->bindField(9,&f9var);
255 stmt->bindField(10,&f10var);
256 stmt->bindField(11,&f11var);
257 count=0;
258 rv = con->beginTrans();
259 if(rv!=OK)return 9;
260 stmt->execute(rows);
261 while(stmt->fetch() !=NULL) {
262 if(stmt->isFldNull(1)) printf("f1(tinyint)=NULL | ");
263 else printf("f1(tinyint)=%d | ", f1var);
264 if(stmt->isFldNull(2)) printf("f2(smallint)=NULL | ");
265 else printf("f2(smallint)=%d | ", f2var);
266 if(stmt->isFldNull(3)) printf("f3(int)=NULL | ");
267 else printf("f3(int)=%d | ", f3var);
268 if(stmt->isFldNull(4)) printf("f4(bigint)=NULL | ");
269 else printf("f4(bigint)=%lld | ", f4var);
270 if(stmt->isFldNull(5)) printf("f5(char)=NULL | ");
271 else printf("f5(char)=%s | ", f5var);
272 if(stmt->isFldNull(6)) printf("f6(varchar)=NULL | ");
273 else printf("f6(varchar)=%s | ", f6var);
274 if(stmt->isFldNull(7)) printf("f7(float)=NULL | ");
275 else printf("f7(float)=%f | ", f7var);
276 if(stmt->isFldNull(8)) printf("f8(double)=NULL | ");
277 else printf("f8(double)=%lf | ", f8var);
278 if(stmt->isFldNull(9)) printf("f9(date)=NULL | ");
279 else printf("f9(date)=%02d-%02d-%02d | ", f9var.year(),f9var.month(),f9var.dayOfMonth());
280 if(stmt->isFldNull(10)) printf("f10(time)=NULL | ");
281 else printf("f10(time)=%02d:%02d:%02d | ", f10var.hours(),f10var.minutes(),f10var.seconds());
282 if(stmt->isFldNull(11)) printf("f11(timestamp)=NULL | ");
283 else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var.year(),f11var.month(),f11var.dayOfMonth(),f11var.hours(),f11var.minutes(),f11var.seconds());
284 printf("\n");
285 count++;
287 stmt->free();
288 rv = con->commit();
289 printf("%d rows selected\n",count);
291 //Droping table
292 strcpy(statement,"DROP TABLE t1;");
293 rv = stmt->prepare(statement);
294 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 10; }
295 rv = stmt->execute(rows);
296 if(rv!=OK) { delete stmt; con->disconnect(); delete con; return 11; }
297 printf("Table dropped\n");
298 stmt->free();
299 con->disconnect();
300 printf("Connection Closed\n");
302 delete stmt; delete con;
303 return 0;