123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- program testds;
- {$Mode ObjFpc}
- {$define DEBUGHEAP}
- uses
- {$ifdef DEBUGHEAP}
- Heaptrc,
- {$endif}
- {$ifdef Linux}
- cmem,
- {$endif}
- crt,sysutils,db,SqliteDS;
- var
- dsTest:TSQliteDataset;
- I:Integer;
- Procedure DumpField(F : Tfield);
- begin
- With F do
- begin
- Writeln ('FieldName : ',FieldName);
- Writeln ('FieldNo : ',FieldNo);
- Writeln ('Index : ',Index);
- Writeln ('DataSize : ',DataSize);
- Writeln ('Size : ',Size);
- Writeln ('DataType : ',FieldTypeNames[DataType]);
- Writeln ('Class : ',ClassName);
- Writeln ('Required : ',required);
- Writeln ('ReadOnly : ',ReadOnly);
- Writeln ('Visible : ',Visible);
- end;
- writeln('-------- Press a key to continue ----------');
- readkey;
- end;
- begin
- {$ifdef DEBUGHEAP}
- SetHeapTraceOutput('heaplog.txt');
- {$endif}
- dsTest:=TsqliteDataset.Create(nil);
- with dsTest do
- Begin
- FileName:='New.db';
- TableName:='NewTable';
- SQL:='SELECT _ROWID_,* from NewTable';
- Open;
- //writeln('SqliteReturnString after Open: ',SqliteReturnString);
- //readkey;
- Writeln ('Fields count : ',FieldCount);
- WriteLn('============DumpFields ============');
- For I:=0 to FieldCount-1 do
- DumpField(Fields[i]);
- writeln('Push a key to test -Edit-');
- readkey;
- clrscr;
- WriteLn('Old Code:',FieldbyName('Code').AsInteger);
- WriteLn('Old Name:',FieldbyName('Name').AsString);
- FieldbyName('Code').AsInteger:=12345;
- FieldbyName('Name').AsString:='Record Edited in TestDs.pas';
- WriteLn('New Code:',FieldbyName('Code').AsInteger);
- WriteLn('New Name:',FieldbyName('Name').AsString);
- writeln('Push a key to test -Append-');
- readkey;
- clrscr;
- Append;
- FieldbyName('Code').AsInteger:=22222;
- FieldbyName('Name').AsString:='This will be deleted';
- Post;
- WriteLn('First Record Appended - Code:',FieldbyName('Code').AsInteger);
- WriteLn('First Record Appended - Name:',FieldbyName('Name').AsString);
- Append;
- FieldbyName('Code').AsInteger:=3333;
- FieldbyName('Name').AsString:='This will stay';
- Post;
- WriteLn('Second Record Appended - Code:',FieldbyName('Code').AsInteger);
- WriteLn('Second Record Appended - Name:',FieldbyName('Name').AsString);
- writeln('Push a key to test -Delete-');
- readkey;
- clrscr;
- Prior;
- WriteLn('Current record:');
- Writeln('RowId:',Fields[0].AsInteger);
- WriteLn('Code: ',FieldbyName('Code').AsInteger);
- WriteLn('Name: ',FieldbyName('Name').AsString);
- if FieldbyName('Code').AsInteger = 22222 then
- Writeln('This record should be deleted');
- Delete;
- WriteLn('After Delete:');
- Writeln('RowId:',Fields[0].AsInteger);
- WriteLn('Code: ',FieldbyName('Code').AsInteger);
- WriteLn('Name: ',FieldbyName('Name').AsString);
- WriteLn('Try to find record with code = 22222');
- First;
- While Not Eof do
- begin
- if FieldbyName('Code').AsInteger = 22222 then
- Writeln('Record Found: It Should Not Occur')
- else
- Writeln('Record NOT Found: It''s OK');
- Next;
- end;
- readkey;
- ApplyUpdates;
- writeln('SqliteReturnString after ApplyUpdates: ',SqliteReturnString);
- Close;
- Destroy;
- end;
- end.
|