大家好,我用Delphi xe10編程一個管理軟體,access資料庫的編程完畢后,把他轉換mssql 2008的時候,兩個日期的格式要轉換后才能查詢,這個做到了,但是以前編程的好多個關聯的都不能用是怎么回事,我用的資料庫控制元件是adoconnectin 和adoquery1,
adoquery1.sql.clear;
adoquery1.SQL.Add('SELECT lsxsd.id, lsxsd.kh,lsxsd.khmc, lsxsd.xsrq, ckxx.ckmc, , lsxsd.czy, lsxsd.jbr FROM lsxsd INNER JOIN ckxx ON lsxsd.ck = ckxx.id where lsxsd.khmc='''+combobox2.Text+''''+' and xsrq between '''+s1+''''+' and '''+s2+'''');
adoquery1.Open;
這個代碼就查不出來了,這個什么原因
我把關聯去掉后才能查出來了
adoquery1.sql.clear;
adoquery1.SQL.Add('SELECT id, kh,khmc, xsrq, ckmc, czy,jbr FROM lsxsd where lsxsd.khmc='''+combobox2.Text+''''+' and xsrq between '''+s1+''''+' and '''+s2+'''');
adoquery1.Open;
這樣我得整個程式重新改,有什么好辦法!
uj5u.com熱心網友回復:
與控制元件無關,access本身對join連接的支持不太好,不太復雜的也勉強能用。sql陳述句是必須改的,改成兩個都支持的寫法。
uj5u.com熱心網友回復:
那就必須改所有查詢陳述句是嗎?
添加洗掉修改外其他都不能用了
有沒有 好一點的改法!
uj5u.com熱心網友回復:
建個表,把所有的陳述句都存進去uj5u.com熱心網友回復:
你應該先以標準SQL 格式撰寫查詢陳述句,看能不能適應ACCESSACCESS跟電腦的驅動版本(JET版本)可能發生關系,特別是涉日期型資料
現在一般都用JET4.0,所以保守點的是要準備兩個版本
uj5u.com熱心網友回復:
最近也在修改以前同事做的軟體,也是用的Access。Access不支持INNER JOIN,你只能有Left Join,或Right Join。
或者你直接SELECT * FROM A AS A,B AS B WHERE B.ID=A.ID
uj5u.com熱心網友回復:
個人建議時間型別最好用引數的方式來進行查詢,少用between陳述句轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/72898.html
標籤:數據庫相關
上一篇:視頻播放器開發外包
下一篇:a = (a + 1)
