之前測試過,使用Mysql元件來讀資料,但是失敗,失敗的原因是什麼目前還不知道。所以用了另一套元件(控件)來存取MySQL的資料。
通常來說,要讀取某一筆特定的資料,select的語法如下
select * from tabls where filed1=’abc’ AND field2 =’DEF’;
在php和一般SQL的指令是這麼下的沒有錯
但是,在Delphi的UniDAC卻不是如此
要使用UniQuery的Fileter屬性來撈我們要的資料
Step1 取得輸入的資料
useri:=edit1.Text;
passi:=edit2.Text;
Step2 開啟UniQuery的Filter功能
UniQuery1.Filtered:=true;
Step3 組合我們要的FilterSQL語法
filtertext1:=’USER=”’+useri+”’AND Pass=”’+passi+””;
Step4 把語法指定給 Uniquery1.FilterSQL
Uniquery1.FilterSQL:=filtertext1;
Step5 開啟UniQuery
UniQuery1.open;
這個時候,就可以查到我們要的資料了
說真的,網路上在討論 UniQuery的人不多,因為我想說UniDAC和MyDAC都是devart公司出來,UniQuery提供了多種database的查詢,而MyDAC只是其中的一種,所以MyDAC能用的方法,UniDAC也一樣,所以參考了MyQuery的語法進行測試,最後才測試成功。語法怪的地方在於引號的部份,為什麼要用2次的引號,我就不知道了,不過使用UniDAC來查Mysql,真的花了我很多的時間測試,等一下來測試看看新增修改和刪除的功能。
隨機文章
- Forticlient 先前被爆出50萬組VPN密碼外洩 台灣是受第二嚴重的地區 我們用2招化解 (2021-09-18)
- Visual Studio Code 使用 python 支援 mysql (2023-10-18)
- Adguar Home @docker Port 53 佔用解法 (2020-11-02)
- 低價電腦 OLPC EEE PC 只是競爭的開始~微軟 INTEL 什麼都要插一腳 (2007-11-01)
- 阿童木 原子小金剛 觀後感 (2009-12-25)
其實不需要動到 filter,
sql 語法只要用:
cQry := ‘SELECT * FROM xxx WHERE ABC=:ABC AND CCC=:CCC’;
myQuery1.SQL.Text := cQry;
myQuery1.ParamByName(‘ABC’).AsString := ‘test’;
myQuery1.ParamByName(‘CCC’).AsString := ‘QQQ’;
myQuery1.Open;
這樣子也可以喔!
了解!謝謝指教哦!
我再找時間試看看!
感恩!