64 bit build fix
[csql.git] / test / adapter / Connect / conntest11.c
blobb57736d3094a3f7faa3d99ecb27fc817451852a9
1 // create table t1 , insert and update
2 // then rollback. All Should Work Fine
4 #include "common.h"
5 int main()
7 DbRetVal rv = OK;
8 AbsSqlConnection *con = createConnection();
9 rv = con->connect("root","manager");
10 if(rv !=OK)return 1;
11 printf("Connection opened\n");
13 AbsSqlStatement *stmt = createStatement();
14 stmt->setConnection(con);
15 char statement[200];
16 if(strcmp(getenv("DSN"),"oracle")==0)
17 strcpy(statement,"CREATE TABLE t1(f1 number(9),f2 number(9));");
18 else if(strcmp(getenv("DSN"),"psql")==0)
19 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 INT) ;");
20 else if(strcmp(getenv("DSN"),"sybase")==0)
21 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 INT) ;");
22 else if(strcmp(getenv("DSN"),"db2")==0)
23 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 INT)");
24 else
25 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 INT) engine='innodb';");
27 int rows = 0;
28 rv = stmt->prepare(statement);
29 if(rv!=OK)
31 delete stmt;
32 delete con;
33 return 1;
36 rv = stmt->execute(rows);
37 if(rv!=OK)
39 delete stmt;
40 delete con;
41 return 2;
43 con->commit();
44 stmt->free();
45 printf("Table t1 CREATED\n");
47 strcpy(statement,"INSERT INTO t1 VALUES(1,1);");
48 if(strcmp(getenv("DSN"),"db2")==0){
49 strcpy(statement,"INSERT INTO t1 VALUES(1,1)");
51 rv = stmt->prepare(statement);
52 if(rv!=OK)
54 delete stmt;
55 delete con;
56 return 3;
59 rv = con->beginTrans();
60 if(rv!=OK)
62 delete stmt;
63 delete con;
64 return 4;
67 rv = stmt->execute(rows);
68 if(rv!=OK)
70 delete stmt;
71 delete con;
72 return 5;
74 printf("1 Record inserted\n");
75 stmt->free();
77 strcpy(statement,"UPDATE t1 SET f2=100;");
78 if(strcmp(getenv("DSN"),"db2")==0){
79 strcpy(statement,"UPDATE t1 SET f2=100");
82 rv = stmt->prepare(statement);
83 if(rv !=OK)
85 delete stmt;
86 delete con;
87 return 6;
91 rv = stmt->execute(rows);
92 if(rv!=OK && rows !=1)return 7;
93 printf("1 Record updated\n");
94 // ROLLBACK
96 rv = con->rollback();
97 if(rv!=OK)return 8;
99 stmt->free();
101 strcpy(statement,"SELECT f2 FROM t1 ;");
102 if(strcmp(getenv("DSN"),"db2")==0){
103 strcpy(statement,"SELECT f2 FROM t1");
105 rv = stmt->prepare(statement);
106 if(rv!=OK)
108 delete stmt;
109 delete con;
110 return 9;
113 int id=10;
114 stmt->bindField(1,&id);
115 rv = con->beginTrans();
116 if(rv!=OK)return 1;
117 stmt->execute(rows);
118 int count=0;
119 while(stmt->fetch()!=NULL)
121 printf("f2= %d\n",id);
122 count++;
124 stmt->close();
125 rv = con->commit();
126 if(rv!=OK)return 10;
128 printf("Total record fetched =%d ,Because transaction rollbacked\n",count);
129 stmt->free();
131 strcpy(statement,"DROP TABLE t1;");
132 if(strcmp(getenv("DSN"),"db2")==0){
133 strcpy(statement,"DROP TABLE t1");
135 rv = stmt->prepare(statement);
136 if(rv!=OK)
138 delete stmt;
139 delete con;
140 return 11;
142 rv = stmt->execute(rows);
143 if(rv!=OK)
145 delete stmt;
146 delete con;
147 return 12;
149 con->commit();
150 printf("Table droped\n");
151 stmt->free();
152 delete stmt;
153 delete con;
154 return 0;