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.
相关文章推荐
- delphi 四舍五入Round函数【百帖整理】
- Delphi 常用函数(数学函数)round、trunc、ceil和floor
- Delphi中使用Dos窗口输出调试信息
- 使用Delphi Xe8 开发微信功能 -- (四)微信支付商户平台之申请退款
- delphi学习笔记开头篇
- log delphi
- Delphi的基本函数
- delphi 基础之四 delphi 组织结构
- delphi 基础之三 编写和调用dll文件
- delphi 基础之三 文件流操作
- delphi 基础之二 面向对象概念初步
- delphi 基础之一 数据类型和基本语法
- delphi 截图简单的实现
- delphi2010 调用webservice
- delphi xe firemonkey 调用VLC播放器播放视频
- 用SPCOMM 在 Delphi中实现串口通讯
- virtualtree 的使用(Delphi)
- delphi中VirtualStringTree树使用方法之终结篇!
- Delphi Virtual String Tree 基本用法
- 转 Delphi Invalidate的用法