adding test scripts
[csql.git] / test / adapter / Select / selecttest7.c
blobed9bf9bba5e5e3dfce76f045bbd5b685213db20e
1 /* create table t1 with two fields,
2 * insert 10 rows into the table ,
3 * call fetch without call execute,it returns NULL.
4 */
6 #include "common.h"
7 int main()
9 DbRetVal rv = OK;
10 AbsSqlConnection *con = createConnection();
11 rv = con->connect("root","manager");
12 if(rv!=OK)return 1;
14 AbsSqlStatement *stmt = createStatement();
15 stmt->setConnection(con);
16 char statement[200];
18 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 CHAR(20));");
19 if(strcmp(getenv("DSN"),"db2")==0)
20 strcpy(statement,"CREATE TABLE t1(f1 INT,f2 CHAR(20))");
22 int rows=0;
23 rv = stmt->prepare(statement);
24 if(rv!=OK)
26 delete stmt;
27 delete con;
28 return 1;
31 rv = stmt->execute(rows);
32 if(rv!=OK)
34 delete stmt;
35 delete con;
36 return 2;
38 stmt->free();
39 con->commit();
40 printf("Table created\n");
42 // insert records
44 strcpy(statement,"INSERT INTO t1 VALUES(?,?);");
45 if(strcmp(getenv("DSN"),"db2")==0)
46 strcpy(statement,"INSERT INTO t1 VALUES(?,?)");
48 int f1var = 1;
49 char f2var[20] = "lakshya";
52 rv = stmt->prepare(statement);
53 if(rv!=OK)
55 delete stmt;
56 delete con;
57 return 3;
60 int count=0;
62 for(int i=0;i<2;i++)
65 for(int j=0;j<5;j++)
67 f1var = j;
68 rv = con->beginTrans();
69 if(rv!=OK)break;
72 stmt->setIntParam(1,f1var);
73 stmt->setStringParam(2,f2var);
75 rv = stmt->execute(rows);
76 if(rv!=OK)break;
77 rv = con->commit();
78 if(rv!=OK)break;
79 count++;
81 printf("%d rows inserted\n",count);
83 stmt->free();
85 //*******************************************
87 strcpy(statement,"SELECT * FROM t1;");
88 if(strcmp(getenv("DSN"),"db2")==0)
89 strcpy(statement,"SELECT * FROM t1");
90 rv = stmt->prepare(statement);
92 if(rv !=OK)
94 delete stmt;
95 delete con;
96 return 4;
100 stmt->bindField(1,&f1var);
101 stmt->bindField(2,f2var);
103 void *ret;
104 count = 0;
105 rv = con->beginTrans();
106 if(rv!=OK)return 5;
107 //stmt->execute(rows);
108 while(1)
111 ret = ((char*)stmt->fetch());
112 if(ret==NULL)
114 printf("Fetch failed without call execute\n");
115 if(strcmp(getenv("DSN"),"sybase")==0){
116 stmt->free();
117 con->commit();
119 strcpy(statement,"DROP TABLE t1;");
120 if(strcmp(getenv("DSN"),"db2")==0)
121 strcpy(statement,"DROP TABLE t1");
122 rv = stmt->prepare(statement);
123 rv = stmt->execute(rows);
124 if(rv==OK){ printf("Table dropped successfully\n"); }
125 stmt->free();
126 con->commit();
127 delete stmt;
128 delete con;
129 return 0;
131 printf("Test script failed\n");
137 stmt->free();
138 con->commit();
139 delete stmt;
140 delete con;
141 return 7;