1
[csql.git] / test / dbapi / Table / insertnulltest7.c
blob3986309abc8e2e2f924e8c57a1dfd92f3dd4c2ff
1 #include<CSql.h>
2 int main()
4 Connection conn;
5 DbRetVal rv = conn.open("root", "manager");
6 if (rv != OK) return 1;
7 DatabaseManager *dbMgr = conn.getDatabaseManager();
8 if (dbMgr == NULL) { printf("Auth failed\n"); return 2;}
10 TableDef tabDef;
11 tabDef.addField("f1", typeInt, 0, NULL, true);
12 tabDef.addField("f2", typeInt);
13 rv = dbMgr->createTable("t1", tabDef);
14 if (rv != OK) { printf("Table creation failed\n"); conn.close(); return 3; }
15 printf("Table created\n");
17 Table *table = dbMgr->openTable("t1");
18 if (table == NULL)
20 printf("Unable to open table\n");
21 dbMgr->dropTable("t1");
22 conn.close();
23 return -1;
25 int id1 = 0, id2 = 5;
26 table->bindFld("f1", &id1);
27 table->bindFld("f2", &id2);
28 int icount =0;
29 for (int i = 0 ; i < 10 ; i++)
31 conn.startTransaction();
32 id1= i;id2=id2+i;
33 if (i%2 == 0){
34 if ((rv = table->markFldNull(1)) != OK ) {
35 conn.rollback(); continue; }
36 if ( (rv = table->markFldNull(2)) != OK) {
37 conn.rollback();
38 continue;
41 rv = table->insertTuple();
42 if (rv != OK) break;
43 if (i%2 == 0) {table->clearFldNull(1);table->clearFldNull(2);}
44 icount++;
45 conn.commit();
47 printf("Tuples inserted in 1/txn is %d\n", icount);
48 table->setCondition(NULL);
49 rv = table->execute();
50 if (rv != OK)
52 dbMgr->closeTable(table);
53 dbMgr->dropTable("t1");
54 conn.close();
56 void *tuple = NULL;
57 while(true)
59 tuple = (char*)table->fetch() ;
60 if (tuple == NULL) {break;}
61 if (table->isFldNull(1)) printf("Column 1 is null\n");
62 if (table->isFldNull(2)) printf("Column 2 is null\n");
63 printf("Binded Tuple value is %d %d \n", id1, id2);
65 table->closeScan();
66 dbMgr->closeTable(table);
67 dbMgr->dropTable("t1");
68 conn.close();
69 return 0;