记录生活的点滴

转载:delphi操作sqlite

摘自:http://www.xuedelphi.cn/wenzhang/yytg/2008/10/200810212579.htm

DELPHI 7 没有办法使用lib文件,这就有点麻烦,但是咱们也没有必要一个一个Query,那样太痛苦了。我当时就好痛苦。咱们可以借助第三方的包装类,有一些是收费的,但是也有一些免费的,具体的信息大家请查看下面的地址 http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers

我这里使用的是sqlite simple delphi 这是一个完全免费的包装类,大家可以到它的官方网站下载,http://www.itwriting.com/sqlitesimple.php

下来以后是一个压缩包里面是一个demo。咱们需要里面的两个文件。SQLite3.pas 跟 SQLiteTable3.pas ,把他们复制到工程目录下面,然后在需要操作库的单元文件里面 uses SQLiteTable3 ,然后大家请查看官方的事例代码


procedure TForm1.btnTestClick(Sender: TObject);

var

slDBpath: string;
sldb: TSQLiteDatabase;
sltb: TSQLIteTable;
sSQL: String;
Notes: String;
begin
slDBPath := ExtractFilepath(application.exename)+'test.db';
sldb := TSQLiteDatabase.Create(slDBPath);
try
if sldb.TableExists('testTable') then
begin
sSQL := 'DROP TABLE testtable';
sldb.execsql(sSQL);
end;
sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,';
sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);';
sldb.execsql(sSQL);
sldb.execsql('CREATE INDEX TestTableName ON [testtable]([Name]);');

//begin a transaction

sldb.BeginTransaction;

sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Some Name",4,587.6594,"Here are some notes");';

//do the insert

sldb.ExecSQL(sSQL);

sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,4758.3265,"More notes");';

//do the insert

sldb.ExecSQL(sSQL);


//end the transaction

sldb.Commit;


//query the data

sltb := slDb.GetTable('SELECT * FROM testtable');

try


if sltb.Count > 0 then

begin

//display first row


ebName.Text := sltb.FieldAsString(sltb.FieldIndex['Name']);

ebID.Text := inttostr(sltb.FieldAsInteger(sltb.FieldIndex['ID']));

ebNumber.Text := floattostr( sltb.FieldAsDouble(sltb.FieldIndex['Number']));

Notes := sltb.FieldAsBlobText(sltb.FieldIndex['Notes']);

memNotes.Text := notes;


end;


finally

sltb.Free;

end;


finally

sldb.Free;


end;


end;


这样操作起来是不是很简单,^_^


评论

© SUIKHAN'S HOME | Powered by LOFTER