sl@0: sl@0: // Called by BasicSQL2.script. This config file contains information sl@0: // for basic API tests. We're going to exercise to some basic level all sl@0: // client side APIs the SQLite system. In some cases we'll make deliberate sl@0: // errors and look for the expected error codes and messages. sl@0: sl@0: sl@0: // First some basic RSqlDatabase tests. sl@0: [Top] sl@0: Close0= sl@0: Delete1=C:\BrieflyExists.db sl@0: ExpectedError1=KErrNotFound sl@0: Open2=C:\BrieflyExists.db sl@0: ExpectedError2=KErrNotFound sl@0: NoOperation3= sl@0: NoOperation4=C:\BrieflyExists.db sl@0: NoOperation4=KErrNotFound sl@0: Create5=C:\BrieflyExists.db sl@0: Close6= sl@0: Create7=C:\BrieflyExists.db sl@0: ExpectedError7=KErrAlreadyExists sl@0: Open8=C:\BrieflyExists.db sl@0: Exec9=what a load of gibberish sl@0: ExpectedError9=KSqlErrGeneral sl@0: LastErrorMessage10=near "what": syntax error sl@0: Exec11=Create Table Table1(Field1 int primary key, Field2 text, Field3 Real); sl@0: SetIsolationLevel12=EReadUncommitted sl@0: Close13= sl@0: Delete14=C:\BrieflyExists.db sl@0: Delete15=C:\SqlStatement.db sl@0: ExpectedError15=KErrNotFound sl@0: Create16=C:\SqlStatement.db sl@0: Exec17=Create Table Table1(Field1 int primary key, Field2 text, Field3 Real); sl@0: NewBlock18=rsqlstatement sl@0: Close19= sl@0: EndBlock20= sl@0: // Leave the db lying around, we'll do some more in another script line. sl@0: sl@0: // Play with BindInt, BindReal, BindNull and BindText. sl@0: // Check the result with AtRow, ColumnInt, ColumnReal, ColumnTextL (result sl@0: // specified inline, not in a file), also checks IsNull to check the previous sl@0: // BindNull. sl@0: [rsqlstatement] sl@0: Prepare0=Insert into Table1(Field1, Field2, Field3) values(:huey, :dewey, :louie); sl@0: ParameterIndex1=:huey sl@0: ParameterIndex2=:dewey sl@0: ParameterIndex3=:louie sl@0: BindInt4=0,711 sl@0: BindText5=1,Here's some text. sl@0: BindReal6=2,2.7182818282 sl@0: St_Exec7= sl@0: Reset8= sl@0: BindInt9=0,1234 sl@0: BindText10=1,Some more text.... sl@0: BindReal11=2,3.141592654 sl@0: St_Exec12= sl@0: Reset13= sl@0: BindInt14=0,1235 sl@0: BindText15=1,Yet more text.... sl@0: BindReal16=2,9.869604401 sl@0: St_Exec17= sl@0: Reset18= sl@0: BindInt19=0,1236 sl@0: BindNull20=1 sl@0: BindReal21=2,6.0827626 sl@0: St_Exec22= sl@0: St_Close23= sl@0: Prepare24=select * from table1; sl@0: AtRow25=FAlse sl@0: ColumnIndex26=Field1 sl@0: ColumnIndex27=Field2 sl@0: ColumnIndex28=Field3 sl@0: Next29= sl@0: AtRow30=TruE sl@0: ColumnInt31=0,711 sl@0: ColumnType32=1,ESqlText sl@0: ColumnTextL33=1,Here's some text. sl@0: ColumnReal34=2,2.7182818282 sl@0: Next35= sl@0: ColumnInt36=0,1234 sl@0: ColumnSize37=1,18 sl@0: ColumnTextL38=1,Some more text.... sl@0: ColumnReal39=2,3.141592654 sl@0: ColumnSize40=2,8 sl@0: Next41= sl@0: ColumnInt42=0,1235 sl@0: ColumnTextL43=1,Yet more text.... sl@0: ColumnReal44=2,9.869604401 sl@0: Next45= sl@0: ColumnInt46=0,1236 sl@0: IsNull47=1,tRue sl@0: ColumnReal48=2,6.0827626 sl@0: Delete49=C:\SqlStatement.db sl@0: ExpectedError49=KErrInUse sl@0: Next50= sl@0: AtRow51=FalSe sl@0: St_Close52= sl@0: EndBlock53= sl@0: sl@0: // This is a separate case, trigger by the second line in the script file. sl@0: // It adds to the existing table in SqlStatement.db, checks 'ColumnInt64', sl@0: // and BindInt64, plus verifies the return from 'Next'. On completion this sl@0: // section deletes the database. sl@0: [AddtoTable] sl@0: Open0=C:\SqlStatement.db sl@0: Exec1=alter table Table1 add Field4 int; sl@0: Prepare2=Update Table1 Set Field4=108 where Field3 < 5.8; sl@0: St_Exec3= sl@0: Reset4= sl@0: St_Close5= sl@0: Prepare6=Insert into Table1(Field1, Field2, Field3, Field4) values(:huey, :dewey, :louie, :donald); sl@0: ParameterIndex7=:huey sl@0: ParameterIndex8=:dewey sl@0: ParameterIndex9=:louie sl@0: ParameterIndex10=:donald sl@0: ParameterIndex11=:somerubbish sl@0: ExpectedError11=KErrNotFound sl@0: // The next line may not be appropriate - I think LastErrorMessage is only sl@0: // relevant following a 'KSqlErrGeneral' (which we don't have). sl@0: LastErrorMessage12=not an error sl@0: BindInt13=0,17141 sl@0: BindText14=1,AddtoTable stuff sl@0: BindReal15=2,299792458 sl@0: BindInt64_16=3,123456789012345 sl@0: St_Exec17= sl@0: Reset18= sl@0: St_Close19= sl@0: Prepare20=select * from table1 where Field1=17141; sl@0: ColumnIndex21=Field4 sl@0: AtRow22=FaLse sl@0: Next23= sl@0: AtRow24=trUe sl@0: ColumnType25=0,ESqlInt64 sl@0: ColumnInt64_26=0,123456789012345 sl@0: Next27=KSqlAtEnd sl@0: St_Close28= sl@0: Close29= sl@0: Delete30=C:\SqlStatement.db sl@0: EndBlock31= sl@0: sl@0: // Tests writing to a text field with a stream (RSqlParamWriteStream). sl@0: // Checks the content with all variants of ColumnText. sl@0: [SWBindText] sl@0: Delete0=C:\texttest1 sl@0: ExpectedError0=KErrNotFound sl@0: Create1=C:\texttest1 sl@0: Exec2=create table table2(field1 text(32770), field2 integer); sl@0: Prepare3=insert into table2(field1, field2) values(:largetext, :int); sl@0: ParameterIndex4=:largetext sl@0: ParameterIndex5=:int sl@0: StreamWriteBindText6=0,Z:\TEF_SQL\TestData\reference1.txt sl@0: BindInt7=1,1234321 sl@0: St_Exec8= sl@0: Reset9= sl@0: St_Close10= sl@0: sl@0: Prepare11=SELECT * from table2; sl@0: ColumnIndex12=field1 sl@0: ColumnIndex13=field2 sl@0: Next14=KSqlAtRow sl@0: ColumnSize15=0,3626 sl@0: ColumnSize16=1,4 sl@0: ColumnTextP17=0,Z:\TEF_SQL\TestData\reference1.txt sl@0: ColumnInt18=1,1234321 sl@0: Next19=KSqlAtEnd sl@0: St_Close20=ignored sl@0: sl@0: Prepare21=SELECT * from table2; sl@0: ColumnIndex22=field1 sl@0: ColumnIndex23=field2 sl@0: Next24=KSqlAtRow sl@0: ColumnSize25=0,3626 sl@0: ColumnSize26=1,4 sl@0: ColumnTextL27=0,Z:\TEF_SQL\TestData\reference1.txt sl@0: ColumnInt28=1,1234321 sl@0: Next29=KSqlAtEnd sl@0: St_Close30=ignored sl@0: sl@0: Prepare31=SELECT * from table2; sl@0: ColumnIndex32=field1 sl@0: ColumnIndex33=field2 sl@0: Next34=KSqlAtRow sl@0: ColumnSize35=0,3626 sl@0: ColumnSize36=1,4 sl@0: ColumnTextD37=0,Z:\TEF_SQL\TestData\reference1.txt sl@0: ColumnInt38=1,1234321 sl@0: Next39=KSqlAtEnd sl@0: St_Close40=ignored sl@0: sl@0: Prepare41=SELECT * from table2; sl@0: ColumnIndex42=field1 sl@0: ColumnIndex43=field2 sl@0: Next44=KSqlAtRow sl@0: ColumnSize45=0,3626 sl@0: ColumnSize46=1,4 sl@0: StreamReadColText47=0,Z:\TEF_SQL\TestData\reference1.txt sl@0: ColumnInt48=1,1234321 sl@0: Next49=KSqlAtEnd sl@0: St_Close50=ignored sl@0: sl@0: Close51=also ignored sl@0: Delete52=C:\texttest1 sl@0: EndBlock53= sl@0: sl@0: [SWBindBinary] sl@0: Delete0=C:\binarytest1 sl@0: ExpectedError0=KErrNotFound sl@0: Create1=C:\binarytest1 sl@0: Exec2=create table table2(field1 blob(32770)); sl@0: Prepare3=insert into table2(field1) values(:largebin); sl@0: ParameterIndex4=:largebin sl@0: StreamWriteBindBin5=0,Z:\TEF_SQL\TestData\reference1.bin sl@0: St_Exec6= sl@0: Reset7= sl@0: St_Close8= sl@0: sl@0: Prepare9=SELECT field1 from table2; sl@0: ColumnIndex10=field1 sl@0: Next11=KSqlAtRow sl@0: ColumnSize12=0,8094 sl@0: ColumnBinaryL13=0,Z:\TEF_SQL\TestData\reference1.bin sl@0: Next14=KSqlAtEnd sl@0: St_Close15=ignored sl@0: sl@0: Prepare16=SELECT field1 from table2; sl@0: ColumnIndex17=field1 sl@0: Next18=KSqlAtRow sl@0: ColumnSize19=0,8094 sl@0: ColumnBinaryP20=0,Z:\TEF_SQL\TestData\reference1.bin sl@0: Next21=KSqlAtEnd sl@0: St_Close22=ignored sl@0: sl@0: Prepare23=SELECT field1 from table2; sl@0: ColumnIndex24=field1 sl@0: Next25=KSqlAtRow sl@0: ColumnSize26=0,8094 sl@0: ColumnBinaryD27=0,Z:\TEF_SQL\TestData\reference1.bin sl@0: Next28=KSqlAtEnd sl@0: St_Close29=ignored sl@0: sl@0: Prepare30=SELECT field1 from table2; sl@0: ColumnIndex31=field1 sl@0: Next32=KSqlAtRow sl@0: ColumnSize33=0,8094 sl@0: StreamReadColBin34=0,Z:\TEF_SQL\TestData\reference1.bin sl@0: Next35=KSqlAtEnd sl@0: St_Close36=ignored sl@0: sl@0: Close37=also ignored sl@0: Delete38=C:\binarytest1 sl@0: EndBlock39= sl@0: sl@0: // Use anonymous (if that's the right word) column indices to check, for sl@0: // example the number of records in a database. sl@0: // Use a Copy.. sl@0: [Countlines] sl@0: Copy0=Z:\TEF_SQL\TestData\test1.db,Z:\test1.db sl@0: ExpectedError0=KErrAccessDenied sl@0: Delete1=C:\test1.db sl@0: ExpectedError1=KErrNotFound sl@0: Copy2=Z:\TEF_SQL\TestData\test1.db,C:\test1.db sl@0: Open3=C:\test1.db sl@0: Prepare4=select count(*) from phone; sl@0: Next5=KSqlAtRow sl@0: ColumnIndex6= sl@0: ColumnInt7=0,1000 sl@0: Next8=KSqlAtEnd sl@0: St_Close9= sl@0: Prepare10=select avg(cm_id) from phone; sl@0: Next11=KSqlAtRow sl@0: ColumnIndex12= sl@0: ColumnReal13=0,500.5 sl@0: Next14=KSqlAtEnd sl@0: St_Close15= sl@0: Prepare16=select sum(cm_id) from phone; sl@0: Next17=KSqlAtRow sl@0: AtRow18=True sl@0: ColumnIndex19= sl@0: ColumnInt20=0,500500 sl@0: Next21=KSqlAtEnd sl@0: St_Close22= sl@0: Close23= sl@0: // This delete is in itself a test - the 'Copy' above does not and should not sl@0: // propagate file permissions from the Z: drive. If it did, this delete would sl@0: // fail, but it should not. sl@0: Delete24=C:\test1.db sl@0: EndBlock25= sl@0: