線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:951
推到 Plurk!
推到 Facebook!

XE8 FireDAC+SQLite...no such table的問題

缺席
ESCAPE
一般會員


發表:37
回覆:47
積分:16
註冊:2005-02-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-11-25 19:01:43 IP:59.127.xxx.xxx 訂閱
各位好!
再次叼擾各位了,煩請各位不吝指教。
我使用FireDac SQLite佈署到機器上執行出現no such table的錯誤,
我是使用xe8附屬的範例資料庫Employee.s3db資料庫測試,
很確定裏面有兩個資料表。
而且也是按照原廠網站的範例去做的。
我也有參考這篇:
http://delphi.ktop.com.tw/board.php?cid=30&fid=1501&tid=106443
但問題還是一樣,不知道是我哪裡沒設定嗎?
我也使用FileExists函數確認有這個資料庫檔案在,但使用FDConnection1.GetTablesName顯示是一個空白資料庫。
煩請有經驗的先進不令指教,謝謝!
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-11-26 01:37:56 IP:118.169.xxx.xxx 未訂閱
建議你把這段資料庫處理的code發上來才好看
ESCAPE
一般會員


發表:37
回覆:47
積分:16
註冊:2005-02-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-11-26 11:05:44 IP:59.127.xxx.xxx 訂閱
很謝謝P.D.大的回覆,茲附上程式碼供參考。
程式碼很簡單,就只是設定資料庫路徑,然後用FDQuery open。
程式碼如下,在麻煩各位先進指正錯誤,謝謝!

[code delphi]
procedure TfrmMain.Button2Click(Sender: TObject);
Var
_TF:Boolean;
_List: TStrings;
_path:UnicodeString;
begin
_List:=TStringList.Create;
_path:=TPath.Combine(TPath.GetDocumentsPath PathDelim,'employee.s3db');
{$IF DEFINED(iOS) or DEFINED(ANDROID)}
FDConnection1.Params.Values['Database']:=_Path;
FDConnection1.Connected:=True;
FDConnection1.GetTableNames('','','',_List);
memo1.Lines.AddStrings(_List);
{$ENDIF}
//
If FileExists(_Path) Then
Begin
MessageDlg('db is exists',System.UITypes.TMsgDlgType.mtInformation,
[
System.UITypes.TMsgDlgBtn.mbOK
],0,
Procedure (Const AResult:TModalResult)
Begin
If AResult=mrOk Then
Begin
With FDQuery1 Do
Begin
Close;
SQL.Clear;
sql.add('select * from Employee');
Open; //open後出現:No such table: Employee的錯誤訊息
End; //end with
End;
End
)
End; //end if
//
If FileExists(_Path)=False Then
Begin
MessageDlg('db no exists',System.UITypes.TMsgDlgType.mtError,
[
System.UITypes.TMsgDlgBtn.mbOK
],0,Nil)
End; //end if
end;[/code]

===================引 用 P.D. 文 章===================
建議你把這段資料庫處理的code發上來才好看
ESCAPE
一般會員


發表:37
回覆:47
積分:16
註冊:2005-02-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-11-26 18:50:10 IP:59.127.xxx.xxx 訂閱
問題解決了!
原因是資料表名稱錯誤,沒有區分檔名大小寫。
推薦一部大陸的教學影片,說得還滿詳細的,重點是講中文。
內容是Android FireDAC SQLite IBLite的使用。
我也是看了這部影片後才發現錯誤。
以下為影片網址:
https://www.youtube.com/watch?v=GlZc6K-SOt4
系統時間:2017-12-15 12:33:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!