1#! /usr/bin/env tclsh 2 3# Copyright (c) 1999-2018 David Muse 4# See the file COPYING for more information. 5 6load @TCLLIBSPATH@@SLASH@sqlrelay@SLASH@sqlrelay.@SOSUFFIX@ sqlrelay 7 8proc checkUndef {value} { 9 10 switch $value "" { 11 puts -nonewline "success " 12 } default { 13 puts "$value != $success " 14 puts "failure " 15 exit 1 16 } 17} 18 19proc checkSuccess {value success} { 20 21 if {$value==$success} { 22 puts -nonewline "success " 23 } else { 24 puts "$value != $success " 25 puts "failure " 26 exit 1 27 } 28} 29 30# instantiation 31set con [sqlrcon -server "sqlrelay" -port 9000 -socket "/tmp/test.socket" -user "test" -password "test" -retrytime 0 -tries 1] 32set cur [$con sqlrcur] 33 34# get database type 35puts "IDENTIFY: " 36checkSuccess [$con identify] "sqlite" 37puts "" 38 39# ping 40puts "PING: " 41checkSuccess [$con ping] 1 42puts "" 43 44# drop existing table 45$cur sendQuery "begin transaction" 46catch {$cur sendQuery "drop table testtable"} 47$con commit 48 49# create a new table 50puts "CREATE TEMPTABLE: " 51$cur sendQuery "begin transaction" 52checkSuccess [$cur sendQuery "create table testtable (testint int, testfloat float, testchar char(40), testvarchar varchar(40))"] 1 53$con commit 54puts "" 55 56puts "INSERT: " 57$cur sendQuery "begin transaction" 58checkSuccess [$cur sendQuery "insert into testtable values (1,1.1,'testchar1','testvarchar1')"] 1 59checkSuccess [$cur sendQuery "insert into testtable values (2,2.2,'testchar2','testvarchar2')"] 1 60checkSuccess [$cur sendQuery "insert into testtable values (3,3.3,'testchar3','testvarchar3')"] 1 61checkSuccess [$cur sendQuery "insert into testtable values (4,4.4,'testchar4','testvarchar4')"] 1 62puts "" 63 64puts "AFFECTED ROWS: " 65checkSuccess [$cur affectedRows] 0 66puts "" 67 68puts "BIND BY NAME: " 69$cur prepareQuery "insert into testtable values (:var1,:var2,:var3,:var4)" 70checkSuccess [$cur countBindVariables] 4 71$cur inputBind "var1" 5 72$cur inputBind "var2" 5.5 4 1 73$cur inputBind "var3" "testchar5" 74$cur inputBind "var4" "testvarchar5" 75checkSuccess [$cur executeQuery] 1 76$cur clearBinds 77$cur inputBind "var1" 6 78$cur inputBind "var2" 6.6 4 1 79$cur inputBind "var3" "testchar6" 80$cur inputBind "var4" "testvarchar6" 81checkSuccess [$cur executeQuery] 1 82puts "" 83 84puts "ARRAY OF BINDS BY NAME: " 85$cur clearBinds 86$cur inputBinds {{"var1" 7} {"var2" 7.7 4 1} {"var3" "testchar7"} {"var4" "testvarchar7"}} 87checkSuccess [$cur executeQuery] 1 88puts "" 89 90puts "BIND BY NAME WITH VALIDATION: " 91$cur clearBinds 92$cur inputBind "var1" 8 93$cur inputBind "var2" 8.8 4 1 94$cur inputBind "var3" "testchar8" 95$cur inputBind "var4" "testvarchar8" 96$cur validateBinds 97checkSuccess [$cur executeQuery] 1 98puts "" 99 100puts "SELECT: " 101checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 102puts "" 103 104puts "COLUMN COUNT: " 105checkSuccess [$cur colCount] 4 106puts "" 107 108puts "COLUMN NAMES: " 109checkSuccess [$cur getColumnName 0] "testint" 110checkSuccess [$cur getColumnName 1] "testfloat" 111checkSuccess [$cur getColumnName 2] "testchar" 112checkSuccess [$cur getColumnName 3] "testvarchar" 113set cols [$cur getColumnNames] 114checkSuccess [lindex $cols 0] "testint" 115checkSuccess [lindex $cols 1] "testfloat" 116checkSuccess [lindex $cols 2] "testchar" 117checkSuccess [lindex $cols 3] "testvarchar" 118puts "" 119 120puts "COLUMN TYPES: " 121checkSuccess [$cur getColumnTypeByIndex 0] "INTEGER" 122checkSuccess [$cur getColumnTypeByName "testint"] "INTEGER" 123checkSuccess [$cur getColumnTypeByIndex 1] "FLOAT" 124checkSuccess [$cur getColumnTypeByName "testfloat"] "FLOAT" 125checkSuccess [$cur getColumnTypeByIndex 2] "STRING" 126checkSuccess [$cur getColumnTypeByName "testchar"] "STRING" 127checkSuccess [$cur getColumnTypeByIndex 3] "STRING" 128checkSuccess [$cur getColumnTypeByName "testvarchar"] "STRING" 129puts "" 130 131puts "COLUMN LENGTH: " 132checkSuccess [$cur getColumnLengthByIndex 0] 0 133checkSuccess [$cur getColumnLengthByName "testint"] 0 134checkSuccess [$cur getColumnLengthByIndex 1] 0 135checkSuccess [$cur getColumnLengthByName "testfloat"] 0 136checkSuccess [$cur getColumnLengthByIndex 2] 0 137checkSuccess [$cur getColumnLengthByName "testchar"] 0 138checkSuccess [$cur getColumnLengthByIndex 3] 0 139checkSuccess [$cur getColumnLengthByName "testvarchar"] 0 140puts "" 141 142puts "LONGEST COLUMN: " 143checkSuccess [$cur getLongestByIndex 0] 1 144checkSuccess [$cur getLongestByName "testint"] 1 145checkSuccess [$cur getLongestByIndex 1] 3 146checkSuccess [$cur getLongestByName "testfloat"] 3 147checkSuccess [$cur getLongestByIndex 2] 9 148checkSuccess [$cur getLongestByName "testchar"] 9 149checkSuccess [$cur getLongestByIndex 3] 12 150checkSuccess [$cur getLongestByName "testvarchar"] 12 151puts "" 152 153puts "ROW COUNT: " 154checkSuccess [$cur rowCount] 8 155puts "" 156 157puts "TOTAL ROWS: " 158checkSuccess [$cur totalRows] 0 159puts "" 160 161puts "FIRST ROW INDEX: " 162checkSuccess [$cur firstRowIndex] 0 163puts "" 164 165puts "END OF RESULT SET: " 166checkSuccess [$cur endOfResultSet] 1 167puts "" 168 169puts "FIELDS BY INDEX: " 170checkSuccess [$cur getFieldByIndex 0 0] "1" 171checkSuccess [$cur getFieldByIndex 0 1] "1.1" 172checkSuccess [$cur getFieldByIndex 0 2] "testchar1" 173checkSuccess [$cur getFieldByIndex 0 3] "testvarchar1" 174puts "" 175checkSuccess [$cur getFieldByIndex 7 0] "8" 176checkSuccess [$cur getFieldByIndex 7 1] "8.8" 177checkSuccess [$cur getFieldByIndex 7 2] "testchar8" 178checkSuccess [$cur getFieldByIndex 7 3] "testvarchar8" 179puts "" 180 181puts "FIELD LENGTHS BY INDEX: " 182checkSuccess [$cur getFieldLengthByIndex 0 0] 1 183checkSuccess [$cur getFieldLengthByIndex 0 1] 3 184checkSuccess [$cur getFieldLengthByIndex 0 2] 9 185checkSuccess [$cur getFieldLengthByIndex 0 3] 12 186puts "" 187checkSuccess [$cur getFieldLengthByIndex 7 0] 1 188checkSuccess [$cur getFieldLengthByIndex 7 1] 3 189checkSuccess [$cur getFieldLengthByIndex 7 2] 9 190checkSuccess [$cur getFieldLengthByIndex 7 3] 12 191puts "" 192 193puts "FIELDS BY NAME: " 194checkSuccess [$cur getFieldByName 0 "testint"] "1" 195checkSuccess [$cur getFieldByName 0 "testfloat"] "1.1" 196checkSuccess [$cur getFieldByName 0 "testchar"] "testchar1" 197checkSuccess [$cur getFieldByName 0 "testvarchar"] "testvarchar1" 198puts "" 199checkSuccess [$cur getFieldByName 7 "testint"] "8" 200checkSuccess [$cur getFieldByName 7 "testfloat"] "8.8" 201checkSuccess [$cur getFieldByName 7 "testchar"] "testchar8" 202checkSuccess [$cur getFieldByName 7 "testvarchar"] "testvarchar8" 203puts "" 204 205puts "FIELD LENGTHS BY NAME: " 206checkSuccess [$cur getFieldLengthByName 0 "testint"] 1 207checkSuccess [$cur getFieldLengthByName 0 "testfloat"] 3 208checkSuccess [$cur getFieldLengthByName 0 "testchar"] 9 209checkSuccess [$cur getFieldLengthByName 0 "testvarchar"] 12 210puts "" 211checkSuccess [$cur getFieldLengthByName 7 "testint"] 1 212checkSuccess [$cur getFieldLengthByName 7 "testfloat"] 3 213checkSuccess [$cur getFieldLengthByName 7 "testchar"] 9 214checkSuccess [$cur getFieldLengthByName 7 "testvarchar"] 12 215puts "" 216 217puts "FIELDS BY ARRAY: " 218set fields [$cur getRow 0] 219checkSuccess [lindex $fields 0] "1" 220checkSuccess [lindex $fields 1] "1.1" 221checkSuccess [lindex $fields 2] "testchar1" 222checkSuccess [lindex $fields 3] "testvarchar1" 223puts "" 224 225puts "FIELD LENGTHS BY ARRAY: " 226set fieldlens [$cur getRowLengths 0] 227checkSuccess [lindex $fieldlens 0] 1 228checkSuccess [lindex $fieldlens 1] 3 229checkSuccess [lindex $fieldlens 2] 9 230checkSuccess [lindex $fieldlens 3] 12 231puts "" 232 233puts "INDIVIDUAL SUBSTITUTIONS: " 234$cur sendQuery "drop table testtable1" 235checkSuccess [$cur sendQuery "create table testtable1 (col1 int, col2 char, col3 float)"] 1 236$cur prepareQuery "insert into testtable1 values (\$(var1),'\$(var2)',\$(var3))" 237$cur substitution "var1" 1 238$cur substitution "var2" "hello" 239$cur substitution "var3" 10.5556 6 4 240checkSuccess [$cur executeQuery] 1 241puts "" 242 243puts "FIELDS: " 244checkSuccess [$cur sendQuery "select * from testtable1"] 1 245checkSuccess [$cur getFieldByIndex 0 0] "1" 246checkSuccess [$cur getFieldByIndex 0 1] "hello" 247checkSuccess [$cur getFieldByIndex 0 2] "10.5556" 248checkSuccess [$cur sendQuery "delete from testtable1"] 1 249puts "" 250 251puts "ARRAY SUBSTITUTIONS: " 252$cur prepareQuery "insert into testtable1 values (\$(var1),'\$(var2)',\$(var3))" 253$cur substitutions {{"var1" 1} {"var2" "hello"} {"var3" 10.5556 6 4}} 254checkSuccess [$cur executeQuery] 1 255puts "" 256 257puts "FIELDS: " 258checkSuccess [$cur sendQuery "select * from testtable1"] 1 259checkSuccess [$cur getFieldByIndex 0 0] "1" 260checkSuccess [$cur getFieldByIndex 0 1] "hello" 261checkSuccess [$cur getFieldByIndex 0 2] "10.5556" 262checkSuccess [$cur sendQuery "delete from testtable1"] 1 263puts "" 264 265puts "RESULT SET BUFFER SIZE: " 266checkSuccess [$cur getResultSetBufferSize] 0 267$cur setResultSetBufferSize 2 268checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 269checkSuccess [$cur getResultSetBufferSize] 2 270puts "" 271checkSuccess [$cur firstRowIndex] 0 272checkSuccess [$cur endOfResultSet] 0 273checkSuccess [$cur rowCount] 2 274checkSuccess [$cur getFieldByIndex 0 0] "1" 275checkSuccess [$cur getFieldByIndex 1 0] "2" 276checkSuccess [$cur getFieldByIndex 2 0] "3" 277puts "" 278checkSuccess [$cur firstRowIndex] 2 279checkSuccess [$cur endOfResultSet] 0 280checkSuccess [$cur rowCount] 4 281checkSuccess [$cur getFieldByIndex 6 0] "7" 282checkSuccess [$cur getFieldByIndex 7 0] "8" 283puts "" 284checkSuccess [$cur firstRowIndex] 6 285checkSuccess [$cur endOfResultSet] 0 286checkSuccess [$cur rowCount] 8 287checkUndef [$cur getFieldByIndex 8 0] 288puts "" 289checkSuccess [$cur firstRowIndex] 8 290checkSuccess [$cur endOfResultSet] 1 291checkSuccess [$cur rowCount] 8 292puts "" 293 294puts "DONT GET COLUMN INFO: " 295$cur dontGetColumnInfo 296checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 297checkUndef [$cur getColumnName 0] 298checkSuccess [$cur getColumnLengthByIndex 0] 0 299checkUndef [$cur getColumnTypeByIndex 0] 300$cur getColumnInfo 301checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 302checkSuccess [$cur getColumnName 0] "testint" 303checkSuccess [$cur getColumnLengthByIndex 0] 0 304checkSuccess [$cur getColumnTypeByIndex 0] "INTEGER" 305puts "" 306 307puts "SUSPENDED SESSION: " 308checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 309$cur suspendResultSet 310checkSuccess [$con suspendSession] 1 311set port [$con getConnectionPort] 312set socket [$con getConnectionSocket] 313checkSuccess [$con resumeSession $port $socket] 1 314puts "" 315checkSuccess [$cur getFieldByIndex 0 0] "1" 316checkSuccess [$cur getFieldByIndex 1 0] "2" 317checkSuccess [$cur getFieldByIndex 2 0] "3" 318checkSuccess [$cur getFieldByIndex 3 0] "4" 319checkSuccess [$cur getFieldByIndex 4 0] "5" 320checkSuccess [$cur getFieldByIndex 5 0] "6" 321checkSuccess [$cur getFieldByIndex 6 0] "7" 322checkSuccess [$cur getFieldByIndex 7 0] "8" 323puts "" 324checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 325$cur suspendResultSet 326checkSuccess [$con suspendSession] 1 327set port [$con getConnectionPort] 328set socket [$con getConnectionSocket] 329checkSuccess [$con resumeSession $port $socket] 1 330puts "" 331checkSuccess [$cur getFieldByIndex 0 0] "1" 332checkSuccess [$cur getFieldByIndex 1 0] "2" 333checkSuccess [$cur getFieldByIndex 2 0] "3" 334checkSuccess [$cur getFieldByIndex 3 0] "4" 335checkSuccess [$cur getFieldByIndex 4 0] "5" 336checkSuccess [$cur getFieldByIndex 5 0] "6" 337checkSuccess [$cur getFieldByIndex 6 0] "7" 338checkSuccess [$cur getFieldByIndex 7 0] "8" 339puts "" 340checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 341$cur suspendResultSet 342checkSuccess [$con suspendSession] 1 343set port [$con getConnectionPort] 344set socket [$con getConnectionSocket] 345checkSuccess [$con resumeSession $port $socket] 1 346puts "" 347checkSuccess [$cur getFieldByIndex 0 0] "1" 348checkSuccess [$cur getFieldByIndex 1 0] "2" 349checkSuccess [$cur getFieldByIndex 2 0] "3" 350checkSuccess [$cur getFieldByIndex 3 0] "4" 351checkSuccess [$cur getFieldByIndex 4 0] "5" 352checkSuccess [$cur getFieldByIndex 5 0] "6" 353checkSuccess [$cur getFieldByIndex 6 0] "7" 354checkSuccess [$cur getFieldByIndex 7 0] "8" 355puts "" 356 357puts "SUSPENDED RESULT SET: " 358$cur setResultSetBufferSize 2 359checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 360checkSuccess [$cur getFieldByIndex 2 0] "3" 361set id [$cur getResultSetId] 362$cur suspendResultSet 363checkSuccess [$con suspendSession] 1 364set port [$con getConnectionPort] 365set socket [$con getConnectionSocket] 366checkSuccess [$con resumeSession $port $socket] 1 367checkSuccess [$cur resumeResultSet $id] 1 368puts "" 369checkSuccess [$cur firstRowIndex] 4 370checkSuccess [$cur endOfResultSet] 0 371checkSuccess [$cur rowCount] 6 372checkSuccess [$cur getFieldByIndex 7 0] "8" 373puts "" 374checkSuccess [$cur firstRowIndex] 6 375checkSuccess [$cur endOfResultSet] 0 376checkSuccess [$cur rowCount] 8 377checkUndef [$cur getFieldByIndex 8 0] 378puts "" 379checkSuccess [$cur firstRowIndex] 8 380checkSuccess [$cur endOfResultSet] 1 381checkSuccess [$cur rowCount] 8 382$cur setResultSetBufferSize 0 383puts "" 384 385puts "CACHED RESULT SET: " 386$cur cacheToFile "cachefile1" 387$cur setCacheTtl 200 388checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 389set filename [$cur getCacheFileName] 390checkSuccess $filename "cachefile1" 391$cur cacheOff 392checkSuccess [$cur openCachedResultSet $filename] 1 393checkSuccess [$cur getFieldByIndex 7 0] "8" 394puts "" 395 396puts "COLUMN COUNT FOR CACHED RESULT SET: " 397checkSuccess [$cur colCount] 4 398puts "" 399 400puts "COLUMN NAMES FOR CACHED RESULT SET: " 401checkSuccess [$cur getColumnName 0] "testint" 402checkSuccess [$cur getColumnName 1] "testfloat" 403checkSuccess [$cur getColumnName 2] "testchar" 404checkSuccess [$cur getColumnName 3] "testvarchar" 405set cols [$cur getColumnNames] 406checkSuccess [lindex $cols 0] "testint" 407checkSuccess [lindex $cols 1] "testfloat" 408checkSuccess [lindex $cols 2] "testchar" 409checkSuccess [lindex $cols 3] "testvarchar" 410puts "" 411 412puts "CACHED RESULT SET WITH RESULT SET BUFFER SIZE: " 413$cur setResultSetBufferSize 2 414$cur cacheToFile "cachefile1" 415$cur setCacheTtl 200 416checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 417set filename [$cur getCacheFileName] 418checkSuccess $filename "cachefile1" 419$cur cacheOff 420checkSuccess [$cur openCachedResultSet $filename] 1 421checkSuccess [$cur getFieldByIndex 7 0] "8" 422checkUndef [$cur getFieldByIndex 8 0] 423$cur setResultSetBufferSize 0 424puts "" 425 426puts "FROM ONE CACHE FILE TO ANOTHER: " 427$cur cacheToFile "cachefile2" 428checkSuccess [$cur openCachedResultSet "cachefile1"] 1 429$cur cacheOff 430checkSuccess [$cur openCachedResultSet "cachefile2"] 1 431checkSuccess [$cur getFieldByIndex 7 0] "8" 432checkUndef [$cur getFieldByIndex 8 0] 433puts "" 434 435puts "FROM ONE CACHE FILE TO ANOTHER WITH RESULT SET BUFFER SIZE: " 436$cur setResultSetBufferSize 2 437$cur cacheToFile "cachefile2" 438checkSuccess [$cur openCachedResultSet "cachefile1"] 1 439$cur cacheOff 440checkSuccess [$cur openCachedResultSet "cachefile2"] 1 441checkSuccess [$cur getFieldByIndex 7 0] "8" 442checkUndef [$cur getFieldByIndex 8 0] 443$cur setResultSetBufferSize 0 444puts "" 445 446puts "CACHED RESULT SET WITH SUSPEND AND RESULT SET BUFFER SIZE: " 447$cur setResultSetBufferSize 2 448$cur cacheToFile "cachefile1" 449$cur setCacheTtl 200 450checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 451checkSuccess [$cur getFieldByIndex 2 0] "3" 452set filename [$cur getCacheFileName] 453checkSuccess $filename "cachefile1" 454set id [$cur getResultSetId] 455$cur suspendResultSet 456checkSuccess [$con suspendSession] 1 457set port [$con getConnectionPort] 458set socket [$con getConnectionSocket] 459puts "" 460checkSuccess [$con resumeSession $port $socket] 1 461checkSuccess [$cur resumeCachedResultSet $id $filename] 1 462puts "" 463checkSuccess [$cur firstRowIndex] 4 464checkSuccess [$cur endOfResultSet] 0 465checkSuccess [$cur rowCount] 6 466checkSuccess [$cur getFieldByIndex 7 0] "8" 467puts "" 468checkSuccess [$cur firstRowIndex] 6 469checkSuccess [$cur endOfResultSet] 0 470checkSuccess [$cur rowCount] 8 471checkUndef [$cur getFieldByIndex 8 0] 472puts "" 473checkSuccess [$cur firstRowIndex] 8 474checkSuccess [$cur endOfResultSet] 1 475checkSuccess [$cur rowCount] 8 476$cur cacheOff 477puts "" 478checkSuccess [$cur openCachedResultSet $filename] 1 479checkSuccess [$cur getFieldByIndex 7 0] "8" 480checkUndef [$cur getFieldByIndex 8 0] 481$cur setResultSetBufferSize 0 482puts "" 483 484puts "COMMIT AND ROLLBACK: " 485set secondcon [sqlrcon -server "sqlrelay" -port 9000 -socket "/tmp/test.socket" -user "test" -password "test" -retrytime 0 -tries 1] 486set secondcur [$secondcon sqlrcur] 487checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1 488checkSuccess [$secondcur getFieldByIndex 0 0] "0" 489checkSuccess [$con commit] 1 490checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1 491checkSuccess [$secondcur getFieldByIndex 0 0] "8" 492checkSuccess [$cur sendQuery "insert into testtable values (10,10.1,'testchar10','testvarchar10')"] 1 493checkSuccess [$secondcur sendQuery "select count(*) from testtable"] 1 494checkSuccess [$secondcur getFieldByIndex 0 0] "9" 495puts "" 496 497puts "FINISHED SUSPENDED SESSION: " 498checkSuccess [$cur sendQuery "select * from testtable order by testint"] 1 499checkSuccess [$cur getFieldByIndex 4 0] "5" 500checkSuccess [$cur getFieldByIndex 5 0] "6" 501checkSuccess [$cur getFieldByIndex 6 0] "7" 502checkSuccess [$cur getFieldByIndex 7 0] "8" 503set id [$cur getResultSetId] 504$cur suspendResultSet 505checkSuccess [$con suspendSession] 1 506set port [$con getConnectionPort] 507set socket [$con getConnectionSocket] 508checkSuccess [$con resumeSession $port $socket] 1 509checkSuccess [$cur resumeResultSet $id] 1 510checkUndef [$cur getFieldByIndex 4 0] 511checkUndef [$cur getFieldByIndex 5 0] 512checkUndef [$cur getFieldByIndex 6 0] 513checkUndef [$cur getFieldByIndex 7 0] 514puts "" 515 516# drop existing table 517$cur sendQuery "drop table testtable" 518 519# invalid queries... 520puts "INVALID QUERIES: " 521catch {checkSuccess [$cur sendQuery "select * from testtable"] 0} 522catch {checkSuccess [$cur sendQuery "select * from testtable"] 0} 523catch {checkSuccess [$cur sendQuery "select * from testtable"] 0} 524catch {checkSuccess [$cur sendQuery "select * from testtable"] 0} 525puts "" 526catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0} 527catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0} 528catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0} 529catch {checkSuccess [$cur sendQuery "insert into testtable values (1,2,3,4)"] 0} 530puts "" 531catch {checkSuccess [$cur sendQuery "create table testtable"] 0} 532catch {checkSuccess [$cur sendQuery "create table testtable"] 0} 533catch {checkSuccess [$cur sendQuery "create table testtable"] 0} 534catch {checkSuccess [$cur sendQuery "create table testtable"] 0} 535puts "" 536 537exit 0 538