請問mdf與mdb的SQL語法有何差別? |
尚未結案
|
way888
初階會員 發表:32 回覆:76 積分:36 註冊:2005-05-31 發送簡訊給我 |
以下的語法在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 發送簡訊給我 |
你用'''傳到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 發送簡訊給我 |
|
supman
尊榮會員 發表:29 回覆:770 積分:924 註冊:2002-04-22 發送簡訊給我 |
不行的話請提供錯誤訊息。
如果你是日期型態的資料
下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 發送簡訊給我 |
您好﹗ 使用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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |