program testapiv3x; {$APPTYPE CONSOLE} {$MODE DELPHI} uses sqlite3, sysutils; const DBFILE='dbtest.db'; var rc : Integer; db : PPsqlite3; sql : string; pzErrMsg : PChar; function MyCallback(_para1:pointer; plArgc:longint; argv:PPchar; argcol:PPchar):longint; cdecl; var i: Integer; PVal, PName: ^PChar; begin PVal:=argv; PName:=argcol; for i:=0 to plArgc-1 do begin writeln(Format('%s = ''%s'''#13, [PName^, PVal^])); inc(PVal); inc(PName); end; writeln(#13); Result:=0; end; begin writeln(Format('SQLite version : %d',[sqlite3_libversion_number])); rc := sqlite3_open(PChar(DBFILE), @db); try if rc<>SQLITE_OK then begin writeln(Format('Can''t open database: %s',[DBFILE])); end; sql:= 'DROP TABLE Test;'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); sql:='CREATE TABLE Test(No integer, name varchar(32),shortname varchar(32), age integer);'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); sql:='INSERT INTO Test VALUES(1,''hi'', ''by'', -1);'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); Writeln('Inserting row'); if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); SQL := 'INSERT INTO Test VALUES(2,''dualcore'', ''runwell'',-1);'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); Writeln('Inserting row') ; if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); SQL := 'INSERT INTO Test VALUES(3,''Hello'', ''World'',NULL);'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); Writeln('Inserting row') ; if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); SQL := 'INSERT INTO Test VALUES(4,''just a little'', ''test'',-1);'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); Writeln('Inserting row') ; if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); SQL := 'select * from Test;'; rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg); if( rc<>SQLITE_OK ) then writeln(Format('SQL error: %s', [pzErrMsg^])); finally sqlite3_close(db); end; sleep(5000); end.