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

請教新增資料的語法哪裡有錯誤呢 謝謝

答題得分者是:ccchen
jiannrong
一般會員


發表:58
回覆:36
積分:18
註冊:2002-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-09 14:22:02 IP:140.109.xxx.xxx 未訂閱
請教一下 我現在要做一個動作 就是當使用者點選checkbox1的時候 會將該月開始的一年之內的周六訂定 為休假日 [存入資料庫] 點選checkbox2的時候 會將該月開始的一年之內的周日訂定 為休假日 [存入資料庫] 請問一下 以下的語法哪裡有錯誤的地方 為何無法執行呢 我檢查過了 實在不知道錯在哪裡 所以冒昧的請教各位前輩 謝謝 procedure TFormfday.BitBtnFAdd1Click(Sender: TObject); var Year, Month, Day, w: Word; Date1,Date2,Date:TDateTime; begin //將今天日期拆成年月日 DecodeDate(Now, Year, Month, Day); Date1:=StrToDate(format('%0.4d/%0.2d/01',[Year,Month])); Date2:=StrToDate(format('%0.4d/%0.2d/01',[Year 1,Month]))-1; //date1是今天的時間 date2是明年的時間 DM.Queryfday.close; DM.Queryfday.SQL.Clear; try DM.Queryfday.SQL.ADD('select fday from Fday where fday >= ''' datetostr(Date1) ''' and fday <= ''' datetostr(Date2) ''' order by FDAY'); edit1.text:=DM.Queryfday.SQL.Text ; showmessage(edit1.text); DM.Queryfday.Prepare; DM.Queryfday.Open; except on E: Exception do begin ShowMessage(E.Message); end; end; try w:=DayOfWeek(Date1); if (CheckBox1.checked=true) then begin if w<>7 then Date:=Date1 (7-w) //init first match day date1是今天日期 else Date:=Date1; while Date<=Date2 do begin DM.Queryfday.close; DM.Queryfday.SQL.Clear; try DM.Queryfday.SQL.ADD('insert into Fday(Fday) values(''' datetostr(Date) ''')'); DM.Queryfday.Prepare; DM.Queryfday.ExecSQL; except on E: Exception do begin ShowMessage(E.Message); end; end; Date:=Date 7; end; end; if (CheckBox2.checked=true) then begin if w<>1 then Date:=Date1 (8-w) //init first match day else Date:=Date1; while Date<=Date2 do begin DM.Queryfday.close; DM.Queryfday.SQL.Clear; try DM.Queryfday.SQL.ADD('insert into Fday(Fday) values(''' datetostr(Date) ''')'); DM.Queryfday.Prepare; DM.Queryfday.ExecSQL; except on E: Exception do begin ShowMessage(E.Message); end; end; Date:=Date 7; end; end; finally end; end;
andersonhsieh
版主


發表:33
回覆:531
積分:439
註冊:2002-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-09 14:30:43 IP:211.20.xxx.xxx 未訂閱
錯誤訊息為何呢?.......... @@~~飛翔在天際的精靈~~@@
------
@@~~飛翔在天際的精靈~~@@
weber
初階會員


發表:24
回覆:56
積分:26
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-09 15:07:49 IP:61.216.xxx.xxx 未訂閱
建議 Sql 日期改由參數傳入方式.
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-09 17:45:12 IP:203.217.xxx.xxx 未訂閱
select fday from Fday where fday >= ''' datetostr(Date1) ''' and fday <= ''' datetostr(Date2) ''' order by FDAY' 主要問題在DatetoStr, 各資料庫所接受之DateFormat均不同, 須查查看 顯示之日期依shortDateFormat而定與資料庫無關, 輸入之Data則須符合資料庫要求. 例如: Paradox, DBF均為'mm/dd/yyyy', 雖然顯示為yyyy/mm/dd Oracle: 若安裝Big5碼, 則月還須輸入中文字如3月 不過Client-SerVer之資料庫均可更改日期格式 將你所有DateToStr改成 FormatDateTime('mm/dd/yyyy', Date1)試試 [NOTE]最好不要用Date當變數, 因為這是一個function name
系統時間:2024-05-05 9:34:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!