1 : /*
2 : * Purpose: Test for proper return code from dbsqlexec()
3 : * Functions: db_name dbcmd dberrhandle dbmsghandle dbnextrow dbopen dbresults dbsqlexec
4 : */
5 :
6 : #if HAVE_CONFIG_H
7 : #include <config.h>
8 : #endif /* HAVE_CONFIG_H */
9 :
10 : #include <stdio.h>
11 :
12 : #if HAVE_STDLIB_H
13 : #include <stdlib.h>
14 : #endif /* HAVE_STDLIB_H */
15 :
16 : #if HAVE_STRING_H
17 : #include <string.h>
18 : #endif /* HAVE_STRING_H */
19 :
20 : #include <sqlfront.h>
21 : #include <sqldb.h>
22 :
23 : #include "common.h"
24 :
25 : static char software_version[] = "$Id: t0020.c,v 1.13 2005/04/19 03:51:04 jklowden Exp $";
26 : static void *no_unused_var_warn[] = { software_version, no_unused_var_warn };
27 :
28 :
29 :
30 : int failed = 0;
31 :
32 :
33 : int
34 : main(int argc, char **argv)
35 2 : {
36 : LOGINREC *login;
37 : DBPROCESS *dbproc;
38 : RETCODE ret;
39 :
40 2 : set_malloc_options();
41 :
42 2 : read_login_info(argc, argv);
43 :
44 2 : fprintf(stdout, "Start\n");
45 2 : add_bread_crumb();
46 :
47 : /* Fortify_EnterScope(); */
48 2 : dbinit();
49 :
50 2 : add_bread_crumb();
51 2 : dberrhandle(syb_err_handler);
52 2 : dbmsghandle(syb_msg_handler);
53 :
54 2 : fprintf(stdout, "About to logon\n");
55 :
56 2 : add_bread_crumb();
57 2 : login = dblogin();
58 2 : DBSETLPWD(login, PASSWORD);
59 2 : DBSETLUSER(login, USER);
60 2 : DBSETLAPP(login, "t0020");
61 :
62 2 : fprintf(stdout, "About to open\n");
63 :
64 2 : add_bread_crumb();
65 2 : dbproc = dbopen(login, SERVER);
66 2 : if (strlen(DATABASE))
67 2 : dbuse(dbproc, DATABASE);
68 2 : add_bread_crumb();
69 2 : dbloginfree(login);
70 2 : add_bread_crumb();
71 :
72 2 : dbcmd(dbproc, "select dsjfkl dsjf");
73 2 : fprintf(stderr, "The following invalid column error is normal.\n");
74 2 : ret = dbsqlexec(dbproc);
75 2 : if (ret != FAIL) {
76 0 : failed = 1;
77 0 : fprintf(stderr, "Failed. Expected FAIL to be returned.\n");
78 0 : exit(1);
79 : }
80 :
81 2 : dbcmd(dbproc, "select db_name()");
82 2 : ret = dbsqlexec(dbproc);
83 2 : if (ret != SUCCEED) {
84 0 : failed = 1;
85 0 : fprintf(stderr, "Failed. Expected SUCCEED to be returned.\n");
86 0 : exit(1);
87 : }
88 :
89 6 : while (dbresults(dbproc) != NO_MORE_RESULTS) {
90 4 : while (dbnextrow(dbproc) != NO_MORE_ROWS);
91 : }
92 :
93 2 : add_bread_crumb();
94 2 : dbexit();
95 2 : add_bread_crumb();
96 :
97 2 : fprintf(stdout, "dblib %s on %s\n", (failed ? "failed!" : "okay"), __FILE__);
98 2 : free_bread_crumb();
99 2 : return failed ? 1 : 0;
100 : }
|