1 // Copyright (c) 1999-2018 David Muse
2 // See the file COPYING for more information.
3 
4 import com.firstworks.sqlrelay.SQLRConnection;
5 import com.firstworks.sqlrelay.SQLRCursor;
6 
7 
8 class db2 {
9 
checkSuccess(String value, String success)10 	private static void checkSuccess(String value, String success) {
11 
12 		if (success==null) {
13 			if (value==null) {
14 				System.out.print("success ");
15 				return;
16 			} else {
17 				System.out.print(value+"!="+success+" ");
18 				System.out.print("failure ");
19 				System.exit(1);
20 			}
21 		}
22 
23 		if (value.equals(success)) {
24 			System.out.print("success ");
25 		} else {
26 			System.out.print(value+"!="+success+" ");
27 			System.out.print("failure ");
28 			System.exit(1);
29 		}
30 	}
31 
checkSuccess(long value, int success)32 	private static void checkSuccess(long value, int success) {
33 
34 		if (value==success) {
35 			System.out.print("success ");
36 		} else {
37 			System.out.print(value+"!="+success+" ");
38 			System.out.print("failure ");
39 			System.exit(1);
40 		}
41 	}
42 
checkSuccess(boolean value, int success)43 	private static void checkSuccess(boolean value, int success) {
44 
45 		if (((value)?1:0)==success) {
46 			System.out.print("success ");
47 		} else {
48 			System.out.print(value+"!="+success+" ");
49 			System.out.print("failure ");
50 			System.exit(1);
51 		}
52 	}
53 
main(String[] args)54 	public static void	main(String[] args) {
55 
56 		String	dbtype;
57 		String[]	bindvars={"1","2","3","4","5","6","7","8","9","10"};
58 		String[]	bindvals={"4","4","4","4.4","4.4","4.4",
59 				"testchar4","testvarchar4","01/01/2004","04:00:00"};
60 		String[]	subvars={"var1","var2","var3"};
61 		String[]	subvalstrings={"hi","hello","bye"};
62 		long[]	subvallongs={1,2,3};
63 		double[]	subvaldoubles={10.55,10.556,10.5556};
64 		int[]	precs={4,5,6};
65 		int[]	scales={2,3,4};
66 		String	numvar;
67 		String	stringvar;
68 		String	floatvar;
69 		String[]	cols;
70 		String[]	fields;
71 		short	port;
72 		String	socket;
73 		short	id;
74 		String	filename;
75 		long[]	fieldlens;
76 
77 		// instantiation
78 		SQLRConnection con=new SQLRConnection("sqlrelay",
79 						(short)9000,
80 						"/tmp/test.socket",
81 						"test","test",0,1);
82 		SQLRCursor cur=new SQLRCursor(con);
83 
84 		// get database type
85 		System.out.println("IDENTIFY: ");
86 		checkSuccess(con.identify(),"db2");
87 		System.out.println();
88 
89 		// ping
90 		System.out.println("PING: ");
91 		checkSuccess(con.ping(),1);
92 		System.out.println();
93 
94 		// drop existing table
95 		cur.sendQuery("drop table testtable");
96 
97 		System.out.println("CREATE TEMPTABLE: ");
98 		checkSuccess(cur.sendQuery("create table testtable (testsmallint smallint, testint integer, testbigint bigint, testdecimal decimal(10,2), testreal real, testdouble double, testchar char(40), testvarchar varchar(40), testdate date, testtime time, testtimestamp timestamp)"),1);
99 		System.out.println();
100 
101 		System.out.println("INSERT: ");
102 		checkSuccess(cur.sendQuery("insert into testtable values (1,1,1,1.1,1.1,1.1,'testchar1','testvarchar1','01/01/2001','01:00:00',null)"),1);
103 		System.out.println();
104 
105 		System.out.println("BIND BY POSITION: ");
106 		cur.prepareQuery("insert into testtable values (?,?,?,?,?,?,?,?,?,?,null)");
107 		checkSuccess(cur.countBindVariables(),10);
108 		cur.inputBind("1",2);
109 		cur.inputBind("2",2);
110 		cur.inputBind("3",2);
111 		cur.inputBind("4",2.2,4,2);
112 		cur.inputBind("5",2.2,4,2);
113 		cur.inputBind("6",2.2,4,2);
114 		cur.inputBind("7","testchar2");
115 		cur.inputBind("8","testvarchar2");
116 		cur.inputBind("9","01/01/2002");
117 		cur.inputBind("10","02:00:00");
118 		checkSuccess(cur.executeQuery(),1);
119 		cur.clearBinds();
120 		cur.inputBind("1",3);
121 		cur.inputBind("2",3);
122 		cur.inputBind("3",3);
123 		cur.inputBind("4",3.3,4,2);
124 		cur.inputBind("5",3.3,4,2);
125 		cur.inputBind("6",3.3,4,2);
126 		cur.inputBind("7","testchar3");
127 		cur.inputBind("8","testvarchar3");
128 		cur.inputBind("9","01/01/2003");
129 		cur.inputBind("10","03:00:00");
130 		checkSuccess(cur.executeQuery(),1);
131 		System.out.println();
132 
133 		System.out.println("ARRAY OF BINDS BY POSITION: ");
134 		cur.clearBinds();
135 		cur.inputBinds(bindvars,bindvals);
136 		checkSuccess(cur.executeQuery(),1);
137 		System.out.println();
138 
139 		System.out.println("INSERT: ");
140 		checkSuccess(cur.sendQuery("insert into testtable values (5,5,5,5.5,5.5,5.5,'testchar5','testvarchar5','01/01/2005','05:00:00',null)"),1);
141 		checkSuccess(cur.sendQuery("insert into testtable values (6,6,6,6.6,6.6,6.6,'testchar6','testvarchar6','01/01/2006','06:00:00',null)"),1);
142 		checkSuccess(cur.sendQuery("insert into testtable values (7,7,7,7.7,7.7,7.7,'testchar7','testvarchar7','01/01/2007','07:00:00',null)"),1);
143 		checkSuccess(cur.sendQuery("insert into testtable values (8,8,8,8.8,8.8,8.8,'testchar8','testvarchar8','01/01/2008','08:00:00',null)"),1);
144 		System.out.println();
145 
146 		System.out.println("AFFECTED ROWS: ");
147 		checkSuccess(cur.affectedRows(),1);
148 		System.out.println();
149 
150 		System.out.println("STORED PROCEDURE: ");
151 		cur.sendQuery("drop procedure testproc");
152 		checkSuccess(cur.sendQuery("create procedure testproc(in invar int, out outvar int) language sql begin set outvar = invar; end"),1);
153 		cur.prepareQuery("call testproc(?,?)");
154 		cur.inputBind("1",5);
155 		cur.defineOutputBindInteger("2");
156 		checkSuccess(cur.executeQuery(),1);
157 		checkSuccess(cur.getOutputBindInteger("2"),5);
158 		checkSuccess(cur.sendQuery("drop procedure testproc"),1);
159 		System.out.println();
160 
161 		System.out.println("SELECT: ");
162 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
163 		System.out.println();
164 
165 		System.out.println("COLUMN COUNT: ");
166 		checkSuccess(cur.colCount(),11);
167 		System.out.println();
168 
169 		System.out.println("COLUMN NAMES: ");
170 		checkSuccess(cur.getColumnName(0),"TESTSMALLINT");
171 		checkSuccess(cur.getColumnName(1),"TESTINT");
172 		checkSuccess(cur.getColumnName(2),"TESTBIGINT");
173 		checkSuccess(cur.getColumnName(3),"TESTDECIMAL");
174 		checkSuccess(cur.getColumnName(4),"TESTREAL");
175 		checkSuccess(cur.getColumnName(5),"TESTDOUBLE");
176 		checkSuccess(cur.getColumnName(6),"TESTCHAR");
177 		checkSuccess(cur.getColumnName(7),"TESTVARCHAR");
178 		checkSuccess(cur.getColumnName(8),"TESTDATE");
179 		checkSuccess(cur.getColumnName(9),"TESTTIME");
180 		checkSuccess(cur.getColumnName(10),"TESTTIMESTAMP");
181 		cols=cur.getColumnNames();
182 		checkSuccess(cols[0],"TESTSMALLINT");
183 		checkSuccess(cols[1],"TESTINT");
184 		checkSuccess(cols[2],"TESTBIGINT");
185 		checkSuccess(cols[3],"TESTDECIMAL");
186 		checkSuccess(cols[4],"TESTREAL");
187 		checkSuccess(cols[5],"TESTDOUBLE");
188 		checkSuccess(cols[6],"TESTCHAR");
189 		checkSuccess(cols[7],"TESTVARCHAR");
190 		checkSuccess(cols[8],"TESTDATE");
191 		checkSuccess(cols[9],"TESTTIME");
192 		checkSuccess(cols[10],"TESTTIMESTAMP");
193 		System.out.println();
194 
195 		System.out.println("COLUMN TYPES: ");
196 		checkSuccess(cur.getColumnType(0),"SMALLINT");
197 		checkSuccess(cur.getColumnType("TESTSMALLINT"),"SMALLINT");
198 		checkSuccess(cur.getColumnType(1),"INTEGER");
199 		checkSuccess(cur.getColumnType("TESTINT"),"INTEGER");
200 		checkSuccess(cur.getColumnType(2),"BIGINT");
201 		checkSuccess(cur.getColumnType("TESTBIGINT"),"BIGINT");
202 		checkSuccess(cur.getColumnType(3),"DECIMAL");
203 		checkSuccess(cur.getColumnType("TESTDECIMAL"),"DECIMAL");
204 		checkSuccess(cur.getColumnType(4),"REAL");
205 		checkSuccess(cur.getColumnType("TESTREAL"),"REAL");
206 		checkSuccess(cur.getColumnType(5),"DOUBLE");
207 		checkSuccess(cur.getColumnType("TESTDOUBLE"),"DOUBLE");
208 		checkSuccess(cur.getColumnType(6),"CHAR");
209 		checkSuccess(cur.getColumnType("TESTCHAR"),"CHAR");
210 		checkSuccess(cur.getColumnType(7),"VARCHAR");
211 		checkSuccess(cur.getColumnType("TESTVARCHAR"),"VARCHAR");
212 		checkSuccess(cur.getColumnType(8),"DATE");
213 		checkSuccess(cur.getColumnType("TESTDATE"),"DATE");
214 		checkSuccess(cur.getColumnType(9),"TIME");
215 		checkSuccess(cur.getColumnType("TESTTIME"),"TIME");
216 		checkSuccess(cur.getColumnType(10),"TIMESTAMP");
217 		checkSuccess(cur.getColumnType("TESTTIMESTAMP"),"TIMESTAMP");
218 		System.out.println();
219 
220 		System.out.println("COLUMN LENGTH: ");
221 		checkSuccess(cur.getColumnLength(0),2);
222 		checkSuccess(cur.getColumnLength("TESTSMALLINT"),2);
223 		checkSuccess(cur.getColumnLength(1),4);
224 		checkSuccess(cur.getColumnLength("TESTINT"),4);
225 		checkSuccess(cur.getColumnLength(2),8);
226 		checkSuccess(cur.getColumnLength("TESTBIGINT"),8);
227 		checkSuccess(cur.getColumnLength(3),12);
228 		checkSuccess(cur.getColumnLength("TESTDECIMAL"),12);
229 		checkSuccess(cur.getColumnLength(4),4);
230 		checkSuccess(cur.getColumnLength("TESTREAL"),4);
231 		checkSuccess(cur.getColumnLength(5),8);
232 		checkSuccess(cur.getColumnLength("TESTDOUBLE"),8);
233 		checkSuccess(cur.getColumnLength(6),40);
234 		checkSuccess(cur.getColumnLength("TESTCHAR"),40);
235 		checkSuccess(cur.getColumnLength(7),40);
236 		checkSuccess(cur.getColumnLength("TESTVARCHAR"),40);
237 		checkSuccess(cur.getColumnLength(8),6);
238 		checkSuccess(cur.getColumnLength("TESTDATE"),6);
239 		checkSuccess(cur.getColumnLength(9),6);
240 		checkSuccess(cur.getColumnLength("TESTTIME"),6);
241 		checkSuccess(cur.getColumnLength(10),16);
242 		checkSuccess(cur.getColumnLength("TESTTIMESTAMP"),16);
243 		System.out.println();
244 
245 		System.out.println("LONGEST COLUMN: ");
246 		checkSuccess(cur.getLongest(0),1);
247 		checkSuccess(cur.getLongest("TESTSMALLINT"),1);
248 		checkSuccess(cur.getLongest(1),1);
249 		checkSuccess(cur.getLongest("TESTINT"),1);
250 		checkSuccess(cur.getLongest(2),1);
251 		checkSuccess(cur.getLongest("TESTBIGINT"),1);
252 		checkSuccess(cur.getLongest(3),4);
253 		checkSuccess(cur.getLongest("TESTDECIMAL"),4);
254 		//checkSuccess(cur.getLongest(4),3);
255 		//checkSuccess(cur.getLongest("TESTREAL"),3);
256 		//checkSuccess(cur.getLongest(5),3);
257 		//checkSuccess(cur.getLongest("TESTDOUBLE"),3);
258 		checkSuccess(cur.getLongest(6),40);
259 		checkSuccess(cur.getLongest("TESTCHAR"),40);
260 		checkSuccess(cur.getLongest(7),12);
261 		checkSuccess(cur.getLongest("TESTVARCHAR"),12);
262 		checkSuccess(cur.getLongest(8),10);
263 		checkSuccess(cur.getLongest("TESTDATE"),10);
264 		checkSuccess(cur.getLongest(9),8);
265 		checkSuccess(cur.getLongest("TESTTIME"),8);
266 		System.out.println();
267 
268 		System.out.println("ROW COUNT: ");
269 		checkSuccess(cur.rowCount(),8);
270 		System.out.println();
271 
272 		System.out.println("TOTAL ROWS: ");
273 		checkSuccess(cur.totalRows(),0);
274 		System.out.println();
275 
276 		System.out.println("FIRST ROW INDEX: ");
277 		checkSuccess(cur.firstRowIndex(),0);
278 		System.out.println();
279 
280 		System.out.println("END OF RESULT SET: ");
281 		checkSuccess(cur.endOfResultSet(),1);
282 		System.out.println();
283 
284 		System.out.println("FIELDS BY INDEX: ");
285 		checkSuccess(cur.getField(0,0),"1");
286 		checkSuccess(cur.getField(0,1),"1");
287 		checkSuccess(cur.getField(0,2),"1");
288 		checkSuccess(cur.getField(0,3),"1.10");
289 		//checkSuccess(cur.getField(0,4),"1.1");
290 		//checkSuccess(cur.getField(0,5),"1.1");
291 		checkSuccess(cur.getField(0,6),"testchar1                               ");
292 		checkSuccess(cur.getField(0,7),"testvarchar1");
293 		checkSuccess(cur.getField(0,8),"2001-01-01");
294 		checkSuccess(cur.getField(0,9),"01:00:00");
295 		System.out.println();
296 		checkSuccess(cur.getField(7,0),"8");
297 		checkSuccess(cur.getField(7,1),"8");
298 		checkSuccess(cur.getField(7,2),"8");
299 		checkSuccess(cur.getField(7,3),"8.80");
300 		//checkSuccess(cur.getField(7,4),"8.8");
301 		//checkSuccess(cur.getField(7,5),"8.8");
302 		checkSuccess(cur.getField(7,6),"testchar8                               ");
303 		checkSuccess(cur.getField(7,7),"testvarchar8");
304 		checkSuccess(cur.getField(7,8),"2008-01-01");
305 		checkSuccess(cur.getField(7,9),"08:00:00");
306 		System.out.println();
307 
308 		System.out.println("FIELD LENGTHS BY INDEX: ");
309 		checkSuccess(cur.getFieldLength(0,0),1);
310 		checkSuccess(cur.getFieldLength(0,1),1);
311 		checkSuccess(cur.getFieldLength(0,2),1);
312 		checkSuccess(cur.getFieldLength(0,3),4);
313 		//checkSuccess(cur.getFieldLength(0,4),3);
314 		//checkSuccess(cur.getFieldLength(0,5),3);
315 		checkSuccess(cur.getFieldLength(0,6),40);
316 		checkSuccess(cur.getFieldLength(0,7),12);
317 		checkSuccess(cur.getFieldLength(0,8),10);
318 		checkSuccess(cur.getFieldLength(0,9),8);
319 		System.out.println();
320 		checkSuccess(cur.getFieldLength(7,0),1);
321 		checkSuccess(cur.getFieldLength(7,1),1);
322 		checkSuccess(cur.getFieldLength(7,2),1);
323 		checkSuccess(cur.getFieldLength(7,3),4);
324 		//checkSuccess(cur.getFieldLength(7,4),3);
325 		//checkSuccess(cur.getFieldLength(7,5),3);
326 		checkSuccess(cur.getFieldLength(7,6),40);
327 		checkSuccess(cur.getFieldLength(7,7),12);
328 		checkSuccess(cur.getFieldLength(7,8),10);
329 		checkSuccess(cur.getFieldLength(7,9),8);
330 		System.out.println();
331 
332 		System.out.println("FIELDS BY NAME: ");
333 		checkSuccess(cur.getField(0,"TESTSMALLINT"),"1");
334 		checkSuccess(cur.getField(0,"TESTINT"),"1");
335 		checkSuccess(cur.getField(0,"TESTBIGINT"),"1");
336 		checkSuccess(cur.getField(0,"TESTDECIMAL"),"1.10");
337 		//checkSuccess(cur.getField(0,"TESTREAL"),"1.1");
338 		//checkSuccess(cur.getField(0,"TESTDOUBLE"),"1.1");
339 		checkSuccess(cur.getField(0,"TESTCHAR"),"testchar1                               ");
340 		checkSuccess(cur.getField(0,"TESTVARCHAR"),"testvarchar1");
341 		checkSuccess(cur.getField(0,"TESTDATE"),"2001-01-01");
342 		checkSuccess(cur.getField(0,"TESTTIME"),"01:00:00");
343 		System.out.println();
344 		checkSuccess(cur.getField(7,"TESTSMALLINT"),"8");
345 		checkSuccess(cur.getField(7,"TESTINT"),"8");
346 		checkSuccess(cur.getField(7,"TESTBIGINT"),"8");
347 		checkSuccess(cur.getField(7,"TESTDECIMAL"),"8.80");
348 		//checkSuccess(cur.getField(7,"TESTREAL"),"8.8");
349 		//checkSuccess(cur.getField(7,"TESTDOUBLE"),"8.8");
350 		checkSuccess(cur.getField(7,"TESTCHAR"),"testchar8                               ");
351 		checkSuccess(cur.getField(7,"TESTVARCHAR"),"testvarchar8");
352 		checkSuccess(cur.getField(7,"TESTDATE"),"2008-01-01");
353 		checkSuccess(cur.getField(7,"TESTTIME"),"08:00:00");
354 		System.out.println();
355 
356 		System.out.println("FIELD LENGTHS BY NAME: ");
357 		checkSuccess(cur.getFieldLength(0,"TESTSMALLINT"),1);
358 		checkSuccess(cur.getFieldLength(0,"TESTINT"),1);
359 		checkSuccess(cur.getFieldLength(0,"TESTBIGINT"),1);
360 		checkSuccess(cur.getFieldLength(0,"TESTDECIMAL"),4);
361 		//checkSuccess(cur.getFieldLength(0,"TESTREAL"),3);
362 		//checkSuccess(cur.getFieldLength(0,"TESTDOUBLE"),3);
363 		checkSuccess(cur.getFieldLength(0,"TESTCHAR"),40);
364 		checkSuccess(cur.getFieldLength(0,"TESTVARCHAR"),12);
365 		checkSuccess(cur.getFieldLength(0,"TESTDATE"),10);
366 		checkSuccess(cur.getFieldLength(0,"TESTTIME"),8);
367 		System.out.println();
368 		checkSuccess(cur.getFieldLength(7,"TESTSMALLINT"),1);
369 		checkSuccess(cur.getFieldLength(7,"TESTINT"),1);
370 		checkSuccess(cur.getFieldLength(7,"TESTBIGINT"),1);
371 		checkSuccess(cur.getFieldLength(7,"TESTDECIMAL"),4);
372 		//checkSuccess(cur.getFieldLength(7,"TESTREAL"),3);
373 		//checkSuccess(cur.getFieldLength(7,"TESTDOUBLE"),3);
374 		checkSuccess(cur.getFieldLength(7,"TESTCHAR"),40);
375 		checkSuccess(cur.getFieldLength(7,"TESTVARCHAR"),12);
376 		checkSuccess(cur.getFieldLength(7,"TESTDATE"),10);
377 		checkSuccess(cur.getFieldLength(7,"TESTTIME"),8);
378 		System.out.println();
379 
380 		System.out.println("FIELDS BY ARRAY: ");
381 		fields=cur.getRow(0);
382 		checkSuccess(fields[0],"1");
383 		checkSuccess(fields[1],"1");
384 		checkSuccess(fields[2],"1");
385 		checkSuccess(fields[3],"1.10");
386 		//checkSuccess(fields[4],"1.1");
387 		//checkSuccess(fields[5],"1.1");
388 		checkSuccess(fields[6],"testchar1                               ");
389 		checkSuccess(fields[7],"testvarchar1");
390 		checkSuccess(fields[8],"2001-01-01");
391 		checkSuccess(fields[9],"01:00:00");
392 		System.out.println();
393 
394 		System.out.println("FIELD LENGTHS BY ARRAY: ");
395 		fieldlens=cur.getRowLengths(0);
396 		checkSuccess(fieldlens[0],1);
397 		checkSuccess(fieldlens[1],1);
398 		checkSuccess(fieldlens[2],1);
399 		checkSuccess(fieldlens[3],4);
400 		//checkSuccess(fieldlens[4],3);
401 		//checkSuccess(fieldlens[5],3);
402 		checkSuccess(fieldlens[6],40);
403 		checkSuccess(fieldlens[7],12);
404 		checkSuccess(fieldlens[8],10);
405 		checkSuccess(fieldlens[9],8);
406 		System.out.println();
407 
408 		System.out.println("INDIVIDUAL SUBSTITUTIONS: ");
409 		cur.prepareQuery("values ($(var1),'$(var2)','$(var3)')");
410 		cur.substitution("var1",1);
411 		cur.substitution("var2","hello");
412 		cur.substitution("var3",10.5556,6,4);
413 		checkSuccess(cur.executeQuery(),1);
414 		System.out.println();
415 
416 		System.out.println("FIELDS: ");
417 		checkSuccess(cur.getField(0,0),"1");
418 		checkSuccess(cur.getField(0,1),"hello");
419 		checkSuccess(cur.getField(0,2),"10.5556");
420 		System.out.println();
421 
422 		System.out.println("ARRAY SUBSTITUTIONS: ");
423 		cur.prepareQuery("values ('$(var1)','$(var2)','$(var3)')");
424 		cur.substitutions(subvars,subvalstrings);
425 		checkSuccess(cur.executeQuery(),1);
426 		System.out.println();
427 
428 		System.out.println("FIELDS: ");
429 		checkSuccess(cur.getField(0,0),"hi");
430 		checkSuccess(cur.getField(0,1),"hello");
431 		checkSuccess(cur.getField(0,2),"bye");
432 		System.out.println();
433 
434 		System.out.println("ARRAY SUBSTITUTIONS: ");
435 		cur.prepareQuery("values ($(var1),$(var2),$(var3))");
436 		cur.substitutions(subvars,subvallongs);
437 		checkSuccess(cur.executeQuery(),1);
438 		System.out.println();
439 
440 		System.out.println("FIELDS: ");
441 		checkSuccess(cur.getField(0,0),"1");
442 		checkSuccess(cur.getField(0,1),"2");
443 		checkSuccess(cur.getField(0,2),"3");
444 		System.out.println();
445 
446 		System.out.println("ARRAY SUBSTITUTIONS: ");
447 		cur.prepareQuery("values ($(var1),$(var2),$(var3))");
448 		cur.substitutions(subvars,subvaldoubles,precs,scales);
449 		checkSuccess(cur.executeQuery(),1);
450 		System.out.println();
451 
452 		System.out.println("FIELDS: ");
453 		checkSuccess(cur.getField(0,0),"10.55");
454 		checkSuccess(cur.getField(0,1),"10.556");
455 		checkSuccess(cur.getField(0,2),"10.5556");
456 		System.out.println();
457 
458 		System.out.println("nullS as Nulls: ");
459 		cur.sendQuery("drop table testtable1");
460 		cur.sendQuery("create table testtable1 (col1 char(1), col2 char(1), col3 char(1))");
461 		cur.getNullsAsNulls();
462 		checkSuccess(cur.sendQuery("insert into testtable1 values ('1',null,null)"),1);
463 		checkSuccess(cur.sendQuery("select * from testtable1"),1);
464 		checkSuccess(cur.getField(0,0),"1");
465 		checkSuccess(cur.getField(0,1),null);
466 		checkSuccess(cur.getField(0,2),null);
467 		cur.getNullsAsEmptyStrings();
468 		checkSuccess(cur.sendQuery("select * from testtable1"),1);
469 		checkSuccess(cur.getField(0,0),"1");
470 		checkSuccess(cur.getField(0,1),"");
471 		checkSuccess(cur.getField(0,2),"");
472 		cur.sendQuery("drop table testtable1");
473 		cur.getNullsAsNulls();
474 		System.out.println();
475 
476 		System.out.println("RESULT SET BUFFER SIZE: ");
477 		checkSuccess(cur.getResultSetBufferSize(),0);
478 		cur.setResultSetBufferSize(2);
479 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
480 		checkSuccess(cur.getResultSetBufferSize(),2);
481 		System.out.println();
482 		checkSuccess(cur.firstRowIndex(),0);
483 		checkSuccess(cur.endOfResultSet(),0);
484 		checkSuccess(cur.rowCount(),2);
485 		checkSuccess(cur.getField(0,0),"1");
486 		checkSuccess(cur.getField(1,0),"2");
487 		checkSuccess(cur.getField(2,0),"3");
488 		System.out.println();
489 		checkSuccess(cur.firstRowIndex(),2);
490 		checkSuccess(cur.endOfResultSet(),0);
491 		checkSuccess(cur.rowCount(),4);
492 		checkSuccess(cur.getField(6,0),"7");
493 		checkSuccess(cur.getField(7,0),"8");
494 		System.out.println();
495 		checkSuccess(cur.firstRowIndex(),6);
496 		checkSuccess(cur.endOfResultSet(),0);
497 		checkSuccess(cur.rowCount(),8);
498 		checkSuccess(cur.getField(8,0),null);
499 		System.out.println();
500 		checkSuccess(cur.firstRowIndex(),8);
501 		checkSuccess(cur.endOfResultSet(),1);
502 		checkSuccess(cur.rowCount(),8);
503 		System.out.println();
504 
505 		System.out.println("DONT GET COLUMN INFO: ");
506 		cur.dontGetColumnInfo();
507 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
508 		checkSuccess(cur.getColumnName(0),null);
509 		checkSuccess(cur.getColumnLength(0),0);
510 		checkSuccess(cur.getColumnType(0),null);
511 		cur.getColumnInfo();
512 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
513 		checkSuccess(cur.getColumnName(0),"TESTSMALLINT");
514 		checkSuccess(cur.getColumnLength(0),2);
515 		checkSuccess(cur.getColumnType(0),"SMALLINT");
516 		System.out.println();
517 
518 		System.out.println("SUSPENDED SESSION: ");
519 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
520 		cur.suspendResultSet();
521 		checkSuccess(con.suspendSession(),1);
522 		port=con.getConnectionPort();
523 		socket=con.getConnectionSocket();
524 		checkSuccess(con.resumeSession(port,socket),1);
525 		System.out.println();
526 		checkSuccess(cur.getField(0,0),"1");
527 		checkSuccess(cur.getField(1,0),"2");
528 		checkSuccess(cur.getField(2,0),"3");
529 		checkSuccess(cur.getField(3,0),"4");
530 		checkSuccess(cur.getField(4,0),"5");
531 		checkSuccess(cur.getField(5,0),"6");
532 		checkSuccess(cur.getField(6,0),"7");
533 		checkSuccess(cur.getField(7,0),"8");
534 		System.out.println();
535 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
536 		cur.suspendResultSet();
537 		checkSuccess(con.suspendSession(),1);
538 		port=con.getConnectionPort();
539 		socket=con.getConnectionSocket();
540 		checkSuccess(con.resumeSession(port,socket),1);
541 		System.out.println();
542 		checkSuccess(cur.getField(0,0),"1");
543 		checkSuccess(cur.getField(1,0),"2");
544 		checkSuccess(cur.getField(2,0),"3");
545 		checkSuccess(cur.getField(3,0),"4");
546 		checkSuccess(cur.getField(4,0),"5");
547 		checkSuccess(cur.getField(5,0),"6");
548 		checkSuccess(cur.getField(6,0),"7");
549 		checkSuccess(cur.getField(7,0),"8");
550 		System.out.println();
551 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
552 		cur.suspendResultSet();
553 		checkSuccess(con.suspendSession(),1);
554 		port=con.getConnectionPort();
555 		socket=con.getConnectionSocket();
556 		checkSuccess(con.resumeSession(port,socket),1);
557 		System.out.println();
558 		checkSuccess(cur.getField(0,0),"1");
559 		checkSuccess(cur.getField(1,0),"2");
560 		checkSuccess(cur.getField(2,0),"3");
561 		checkSuccess(cur.getField(3,0),"4");
562 		checkSuccess(cur.getField(4,0),"5");
563 		checkSuccess(cur.getField(5,0),"6");
564 		checkSuccess(cur.getField(6,0),"7");
565 		checkSuccess(cur.getField(7,0),"8");
566 		System.out.println();
567 
568 		System.out.println("SUSPENDED RESULT SET: ");
569 		cur.setResultSetBufferSize(2);
570 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
571 		checkSuccess(cur.getField(2,0),"3");
572 		id=cur.getResultSetId();
573 		cur.suspendResultSet();
574 		checkSuccess(con.suspendSession(),1);
575 		port=con.getConnectionPort();
576 		socket=con.getConnectionSocket();
577 		checkSuccess(con.resumeSession(port,socket),1);
578 		checkSuccess(cur.resumeResultSet(id),1);
579 		System.out.println();
580 		checkSuccess(cur.firstRowIndex(),4);
581 		checkSuccess(cur.endOfResultSet(),0);
582 		checkSuccess(cur.rowCount(),6);
583 		checkSuccess(cur.getField(7,0),"8");
584 		System.out.println();
585 		checkSuccess(cur.firstRowIndex(),6);
586 		checkSuccess(cur.endOfResultSet(),0);
587 		checkSuccess(cur.rowCount(),8);
588 		checkSuccess(cur.getField(8,0),null);
589 		System.out.println();
590 		checkSuccess(cur.firstRowIndex(),8);
591 		checkSuccess(cur.endOfResultSet(),1);
592 		checkSuccess(cur.rowCount(),8);
593 		cur.setResultSetBufferSize(0);
594 		System.out.println();
595 
596 		System.out.println("CACHED RESULT SET: ");
597 		cur.cacheToFile("cachefile1");
598 		cur.setCacheTtl(200);
599 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
600 		filename=cur.getCacheFileName();
601 		checkSuccess(filename,"cachefile1");
602 		cur.cacheOff();
603 		checkSuccess(cur.openCachedResultSet(filename),1);
604 		checkSuccess(cur.getField(7,0),"8");
605 		System.out.println();
606 
607 		System.out.println("COLUMN COUNT FOR CACHED RESULT SET: ");
608 		checkSuccess(cur.colCount(),11);
609 		System.out.println();
610 
611 		System.out.println("COLUMN NAMES FOR CACHED RESULT SET: ");
612 		checkSuccess(cur.getColumnName(0),"TESTSMALLINT");
613 		checkSuccess(cur.getColumnName(1),"TESTINT");
614 		checkSuccess(cur.getColumnName(2),"TESTBIGINT");
615 		checkSuccess(cur.getColumnName(3),"TESTDECIMAL");
616 		checkSuccess(cur.getColumnName(4),"TESTREAL");
617 		checkSuccess(cur.getColumnName(5),"TESTDOUBLE");
618 		checkSuccess(cur.getColumnName(6),"TESTCHAR");
619 		checkSuccess(cur.getColumnName(7),"TESTVARCHAR");
620 		checkSuccess(cur.getColumnName(8),"TESTDATE");
621 		checkSuccess(cur.getColumnName(9),"TESTTIME");
622 		checkSuccess(cur.getColumnName(10),"TESTTIMESTAMP");
623 		cols=cur.getColumnNames();
624 		checkSuccess(cols[0],"TESTSMALLINT");
625 		checkSuccess(cols[1],"TESTINT");
626 		checkSuccess(cols[2],"TESTBIGINT");
627 		checkSuccess(cols[3],"TESTDECIMAL");
628 		checkSuccess(cols[4],"TESTREAL");
629 		checkSuccess(cols[5],"TESTDOUBLE");
630 		checkSuccess(cols[6],"TESTCHAR");
631 		checkSuccess(cols[7],"TESTVARCHAR");
632 		checkSuccess(cols[8],"TESTDATE");
633 		checkSuccess(cols[9],"TESTTIME");
634 		checkSuccess(cols[10],"TESTTIMESTAMP");
635 		System.out.println();
636 
637 		System.out.println("CACHED RESULT SET WITH RESULT SET BUFFER SIZE: ");
638 		cur.setResultSetBufferSize(2);
639 		cur.cacheToFile("cachefile1");
640 		cur.setCacheTtl(200);
641 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
642 		filename=cur.getCacheFileName();
643 		checkSuccess(filename,"cachefile1");
644 		cur.cacheOff();
645 		checkSuccess(cur.openCachedResultSet(filename),1);
646 		checkSuccess(cur.getField(7,0),"8");
647 		checkSuccess(cur.getField(8,0),null);
648 		cur.setResultSetBufferSize(0);
649 		System.out.println();
650 
651 		System.out.println("FROM ONE CACHE FILE TO ANOTHER: ");
652 		cur.cacheToFile("cachefile2");
653 		checkSuccess(cur.openCachedResultSet("cachefile1"),1);
654 		cur.cacheOff();
655 		checkSuccess(cur.openCachedResultSet("cachefile2"),1);
656 		checkSuccess(cur.getField(7,0),"8");
657 		checkSuccess(cur.getField(8,0),null);
658 		System.out.println();
659 
660 		System.out.println("FROM ONE CACHE FILE TO ANOTHER WITH RESULT SET BUFFER SIZE: ");
661 		cur.setResultSetBufferSize(2);
662 		cur.cacheToFile("cachefile2");
663 		checkSuccess(cur.openCachedResultSet("cachefile1"),1);
664 		cur.cacheOff();
665 		checkSuccess(cur.openCachedResultSet("cachefile2"),1);
666 		checkSuccess(cur.getField(7,0),"8");
667 		checkSuccess(cur.getField(8,0),null);
668 		cur.setResultSetBufferSize(0);
669 		System.out.println();
670 
671 		System.out.println("CACHED RESULT SET WITH SUSPEND AND RESULT SET BUFFER SIZE: ");
672 		cur.setResultSetBufferSize(2);
673 		cur.cacheToFile("cachefile1");
674 		cur.setCacheTtl(200);
675 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),1);
676 		checkSuccess(cur.getField(2,0),"3");
677 		filename=cur.getCacheFileName();
678 		checkSuccess(filename,"cachefile1");
679 		id=cur.getResultSetId();
680 		cur.suspendResultSet();
681 		checkSuccess(con.suspendSession(),1);
682 		port=con.getConnectionPort();
683 		socket=con.getConnectionSocket();
684 		System.out.println();
685 		checkSuccess(con.resumeSession(port,socket),1);
686 		checkSuccess(cur.resumeCachedResultSet(id,filename),1);
687 		System.out.println();
688 		checkSuccess(cur.firstRowIndex(),4);
689 		checkSuccess(cur.endOfResultSet(),0);
690 		checkSuccess(cur.rowCount(),6);
691 		checkSuccess(cur.getField(7,0),"8");
692 		System.out.println();
693 		checkSuccess(cur.firstRowIndex(),6);
694 		checkSuccess(cur.endOfResultSet(),0);
695 		checkSuccess(cur.rowCount(),8);
696 		checkSuccess(cur.getField(8,0),null);
697 		System.out.println();
698 		checkSuccess(cur.firstRowIndex(),8);
699 		checkSuccess(cur.endOfResultSet(),1);
700 		checkSuccess(cur.rowCount(),8);
701 		cur.cacheOff();
702 		System.out.println();
703 		checkSuccess(cur.openCachedResultSet(filename),1);
704 		checkSuccess(cur.getField(7,0),"8");
705 		checkSuccess(cur.getField(8,0),null);
706 		cur.setResultSetBufferSize(0);
707 		System.out.println();
708 
709 		System.out.println("FINISHED SUSPENDED SESSION: ");
710 		checkSuccess(cur.sendQuery("select * from testtable order by testint"),1);
711 		checkSuccess(cur.getField(4,0),"5");
712 		checkSuccess(cur.getField(5,0),"6");
713 		checkSuccess(cur.getField(6,0),"7");
714 		checkSuccess(cur.getField(7,0),"8");
715 		id=cur.getResultSetId();
716 		cur.suspendResultSet();
717 		checkSuccess(con.suspendSession(),1);
718 		port=con.getConnectionPort();
719 		socket=con.getConnectionSocket();
720 		checkSuccess(con.resumeSession(port,socket),1);
721 		checkSuccess(cur.resumeResultSet(id),1);
722 		checkSuccess(cur.getField(4,0),null);
723 		checkSuccess(cur.getField(5,0),null);
724 		checkSuccess(cur.getField(6,0),null);
725 		checkSuccess(cur.getField(7,0),null);
726 		System.out.println();
727 
728 		// drop existing table
729 		con.commit();
730 		cur.sendQuery("drop table testtable");
731 		System.out.println();
732 
733 		// invalid queries...
734 		System.out.println("INVALID QUERIES: ");
735 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),0);
736 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),0);
737 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),0);
738 		checkSuccess(cur.sendQuery("select * from testtable order by testsmallint"),0);
739 		System.out.println();
740 		checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0);
741 		checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0);
742 		checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0);
743 		checkSuccess(cur.sendQuery("insert into testtable values (1,2,3,4)"),0);
744 		System.out.println();
745 		checkSuccess(cur.sendQuery("create table testtable"),0);
746 		checkSuccess(cur.sendQuery("create table testtable"),0);
747 		checkSuccess(cur.sendQuery("create table testtable"),0);
748 		checkSuccess(cur.sendQuery("create table testtable"),0);
749 		System.out.println();
750 
751 		System.exit(0);
752 	}
753 }
754