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

請問mdf與mdb的SQL語法有何差別?

尚未結案
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-18 23:18:08 IP:61.216.xxx.xxx 未訂閱
以下的語法在SQL2000的mdf資料庫可以正常,可是在Microsoft? mdb卻不行, 而Date的型別在SQL2000是DateTime,在Microsoft? mdb應該也是吧... SQL2000的DateTime型別SQL語法是string,為什麼Microsoft? mdb不是? 因為會出現資料型別不一致的訊息,而days改用TDateTime時, 按F9卻又出現string與TDateTime不相容的警訊 請問我的問題出在哪?.....請求前輩指點迷津... var days :string; begin days:=DateTimeToStr(DateOf(DateTimePicker2.Date)); with ADODataSet1 do begin Close; commandtext:='select * from Entr where Date = ''' days ''' '; Open; end;
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-19 00:01:28 IP:219.68.xxx.xxx 未訂閱
你用'''傳到sql中他會把他當成字串 select * form table where date='2005/01/01', 你要傳進去時是 select * form table where date=2005/01/01才對 改成以下這樣 var days :string; begin days:=DateTimeToStr(DateOf(DateTimePicker2.Date)); with ADODataSet1 do begin Close; commandtext:='select * from Entr where Date = ' days; Open; end;
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-19 01:17:03 IP:61.216.xxx.xxx 未訂閱
感謝supman大大指點 不過還是不行耶... 我因為沒學過ACCESS所以對查詢DateTime型態的語法不知道 SQL2000任何型態資料,在ADODataSet中select...where...時都可用string型態 而ACCESS好像不行,所以DateTime型態該如何下SQL(where...)? 請求前輩不吝賜教.....
supman
尊榮會員


發表:29
回覆:770
積分:924
註冊:2002-04-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-19 01:47:17 IP:219.68.xxx.xxx 未訂閱
不行的話請提供錯誤訊息。 如果你是日期型態的資料 下select * from table where date=2005/01/01 在ms sql2000或access都適用 你如果是三個單引號就是 select * from table where date='2005/01/01' 這樣sql是不接受的. 你先到access中直接下以上的指令試試看。 另外,你說宣告成 var days :tdatetime; 然後 commandtext:='select * from Entr where Date = ''' days ''' '; 這樣當然是不行的,因為這樣等於是字串 日期,如果要這樣用要改成 commandtext:='select * from Entr where Date = ''' datetostr(days) ''' '; 用showmessage(commandtext)可以知道你的sql指令下成甚麼,比較容易解決問題。
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-19 09:03:05 IP:202.62.xxx.xxx 未訂閱
您好﹗    使用Access資料庫形態時﹐如果在SQL語法中條件值中有日期時間格式的值﹐需要在日期時間值的左右加上#﹐如下﹕
begin
  With ADODataSet1 do begin
    Close;
    commandtext:='select * from Entr where Date = #19/07/2005#';
    Open;
  end;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-19 10:17:57 IP:61.216.xxx.xxx 未訂閱
非常感謝supman及cashxin2002兩位前輩不吝指教 鑽研兩位前輩的語法,小弟悟出其中差別了 以下語法已經解決問題了 with mdbDataSet do begin Close; commandtext:='select * from Entr where Date =' '#' DateToStr(DateTimePicker2.Date) '#'; Open; end; 真不知該如何給分? 然cashxin2002大大 點出其中最大差別...所以......
系統時間:2024-04-16 21:52:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!