您的位置:首页 > 编程语言 > Delphi

delphi DISQLite3使用例子

2015-07-01 10:11 453 查看
unit main;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, StdCtrls, DB, DISQLite3DataSet, DISQLite3Database,
DISQLite3Cache, DISQLite3Api;

type
TForm5 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
ListView_keydogs: TListView;
Memo_log: TMemo;
StatusBar1: TStatusBar;
Button1: TButton;
Button2: TButton;
PopupMenu_keydog: TPopupMenu;
N3: TMenuItem;
N4: TMenuItem;
sqlite3Database1: TDISQLite3Database;
sqlite3UniDirQuery1: TDISQLite3UniDirQuery;
procedure N2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

PTKeyDog = ^TKeyDog;

TKeyDog = record
id: Integer;
projectname: string;
city: string;
letter: string;
hash: string;
code: string;
end;

var
Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button2Click(Sender: TObject);
var
dbname: string;
stmt: TDISQLite3Statement;
pkeydog: PTKeyDog;
list: TList;
count: Integer;
i: Integer;
arrs: TArray<TKeyDog>;

begin
// http://www.yunqa.de/delphi/doku.php/wiki/sqlite3/sqlite3_get_table // demo  http://www.yunqa.de/delphi/doku.php/wiki/sqlite3/disqlite3_blobs_and_streams // http://www.yunqa.de/delphi/doku.php/wiki/sqlite3/index?do=index dbname := 'keydog.db';

sqlite3Database1.DatabaseName := dbname;
// sqlite3Database1.Password := 'jp123456';

if FileExists(dbname) then
begin
DeleteFile(dbname);
end;

if FileExists(dbname) = False then
begin
sqlite3Database1.CreateDatabase;
end;
sqlite3Database1.Connected := True;
sqlite3Database1.Open;
sqlite3Database1.Execute(
'CREATE TABLE IF NOT EXISTS keydog(id INTEGER PRIMARY KEY AUTOINCREMENT,projectname TEXT, city TEXT,letter TEXT,hash TEXT,code TEXT); ');

sqlite3Database1.Execute(
'INSERT INTO keydog(projectname, city,letter,hash,code) VALUES (''xx'', ''北京'', ''beijing'', ''xxxxxx'',''code''); ');

sqlite3Database1.Execute(
'INSERT INTO keydog(projectname, city,letter,hash,code) VALUES (''xx'', ''上海'', ''shanghai'', ''xxxxxx'',''code''); ');

stmt := sqlite3Database1.Prepare(
'INSERT INTO keydog(projectname, city,letter,hash,code) VALUES (?, ?, ?, ?, ? ); ');
try
stmt.Bind_Str(1, 'xxx');
stmt.Bind_Str(2, '广州');
stmt.Bind_Str(3, 'guangzhou');
stmt.Bind_Str(4, 'fuck');
stmt.Bind_Str(5, 'code');
stmt.Step;
finally
stmt.Free;
end;

stmt := sqlite3Database1.Prepare('select * from keydog;');
count := 0;
list := TList.Create;

try
while stmt.Step = SQLITE_ROW do
begin
New(pkeydog);
pkeydog.id := stmt.Column_Int64(0);
pkeydog.projectname := string(stmt.Column_Str(1));
pkeydog.city := string(stmt.Column_Str(2));
pkeydog.letter := string(stmt.Column_Str(3));
pkeydog.hash := string(stmt.Column_Str(4));
pkeydog.code := string(stmt.Column_Str(5));
list.Add(pkeydog);

Inc(count);
// ShowMessage(keydog.code);
end;
finally
stmt.Free;
end;
ShowMessage(IntToStr(count));

for i := 0 to list.count - 1 do
begin

pkeydog := list.Items[i];
ShowMessage(pkeydog.projectname+pkeydog.city+pkeydog.letter+pkeydog.hash+pkeydog.code);
Dispose(pkeydog);
end;
list.Free;

// sqlite3Database1.Open;
// sqlite3Database1.Execute('');
sqlite3Database1.Close;

end;

procedure TForm5.N2Click(Sender: TObject);
begin
Application.Terminate;
end;

end.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: