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

DateTimePicker.date如何把他存入資料庫裡面

尚未結案
maloneliin
一般會員


發表:3
回覆:10
積分:2
註冊:2003-03-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-28 16:06:15 IP:61.220.xxx.xxx 未訂閱
請各位大大幫忙: 我用一個DateTimePicker和一個Button,選擇日期後,按下button可存入後端資料庫,下列為我寫ㄉ程式碼.. procedure TForm1.Button1Click(Sender: TObject); begin if MessageDlg('確定要儲存?',mtConfirmation,[mbYes, mbNO], 0)=mryes then Query1.Close; Query1.RequestLive:=True; Query1.SQL.Clear; Query1.SQL.Add('update business set bus_no=:bus_no,Exp_date=:Exp_date'); Query1.SQL.Add('where bus_no=:bus_no'); Query1.ParamByName('Exp_date').AsDateTime:=DateTimePicker1.Date; //Query1.ExecSQL; Query1.Open; //Query1.CommitUpdates; end; procedure TForm1.FormShow(Sender: TObject); begin DateTimePicker1.DateTime:=now; end;
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-28 16:15:39 IP:211.21.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject);
begin
  if MessageDlg('確定要儲存?',mtConfirmation,[mbYes, mbNO], 0)=mryes  then
  begin
    //Query1.Close;-->這一行可以不用寫
    //Query1.RequestLive:=True;-->這一行可以不用寫
    Query1.SQL.Clear;
    Query1.SQL.Add('update business set bus_no=:bus_no,Exp_date=:Exp_date');
    Query1.SQL.Add('where bus_no=:bus_no');
    Query1.ParamByName('Exp_date').AsDateTime:=DateTimePicker1.Date;
    Query1.ExecSQL;-->此行是將Query1的SQL語法執行,凡是Insert,Update,Delete語法皆用ExecSQL
   //Query1.Open;-->這一行可以不用寫,用Select的語法才用Open
   //Query1.CommitUpdates;-->這一行可以不用寫
  end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
  DateTimePicker1.DateTime:=now;
end;
這樣應該就可以寫回資料庫了 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-28 16:29:19 IP:218.16.xxx.xxx 未訂閱
你漏了傳 bus_no 參數耶,而且修件既然是某一等定 bus_no, 你 update 那個數值沒意思啊。    
procedure TForm1.Button1Click(Sender: TObject);
var Bus_no : string;
begin
if MessageDlg('確定要儲存?',mtConfirmation,[mbYes, mbNO], 0)=mryes then
  Bus_No := Query1.FieldByName('Bus_no').AsString; // 先記下 bus_no
  Query1.Close;
  Query1.SQL.Text := 'update business set Exp_date=:Exp_date'  
                     'where bus_no=:bus_no';
  Query1.ParamByName('Exp_date').AsDateTime:=DateTimePicker1.Date;
  Query1.ParamByName('bus_no').AsString := Bus_No; // 若 bus_no 在別個 query 可直接使用不用變數
  Query1.ExecSQL;
end;    procedure TForm1.FormShow(Sender: TObject);
begin
  DateTimePicker1.DateTime:=now;
end;
maloneliin
一般會員


發表:3
回覆:10
積分:2
註冊:2003-03-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-28 16:52:03 IP:61.220.xxx.xxx 未訂閱
bus_no為此欄位的主鍵,bus_no變動Exp_date會隨著變動,我已更改上位大大的程式,但是存檔時還是會出現錯誤訊息如下: Project Pcase.ese raised excption class EDatabaseError with message "Query: Parameter 'Exp_date'not found" Process stopped. Use Step or Run to continue.
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-28 17:06:47 IP:211.21.xxx.xxx 未訂閱
引言: Project Pcase.ese raised excption class EDatabaseError with message "Query: Parameter 'Exp_date'not found" Process stopped. Use Step or Run to continue.
Delphi找到Exp_date這個參數,檢查一下您的程式,有沒有打錯字 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-28 17:43:54 IP:61.220.xxx.xxx 未訂閱
如果沒有打錯字 看看你Tquery的Params屬性有沒有設定 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-28 21:12:57 IP:61.221.xxx.xxx 未訂閱
請參考: http://www.delphi32.com/info_facts/faq/faq_932.asp 由於動態給定 sql command, 其中的參數並未建立, 請加入 Query1.Params.ParseSQL(Query1.SQL.Text , True); 試試看!!
系統時間:2024-06-28 22:55:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!