performance fixes and fix for core dump in test tools/csql/test029.ksh
[csql.git] / examples / sqlapi / manSQLAPIdelete.c
blob4d0b5fb9426ad5cba8bc254fdc0600431d28f696
1 // delete rows where eid > 1005.
2 #include<SqlFactory.h>
4 int main()
6 DbRetVal rv = OK;
7 AbsSqlConnection *con = SqlFactory :: createConnection(CSql);
8 rv = con->connect("root","manager");
9 if(rv!=OK)return 1;
11 AbsSqlStatement *stmt = SqlFactory :: createStatement(CSql);
12 stmt->setConnection(con);
13 if(rv!=OK)return 2;
14 char statement[200];
15 int rows = 0;
17 // deleteing tuples from EMP;
19 int eid = 1000;
20 char ename[20]="lakshya";
21 float salary = 2000;
23 strcpy(statement,"DELETE FROM EMP WHERE EID > 1005;");
24 rv = stmt->prepare(statement);
25 if(rv!=OK) { delete stmt; delete con; return 3; }
27 rv = con->beginTrans();
28 if(rv!=OK) { delete stmt; delete con; return 4; }
29 rv = stmt->execute(rows);
30 if(rv!=OK) { delete stmt; delete con; return 5; }
31 printf("Rows Deleted successfully\n");
32 rv = con->commit();
33 if(rv!=OK) { delete stmt; delete con; return 6; }
34 stmt->free();
36 // fetching the rows from EMP Table
37 strcpy(statement,"SELECT * FROM EMP;");
38 rv = stmt->prepare(statement);
39 if(rv!=OK) { delete stmt; delete con; return 7; }
41 stmt->bindField(1,&eid);
42 stmt->bindField(2,ename);
43 stmt->bindField(3,&salary);
45 printf("EmpId | name\t| salary\n");
46 printf("--------------------------\n");
48 int count=0;
49 rv = con->beginTrans();
50 if(rv!=OK)return 6;
51 stmt->execute(rows);
52 while(stmt->fetch() !=NULL)
53 printf("%d | %s\t| %6.2f\n", eid, ename, salary);
54 rv = con->commit();
55 if(rv!=OK) { delete stmt; delete con; return 7; }
56 stmt->close();
57 stmt->free();
59 strcpy(statement,"DROP TABLE EMP;");
60 rv = stmt->prepare(statement);
61 if(rv!=OK) { delete stmt; delete con; return 9; }
62 rv = stmt->execute(rows);
63 if(rv!=OK) { delete stmt; delete con; return 10; }
64 stmt->free();
65 printf("Table dropped\n");
67 delete stmt;
68 delete con;
69 return 0;