對SQLite資料庫的操作,想添加資料已經打開一個.db檔案后讀取資料這么兩個操作,撰寫完成沒有報錯,但是運行后點完按鈕就有錯誤視窗提示

這是點擊插入資料以后出現的視窗

這是點擊讀取以后顯示的視窗
我對資料加密和解密的操作都是可以的,為什么插入和讀取就不行呢?
procedure TForm1.InsertBtnClick(Sender: TObject);
var
SqliteDB: TSQLiteDatabase;
SqliteTB: TSQLiteTable;
sSQL: String;
name:string;
homepage:string;
i: integer;
begin
name := trim(nameEdt.Text);
homepage := trim(HPageEdt.Text);
SqliteDB.ExecSQL('insert into user values(1,Trim(nameEdt.Text),Trim(HPageEdt.Text))');
memo.Lines.Add('成功添加資料!'#13#10);
end;
procedure TForm1.open_dbClick(Sender: TObject);
var
SqliteDB:TSQLiteDatabase;
SqliteTB:TSQLiteTable;
name:string;
homepage:string;
totalCount: integer;
begin
OpenDialog1.Execute;
SqliteTB:=SqliteDB.GetTable('Select * from user');
SQLite3_Open('Select * from user',SqliteDB);
totalCount := 0;
if not SqliteTB.EOF then
begin
totalCount := SqliteTB.Count;
end;
memo.Text:=('共: ' + inttostr(totalCount) + ' 條資料');
if not SqliteTB.EOF then
begin
SqliteTB:=SqliteDB.GetTable('Select * from user');
name:=SqliteTB.FieldAsString(SqliteTB.FieldIndex['name']);
homepage:=SqliteTB.FieldAsString(SqliteTB.FieldIndex['homepage']);
memo.Lines.Add('Name:'+name+#13+' HomePage:'+homepage);
end;
SqliteTB.free;
SqliteDB.free;
SQLite3_Close(SqliteDB);
end;
這是兩個部分的源代碼,是哪里出錯了嗎?
uj5u.com熱心網友回復:
悲劇了。為什么要使用SQLite資料庫?難道是為了和手機資料同步?uj5u.com熱心網友回復:
因為SQLite資料庫簡單啊
uj5u.com熱心網友回復:
procedure TfrmAbout.btnVersionClick(Sender: TObject);
var
SqliteDB:TSQLiteDatabase;
begin
SqliteDB:=TSQLiteDatabase.Create('');
showmessage('Sqlite dll version:'+SqliteDb.version);
SqliteDB.Free;
end;
uj5u.com熱心網友回復:

好像是定義了TSQLiteDatabase并沒有創建的原因吧。
uj5u.com熱心網友回復:
var
sql:string;
db:TSQLiteDatabase;
try
if FileExists('test.db') then DeleteFile('test.db');
//連接資料庫,如果資料庫檔案不存在會自動創建
db:=TSQLiteDatabase.Create('test.db','dbpassword');//使用密碼創建資料庫
//db:=TSQLiteDatabase.Create('test.db',Nil);//無密碼創建資料庫
//創建USER表
sql:='CREATE TABLE USER(ID integer PRIMARY KEY AUTOINCREMENT NOT NULL,NAME VARCHAR(50),HOMEPAGE VARCHAR(255))';
db.ExecSQL(sql);
//插入一條測驗資料
sql:='INSERT INTO USER VALUES(NULL,"ekinglong","http://www.blogjava.net/ekinglong")';
db.ExecSQL(sql);
finally
db.Free;
end;
var
sql:string;
db:TSQLiteDatabase;
tbl:TSQLiteTable;
name:string;
homepage:string;
begin
try
db:=TSQLiteDatabase.Create('test.db','dbpassword');
sql:='SELECT * FROM USER LIMIT 1';
tbl:=db.GetTable(sql);
if tbl.RowCount>0 then
begin
name:=tbl.FieldAsString(tbl.FieldIndex['NAME']);
homepage:=tbl.FieldAsString(tbl.FieldIndex['HOMEPAGE']);
ShowMessage('Name:'+name+#13+'HomePage:'+homepage);
end;
finally
tbl.Free;
db.Free;
end;
uj5u.com熱心網友回復:
你發的這個我看過,那個“TSQLiteDatabase.Create”總是報錯,說里面引數過多
uj5u.com熱心網友回復:
有沒有單步除錯看一下是哪里的錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/90333.html
