testapiv3x.pp 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. program testapiv3x;
  2. {$APPTYPE CONSOLE}
  3. {$MODE DELPHI}
  4. uses sqlite3, sysutils;
  5. const
  6. DBFILE='dbtest.db';
  7. var
  8. rc : Integer;
  9. db : PPsqlite3;
  10. sql : string;
  11. pzErrMsg : PChar;
  12. function MyCallback(_para1:pointer; plArgc:longint; argv:PPchar; argcol:PPchar):longint; cdecl;
  13. var i: Integer;
  14. PVal, PName: ^PChar;
  15. begin
  16. PVal:=argv;
  17. PName:=argcol;
  18. for i:=0 to plArgc-1 do begin
  19. writeln(Format('%s = ''%s'''#13, [PName^, PVal^]));
  20. inc(PVal);
  21. inc(PName);
  22. end;
  23. writeln(#13);
  24. Result:=0;
  25. end;
  26. begin
  27. writeln(Format('SQLite version : %d',[sqlite3_libversion_number]));
  28. rc := sqlite3_open(PChar(DBFILE), @db);
  29. try
  30. if rc<>SQLITE_OK then begin
  31. writeln(Format('Can''t open database: %s',[DBFILE]));
  32. end;
  33. sql:= 'DROP TABLE Test;';
  34. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  35. if( rc<>SQLITE_OK )
  36. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  37. sql:='CREATE TABLE Test(No integer, name varchar(32),shortname varchar(32), age integer);';
  38. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  39. if( rc<>SQLITE_OK )
  40. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  41. sql:='INSERT INTO Test VALUES(1,''hi'', ''by'', -1);';
  42. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  43. Writeln('Inserting row');
  44. if( rc<>SQLITE_OK )
  45. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  46. SQL := 'INSERT INTO Test VALUES(2,''dualcore'', ''runwell'',-1);';
  47. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  48. Writeln('Inserting row') ;
  49. if( rc<>SQLITE_OK )
  50. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  51. SQL := 'INSERT INTO Test VALUES(3,''Hello'', ''World'',NULL);';
  52. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  53. Writeln('Inserting row') ;
  54. if( rc<>SQLITE_OK )
  55. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  56. SQL := 'INSERT INTO Test VALUES(4,''just a little'', ''test'',-1);';
  57. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  58. Writeln('Inserting row') ;
  59. if( rc<>SQLITE_OK )
  60. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  61. SQL := 'select * from Test;';
  62. rc:=sqlite3_exec(db, PChar(sql), @MyCallback, nil, @pzErrMsg);
  63. if( rc<>SQLITE_OK )
  64. then writeln(Format('SQL error: %s', [pzErrMsg^]));
  65. finally sqlite3_close(db); end;
  66. sleep(5000);
  67. end.