Line data Source code
1 : /*
2 : * Purpose: Test binding of string types
3 : * Functions: dbbind dbcmd dbcolname dbnextrow dbnumcols dbopen dbresults dbsqlexec
4 :
5 : */
6 :
7 : #include "common.h"
8 :
9 : static int failed = 0;
10 :
11 : static void insert_row(DBPROCESS * dbproc);
12 : static int select_rows(DBPROCESS * dbproc, int bind_type);
13 :
14 : int
15 8 : main(int argc, char **argv)
16 : {
17 : LOGINREC *login;
18 : DBPROCESS *dbproc;
19 :
20 8 : read_login_info(argc, argv);
21 8 : printf("Starting %s\n", argv[0]);
22 :
23 8 : dbinit();
24 :
25 8 : printf("About to logon\n");
26 :
27 8 : login = dblogin();
28 8 : DBSETLPWD(login, PASSWORD);
29 8 : DBSETLUSER(login, USER);
30 8 : DBSETLAPP(login, "t0011");
31 :
32 8 : printf("About to open\n");
33 :
34 8 : dbproc = dbopen(login, SERVER);
35 8 : if (strlen(DATABASE))
36 8 : dbuse(dbproc, DATABASE);
37 8 : dbloginfree(login);
38 :
39 8 : printf("Dropping table\n");
40 8 : sql_cmd(dbproc);
41 8 : dbsqlexec(dbproc);
42 8 : while (dbresults(dbproc) != NO_MORE_RESULTS) {
43 : /* nop */
44 : }
45 :
46 8 : printf("creating table\n");
47 8 : sql_cmd(dbproc);
48 8 : dbsqlexec(dbproc);
49 8 : while (dbresults(dbproc) != NO_MORE_RESULTS) {
50 : /* nop */
51 : }
52 :
53 8 : printf("insert\n");
54 :
55 8 : insert_row(dbproc);
56 8 : insert_row(dbproc);
57 8 : insert_row(dbproc);
58 :
59 8 : failed = select_rows(dbproc, STRINGBIND);
60 :
61 8 : dbexit();
62 :
63 8 : printf("%s %s\n", __FILE__, (failed ? "failed!" : "OK"));
64 8 : return failed ? 1 : 0;
65 : }
66 :
67 : static int
68 8 : select_rows(DBPROCESS * dbproc, int bind_type)
69 : {
70 : char teststr[1024];
71 : char teststr2[1024];
72 : char testvstr[1024];
73 : DBINT testint;
74 : DBINT i;
75 :
76 :
77 8 : printf("select\n");
78 8 : sql_cmd(dbproc);
79 8 : dbsqlexec(dbproc);
80 :
81 :
82 8 : if (dbresults(dbproc) != SUCCEED) {
83 0 : failed = 1;
84 0 : printf("Was expecting a result set.");
85 0 : exit(1);
86 : }
87 :
88 32 : for (i = 1; i <= dbnumcols(dbproc); i++) {
89 32 : printf("col %d is %s\n", i, dbcolname(dbproc, i));
90 : }
91 :
92 8 : if (SUCCEED != dbbind(dbproc, 1, INTBIND, 0, (BYTE *) & testint)) {
93 0 : fprintf(stderr, "Had problem with bind\n");
94 0 : return 1;
95 : }
96 8 : if (SUCCEED != dbbind(dbproc, 2, bind_type, 0, (BYTE *) teststr)) {
97 0 : fprintf(stderr, "Had problem with bind\n");
98 0 : return 1;
99 : }
100 8 : if (SUCCEED != dbbind(dbproc, 3, bind_type, 0, (BYTE *) teststr2)) {
101 0 : fprintf(stderr, "Had problem with bind\n");
102 0 : return 1;
103 : }
104 8 : if (SUCCEED != dbbind(dbproc, 4, bind_type, 0, (BYTE *) testvstr)) {
105 0 : fprintf(stderr, "Had problem with bind\n");
106 0 : return 1;
107 : }
108 :
109 : i = 0;
110 32 : while (dbnextrow(dbproc) == REG_ROW) {
111 24 : i++;
112 24 : if (testint != i) {
113 0 : printf("Failed. Expected i to be |%d|, was |%d|\n", testint, i);
114 0 : return 1;
115 : }
116 24 : printf("c: %s$\n", teststr);
117 24 : printf("c2: %s$\n", teststr2);
118 24 : printf("vc: %s$\n", testvstr);
119 : if (bind_type == STRINGBIND) {
120 : } else {
121 : }
122 : }
123 : return 0;
124 : }
125 :
126 : static void
127 24 : insert_row(DBPROCESS * dbproc)
128 : {
129 24 : sql_cmd(dbproc);
130 24 : dbsqlexec(dbproc);
131 24 : while (dbresults(dbproc) != NO_MORE_RESULTS) {
132 : /* nop */
133 : }
134 24 : }
|