Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fpc-src / usr / share / fpcsrc / 3.2.0 / packages / fcl-db / src / sqlite / browseds.pas
Size: Mime:
program browseds;

{$Mode ObjFpc}
{$H+}
{$define DEBUGHEAP}

uses 
{$ifdef DEBUGHEAP}
  Heaptrc,
{$endif}
{$ifdef Linux}
  cmem,
{$endif}
  crt,
  sqlite3ds,
  sysutils, db, inifiles;

const
  SQLITEDS_TESTS_INI_FILE = 'sqlitedstests.ini';
  DEFAULT_TABLENAME = 'tabletest';
  DEFAULT_FILENAME = 'test.db';

var 
  dsTest: TSqlite3Dataset;
  ini: TIniFile;
  i:Integer;

procedure DumpFieldData (F : TField);
begin
  with F do
  begin
    Write (FieldName:10,FieldTypeNames[DataType]:12);
    if DataType <> ftMemo then
      Write(AsString:30)
    else
      Write('(memo)':30);
    case Datatype of
      ftSmallint, ftInteger, ftWord, ftAutoInc : Writeln (AsLongint:28);
      ftBoolean : Writeln (AsBoolean:28);
      ftFloat : Writeln (AsFloat:28);
      ftDate, ftTime, ftDateTime : Writeln (AsDateTime:28);
      ftLargeInt: WriteLn(AsLargeInt:28);
      ftMemo: WriteLn('(memo)':28);
      ftString: WriteLn(AsString:28);
      ftCurrency: WriteLn(AsCurrency:28);
    else
      WriteLn;
    end;
  end;
end;

begin
  {$ifdef DEBUGHEAP}
  SetHeapTraceOutput(ExtractFileName(ParamStr(0))+'.heap.log');
  {$endif}
  dsTest:=TSqlite3Dataset.Create(nil);
  with dsTest do
  begin
    //Load Database properties from a inifile
    ini:=TIniFile.Create(SQLITEDS_TESTS_INI_FILE);
    FileName:=ini.ReadString('testinfo','filename',DEFAULT_FILENAME);
    TableName:=ini.ReadString('testinfo','tablename',DEFAULT_TABLENAME);
    ini.Destroy;
    //Calling Open with an empty SQL, is the same of setting SQL to 'SELECT * from [TableName]';
    Open;
    //Browse all records
    while not Eof do
    begin
      ClrScr;
      Writeln('Record ',RecNo,'/',RecordCount);
      Writeln('--------------------------------------------------------------------------------');
      Writeln ('Field Name':10,'Data Type':12,'As String':30, 'As Native Type':28);
      Writeln('--------------------------------------------------------------------------------');
      for i:=0 to FieldCount - 1 do
        DumpFieldData(Fields[I]);
      Next;
      WriteLn;
      if not Eof then
        WriteLn(':::: Press a key to see the next record ::::')
      else
        WriteLn(':::: Press a key to finish the program ::::');
      Readkey;
    end;
    Destroy;
  end;
end.