Line data Source code
1 : #include "common.h"
2 :
3 10 : TEST_MAIN()
4 : {
5 : SQLINTEGER id;
6 : SQLLEN ind1, ind2;
7 : char name[64];
8 :
9 10 : odbc_connect();
10 :
11 10 : odbc_command("CREATE TABLE #test(id INT, name VARCHAR(100))");
12 10 : odbc_command("INSERT INTO #test(id, name) VALUES(8, 'sysobjects')");
13 :
14 : /* bind before select */
15 10 : SQLBindCol(odbc_stmt, 1, SQL_C_SLONG, &id, sizeof(SQLINTEGER), &ind1);
16 10 : SQLBindCol(odbc_stmt, 2, SQL_C_CHAR, name, sizeof(name), &ind2);
17 :
18 : /* do select */
19 10 : odbc_command("SELECT id, name FROM #test WHERE name = 'sysobjects' SELECT 123, 'foo'");
20 :
21 : /* get results */
22 10 : id = -1;
23 10 : memset(name, 0, sizeof(name));
24 10 : CHKFetch("S");
25 :
26 10 : if (id == -1 || strcmp(name, "sysobjects") != 0) {
27 0 : fprintf(stderr, "wrong results\n");
28 0 : return 1;
29 : }
30 :
31 : /* discard others data */
32 10 : CHKFetch("No");
33 :
34 10 : SQLMoreResults(odbc_stmt);
35 :
36 10 : id = -1;
37 10 : memset(name, 0, sizeof(name));
38 10 : CHKFetch("S");
39 :
40 10 : if (id != 123 || strcmp(name, "foo") != 0) {
41 0 : fprintf(stderr, "wrong results\n");
42 0 : return 1;
43 : }
44 :
45 : /* discard others data */
46 10 : CHKFetch("No");
47 :
48 10 : SQLMoreResults(odbc_stmt);
49 :
50 : /* other select */
51 10 : odbc_command("SELECT 321, 'minni'");
52 :
53 : /* get results */
54 10 : id = -1;
55 10 : memset(name, 0, sizeof(name));
56 10 : CHKFetch("S");
57 :
58 10 : if (id != 321 || strcmp(name, "minni") != 0) {
59 0 : fprintf(stderr, "wrong results\n");
60 0 : return 1;
61 : }
62 :
63 : /* discard others data */
64 10 : CHKFetch("No");
65 :
66 10 : SQLMoreResults(odbc_stmt);
67 :
68 10 : odbc_disconnect();
69 :
70 10 : printf("Done.\n");
71 10 : return 0;
72 : }
|