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

請問我有下的方法存日期,資料庫的資料會是數字呢???

尚未結案
miller680523
一般會員


發表:47
回覆:49
積分:19
註冊:2002-10-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-30 15:42:26 IP:61.218.xxx.xxx 未訂閱
adoquery1.Parameters.ParamByName('backday').value:=strtodate(floattostr(date2.Date)); 有沒辦法存日期進去資料庫呢?????謝謝
channel
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-30 15:58:17 IP:211.21.xxx.xxx 未訂閱
引言: adoquery1.Parameters.ParamByName('backday').value:=strtodate(floattostr(date2.Date)); 有沒辦法存日期進去資料庫呢?????謝謝
不懂您為什麼要這麼轉變型態,直接用 adoquery1.Parameters.ParamByName('backday').value:=date2.Date;不行嗎? 而且您這樣作是將date2.Date的資料給adoquery1的參數backday而不是將資料存到資料庫,將資料存到資料庫應該是 adoquery1.FieldByName('backday').value:=date2.Date; ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
miller680523
一般會員


發表:47
回覆:49
積分:19
註冊:2002-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-30 16:05:59 IP:61.218.xxx.xxx 未訂閱
引言:
引言: adoquery1.Parameters.ParamByName('backday').value:=strtodate(floattostr(date2.Date)); 有沒辦法存日期進去資料庫呢?????謝謝
不懂您為什麼要這麼轉變型態,直接用 adoquery1.Parameters.ParamByName('backday').value:=date2.Date;不行嗎? 而且您這樣作是將date2.Date的資料給adoquery1的參數backday而不是將資料存到資料庫,將資料存到資料庫應該是 adoquery1.FieldByName('backday').value:=date2.Date; ~小弟淺見,參考看看~ adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('insert into member_order('); adoquery1.SQL.add('訂購人身份證,汽車牌照,訂單時間,租金,歸還日,出租日)'); adoquery1.SQL.add(' values(:id,:car_id,:order_time,:totmoney,:backday,:eranday)'); adoquery1.Parameters.ParamByName('id').Value:=edit2.Text; adoquery1.Parameters.ParamByName('car_id').Value:=dbcomb1.Text; adoquery1.Parameters.ParamByName('order_time').Value:=now; adoquery1.Parameters.ParamByName('totmoney').Value:=dbedit3.Text; adoquery1.Parameters.ParamByName('backday').value:=date2.Date; adoquery1.Parameters.ParamByName('eranday').value:=date1.Date; adoquery1.ExecSQL; 我有試過直接存,但資料還是數值
channel
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-30 16:16:33 IP:211.21.xxx.xxx 未訂閱
引言:
引言:
引言: adoquery1.Parameters.ParamByName('backday').value:=strtodate(floattostr(date2.Date)); 有沒辦法存日期進去資料庫呢?????謝謝
不懂您為什麼要這麼轉變型態,直接用 adoquery1.Parameters.ParamByName('backday').value:=date2.Date;不行嗎? 而且您這樣作是將date2.Date的資料給adoquery1的參數backday而不是將資料存到資料庫,將資料存到資料庫應該是 adoquery1.FieldByName('backday').value:=date2.Date; ~小弟淺見,參考看看~ adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('insert into member_order('); adoquery1.SQL.add('訂購人身份證,汽車牌照,訂單時間,租金,歸還日,出租日)'); adoquery1.SQL.add(' values(:id,:car_id,:order_time,:totmoney,:backday,:eranday)'); adoquery1.Parameters.ParamByName('id').Value:=edit2.Text; adoquery1.Parameters.ParamByName('car_id').Value:=dbcomb1.Text; adoquery1.Parameters.ParamByName('order_time').Value:=now; adoquery1.Parameters.ParamByName('totmoney').Value:=dbedit3.Text; adoquery1.Parameters.ParamByName('backday').value:=date2.Date; adoquery1.Parameters.ParamByName('eranday').value:=date1.Date; adoquery1.ExecSQL; 我有試過直接存,但資料還是數值
您的backday欄位的Type是日期型態嗎? date1是TDateTimePicker元件嗎? 您有將adoquery1.Parameters.ParamByName('backday').DataType設為ftDate或ftDateTime嗎? 若上述都是的話,應該沒有問題才對呀! ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
miller680523
一般會員


發表:47
回覆:49
積分:19
註冊:2002-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-30 16:32:23 IP:61.218.xxx.xxx 未訂閱
引言:
引言:
引言:
引言: adoquery1.Parameters.ParamByName('backday').value:=strtodate(floattostr(date2.Date)); 有沒辦法存日期進去資料庫呢?????謝謝
不懂您為什麼要這麼轉變型態,直接用 adoquery1.Parameters.ParamByName('backday').value:=date2.Date;不行嗎? 而且您這樣作是將date2.Date的資料給adoquery1的參數backday而不是將資料存到資料庫,將資料存到資料庫應該是 adoquery1.FieldByName('backday').value:=date2.Date; ~小弟淺見,參考看看~ adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('insert into member_order('); adoquery1.SQL.add('訂購人身份證,汽車牌照,訂單時間,租金,歸還日,出租日)'); adoquery1.SQL.add(' values(:id,:car_id,:order_time,:totmoney,:backday,:eranday)'); adoquery1.Parameters.ParamByName('id').Value:=edit2.Text; adoquery1.Parameters.ParamByName('car_id').Value:=dbcomb1.Text; adoquery1.Parameters.ParamByName('order_time').Value:=now; adoquery1.Parameters.ParamByName('totmoney').Value:=dbedit3.Text; adoquery1.Parameters.ParamByName('backday').value:=date2.Date; adoquery1.Parameters.ParamByName('eranday').value:=date1.Date; adoquery1.ExecSQL; 我有試過直接存,但資料還是數值
您的backday欄位的Type是日期型態嗎? date1是TDateTimePicker元件嗎? 您有將adoquery1.Parameters.ParamByName('backday').DataType設為ftDate或ftDateTime嗎? 若上述都是的話,應該沒有問題才對呀! ~小弟淺見,參考看看~
照您的方法,可以用十分感謝,但一些不明白的是,為什麼要設: 1)adoquery1.Parameters.ParamByName('backday').datatype:=ftdate; 2)我想用下面的方法作,但不知為何寫不進去資料庫??? adoquery1.FieldByName('backday').value:=date2.Date; 3)請問parameters.parambyname('string')和filedbyname這兩種新增資料方法有何不同,何時可以用你的方法,因為感覺比較方便. 4)可不可以有您的方法新增一筆data,讓我看看,您的寫法,謝謝感激不盡.
channel
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-30 17:19:51 IP:211.21.xxx.xxx 未訂閱
引言: 照您的方法,可以用十分感謝,但一些不明白的是,為什麼要設: 1)adoquery1.Parameters.ParamByName('backday').datatype:=ftdate; 2)我想用下面的方法作,但不知為何寫不進去資料庫??? adoquery1.FieldByName('backday').value:=date2.Date; 3)請問parameters.parambyname('string')和filedbyname這兩種新增資料方法有何不同,何時可以用你的方法,因為感覺比較方便. 4)可不可以有您的方法新增一筆data,讓我看看,您的寫法,謝謝感激不盡.
  • 參數都要指定資料型態(DataType)。 若是將SQL語法直接用Add的方式:需用下程式的方式指定DataType。 若是將SQL語打在屬性SQL中,可經由屬性Parameters設定各個參數的DataType。
  • 當然不行,因為adoquery1.FieldByName('backday').value:=date2.Date;是直接將值給backday這個欄位。您並不是用Select的方式所以不行。
  • 兩種寫法的不同是根據您的寫法而不同,您新增資料的SQL語法是直接下Insert into的方式,透過丟參數的方式,所以要用adoquery1.Parameters.ParamByName('backday').value:=date2.Date;而我所說的方式是用Select的方式,再透過將資料丟給欄位的方式,所以要用adoquery1.FieldByName('backday').value:=date2.Date;
  •   //一般Select語法是下在FromCreate的事件中
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('Select 訂購人身份證,汽車牌照,訂單時間,租金,歸還日,出租日');
      adoquery1.SQL.add('From member_order');
      adoquery1.Append;
      adoquery1.FieldByName('id').AsString:=edit2.Text;
      adoquery1.FieldByName('car_id').AsString:=dbcomb1.Text;
      adoquery1.FieldByName('order_time').AsDate:=now;
      adoquery1.FieldByName('totmoney').AsString:=dbedit3.Text;
      adoquery1.FieldByName('backday').AsDate:=date2.Date;
      adoquery1.FieldByName('eranday').AsDate:=date1.Date;
      adoquery.Post;
    
    為什麼要這樣作: 一般我們在設計的時候,使用者希望能先流覽資料後然後再新增、刪除、修改資料,這樣的作法,可以將流覽/新增/刪除/修改均作在同一個劃面上,而且(Local)新增完資料不需將資料重新Refresh或Close/Open一遍,資料即是最新的,而且不用像您還要再下Insert、Edit、Delete...等語報。您是用Insert into的方式是直接將資料存入後端,速度比我所使用的方法快,但是您並不能讓使用者馬上看到您所新增的資料,必須重新Refresh或Close/Open一遍(如果您有將資料放在DBGrid上的話)。
小弟的表達方式不是很好的,不知上述的說明您是否看得懂? ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
系統時間:2024-05-18 7:42:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!