2 NOT NULL Constraint Testing with all datatypes.
3 CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);
4 Try to put null values in Not Null fields,it should not be allowed
12 AbsSqlConnection
*con
= createConnection();
13 rv
= con
->connect("root","manager");
18 printf("Connection opened\n");
19 AbsSqlStatement
*stmt
= createStatement();
20 stmt
->setConnection(con
);
23 printf("REATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);");
24 strcpy(statement
,"CREATE TABLE t1(f1 TINYINT NOT NULL,f2 SMALLINT NOT NULL,f3 INT NOT NULL,f4 BIGINT NOT NULL,f5 CHAR(20) NOT NULL,f6 VARCHAR(30) NOT NULL,f7 FLOAT NOT NULL,f8 DOUBLE NOT NULL,f9 DATE NOT NULL,f10 TIME NOT NULL,f11 TIMESTAMP NOT NULL);");
26 rv
= stmt
->prepare(statement
);
27 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 2; }
28 rv
= stmt
->execute(rows
);
29 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 3; }
32 strcpy(statement
,"GETALLTABLES;");
34 rv
= stmt
->prepare(statement
);
35 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 4; }
37 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 5; }
38 while(stmt
->next() !=NULL
) {
39 printf("Table Name is %s\n",stmt
->getFieldValuePtr(2)); //stmt->getFieldValuePtr(2) returns the TABLE_NAME (src/sql/SqlStatement.cxx)
46 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");
47 rv
= 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');");
49 stmt
->prepare("DROP TABLE t1;");
51 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
52 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
55 rv
= stmt
->execute(rows
);
57 stmt
->prepare("DROP TABLE t1;");
59 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
60 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
64 printf("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n");
65 rv
= stmt
->prepare("INSERT INTO t1 VALUES(2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);");
67 stmt
->prepare("DROP TABLE t1;");
69 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
70 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
73 rv
= stmt
->execute(rows
);
75 stmt
->prepare("DROP TABLE t1;");
77 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
78 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
82 printf("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);\n");
83 rv
= stmt
->prepare("INSERT INTO t1 VALUES(NULL,33,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);");
85 stmt
->prepare("DROP TABLE t1;");
87 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
88 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
91 rv
= stmt
->execute(rows
);
93 stmt
->prepare("DROP TABLE t1;");
95 if(rv
==OK
) { printf("Table Dropped successfully\n"); }
96 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
115 //Fetching records after insert
116 strcpy(statement
,"SELECT * FROM t1;");
117 rv
= stmt
->prepare(statement
);
118 if(rv
!=OK
) { delete stmt
; delete con
; return 12; }
119 stmt
->bindField(1,&f1var
);
120 stmt
->bindField(2,&f2var
);
121 stmt
->bindField(3,&f3var
);
122 stmt
->bindField(4,&f4var
);
123 stmt
->bindField(5,f5var
);
124 stmt
->bindField(6,f6var
);
125 stmt
->bindField(7,&f7var
);
126 stmt
->bindField(8,&f8var
);
127 stmt
->bindField(9,&f9var
);
128 stmt
->bindField(10,&f10var
);
129 stmt
->bindField(11,&f11var
);
131 rv
= con
->beginTrans();
134 while(stmt
->fetch() !=NULL
) {
135 if(stmt
->isFldNull(1)) printf("f1(tinyint)=NULL | ");
136 else printf("f1(tinyint)=%d | ", f1var
);
137 if(stmt
->isFldNull(2)) printf("f2(smallint)=NULL | ");
138 else printf("f2(smallint)=%d | ", f2var
);
139 if(stmt
->isFldNull(3)) printf("f3(int)=NULL | ");
140 else printf("f3(int)=%d | ", f3var
);
141 if(stmt
->isFldNull(4)) printf("f4(bigint)=NULL | ");
142 else printf("f4(bigint)=%lld | ", f4var
);
143 if(stmt
->isFldNull(5)) printf("f5(char)=NULL | ");
144 else printf("f5(char)=%s | ", f5var
);
145 if(stmt
->isFldNull(6)) printf("f6(varchar)=NULL | ");
146 else printf("f6(varchar)=%s | ", f6var
);
147 if(stmt
->isFldNull(7)) printf("f7(float)=NULL | ");
148 else printf("f7(float)=%f | ", f7var
);
149 if(stmt
->isFldNull(8)) printf("f8(double)=NULL | ");
150 else printf("f8(double)=%lf | ", f8var
);
151 if(stmt
->isFldNull(9)) printf("f9(date)=NULL | ");
152 else printf("f9(date)=%02d-%02d-%02d | ", f9var
.year(),f9var
.month(),f9var
.dayOfMonth());
153 if(stmt
->isFldNull(10)) printf("f10(time)=NULL | ");
154 else printf("f10(time)=%02d:%02d:%02d | ", f10var
.hours(),f10var
.minutes(),f10var
.seconds());
155 if(stmt
->isFldNull(11)) printf("f11(timestamp)=NULL | ");
156 else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var
.year(),f11var
.month(),f11var
.dayOfMonth(),f11var
.hours(),f11var
.minutes(),f11var
.seconds());
162 printf("%d rows selected\n",count
);
164 printf("UPDATE t1 SET f1=NULL WHERE f1=1;\n");
165 rv
= stmt
->prepare("UPDATE t1 SET f1=null WHERE f1=1;");
167 stmt
->prepare("DROP TABLE t1;");
169 if(rv
==OK
) printf("Table Dropped successfully\n");
170 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
174 printf("UPDATE t1 SET f2=NULL WHERE f1=11;\n");
175 rv
= stmt
->prepare("UPDATE t1 SET f2=NULL WHERE f1=11;");
177 stmt
->prepare("DROP TABLE t1;");
179 if(rv
==OK
) printf("Table Dropped successfully\n");
180 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
184 printf("UPDATE t1 SET f3=NULL WHERE f3=111;\n");
185 rv
= stmt
->prepare("UPDATE t1 SET f3=NULL WHERE f1=111;");
187 stmt
->prepare("DROP TABLE t1;");
189 if(rv
==OK
) printf("Table Dropped successfully\n");
190 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
194 printf("UPDATE t1 SET f4=NULL WHERE f3=1111;\n");
195 rv
= stmt
->prepare("UPDATE t1 SET f4=NULL WHERE f4=1111;");
197 stmt
->prepare("DROP TABLE t1;");
199 if(rv
==OK
) printf("Table Dropped successfully\n");
200 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
204 printf("UPDATE t1 SET f5=NULL WHERE f5='CSQL1';\n");
205 rv
= stmt
->prepare("UPDATE t1 SET f5=NULL WHERE f5='CSQL1';");
207 stmt
->prepare("DROP TABLE t1;");
209 if(rv
==OK
) printf("Table Dropped successfully\n");
210 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
214 printf("UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1';\n");
215 rv
= stmt
->prepare("UPDATE t1 SET f6=NULL WHERE f6='LAKSHYA1';");
217 stmt
->prepare("DROP TABLE t1;");
219 if(rv
==OK
) printf("Table Dropped successfully\n");
220 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
224 printf("UPDATE t1 SET f7=NULL WHERE f7=11;\n");
225 rv
= stmt
->prepare("UPDATE t1 SET f7=NULL WHERE f7=11;");
227 stmt
->prepare("DROP TABLE t1;");
229 if(rv
==OK
) printf("Table Dropped successfully\n");
230 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
234 printf("UPDATE t1 SET f8=NULL WHERE f8=1111;\n");
235 rv
= stmt
->prepare("UPDATE t1 SET f8=NULL WHERE f8=1111;");
237 stmt
->prepare("DROP TABLE t1;");
239 if(rv
==OK
) printf("Table Dropped successfully\n");
240 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
244 printf("UPDATE t1 SET f9=NULL WHERE f9='2001-01-01';\n");
245 rv
= stmt
->prepare("UPDATE t1 SET f9=NULL WHERE f9='2001-01-01';");
247 stmt
->prepare("DROP TABLE t1;");
249 if(rv
==OK
) printf("Table Dropped successfully\n");
250 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
254 printf("UPDATE t1 SET f10=NULL WHERE f10='01:01:01';\n");
255 rv
= stmt
->prepare("UPDATE t1 SET f10=NULL WHERE f10='01:01:01';");
257 stmt
->prepare("DROP TABLE t1;");
259 if(rv
==OK
) printf("Table Dropped successfully\n");
260 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
264 printf("UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01';\n");
265 rv
= stmt
->prepare("UPDATE t1 SET f11=NULL WHERE f11='2001-01-01 01:01:01';");
267 stmt
->prepare("DROP TABLE t1;");
269 if(rv
==OK
) printf("Table Dropped successfully\n");
270 stmt
->free(); con
->disconnect(); delete stmt
; delete con
;
274 //Fetching records after Update
275 strcpy(statement
,"SELECT * FROM t1;");
276 rv
= stmt
->prepare(statement
);
277 if(rv
!=OK
) { delete stmt
; delete con
; return 25; }
278 stmt
->bindField(1,&f1var
);
279 stmt
->bindField(2,&f2var
);
280 stmt
->bindField(3,&f3var
);
281 stmt
->bindField(4,&f4var
);
282 stmt
->bindField(5,f5var
);
283 stmt
->bindField(6,f6var
);
284 stmt
->bindField(7,&f7var
);
285 stmt
->bindField(8,&f8var
);
286 stmt
->bindField(9,&f9var
);
287 stmt
->bindField(10,&f10var
);
288 stmt
->bindField(11,&f11var
);
290 rv
= con
->beginTrans();
293 while(stmt
->fetch() !=NULL
) {
294 if(stmt
->isFldNull(1)) printf("f1(tinyint)=NULL | ");
295 else printf("f1(tinyint)=%d | ", f1var
);
296 if(stmt
->isFldNull(2)) printf("f2(smallint)=NULL | ");
297 else printf("f2(smallint)=%d | ", f2var
);
298 if(stmt
->isFldNull(3)) printf("f3(int)=NULL | ");
299 else printf("f3(int)=%d | ", f3var
);
300 if(stmt
->isFldNull(4)) printf("f4(bigint)=NULL | ");
301 else printf("f4(bigint)=%lld | ", f4var
);
302 if(stmt
->isFldNull(5)) printf("f5(char)=NULL | ");
303 else printf("f5(char)=%s | ", f5var
);
304 if(stmt
->isFldNull(6)) printf("f6(varchar)=NULL | ");
305 else printf("f6(varchar)=%s | ", f6var
);
306 if(stmt
->isFldNull(7)) printf("f7(float)=NULL | ");
307 else printf("f7(float)=%f | ", f7var
);
308 if(stmt
->isFldNull(8)) printf("f8(double)=NULL | ");
309 else printf("f8(double)=%lf | ", f8var
);
310 if(stmt
->isFldNull(9)) printf("f9(date)=NULL | ");
311 else printf("f9(date)=%02d-%02d-%02d | ", f9var
.year(),f9var
.month(),f9var
.dayOfMonth());
312 if(stmt
->isFldNull(10)) printf("f10(time)=NULL | ");
313 else printf("f10(time)=%02d:%02d:%02d | ", f10var
.hours(),f10var
.minutes(),f10var
.seconds());
314 if(stmt
->isFldNull(11)) printf("f11(timestamp)=NULL | ");
315 else printf("f11(timestamp)=%d-%d-%d %d:%d:%d | ", f11var
.year(),f11var
.month(),f11var
.dayOfMonth(),f11var
.hours(),f11var
.minutes(),f11var
.seconds());
321 printf("%d rows selected\n",count
);
323 strcpy(statement
,"DROP TABLE t1;");
324 rv
= stmt
->prepare(statement
);
325 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 27; }
326 rv
= stmt
->execute(rows
);
327 if(rv
!=OK
) { delete stmt
; con
->disconnect(); delete con
; return 28; }
328 printf("Table dropped\n");
331 printf("Connection Closed\n");
333 delete stmt
; delete con
;