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

請教大家如何在新增資料庫資料的時候同時在某個欄位加入時間?

答題得分者是:bestlong
lkkplayer
一般會員


發表:26
回覆:59
積分:17
註冊:2006-11-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-22 18:12:54 IP:210.202.xxx.xxx 訂閱
大家好,小弟是個新手,才剛接觸兩天DELPHI 7 有試寫一個新增,修改,刪除,查詢資料庫的小程式 想請教大家如何在新增資料庫資料的時候同時在某個欄位(ct_dt)加入時間ex:2006/7/27 下午 04:44:48 目前我是用空字串,有成功新增資料,但ct_dt的欄位顯示1900/1/1 我該怎麼寫勒?? 另外想請教大家,有什麼書對元件如何使用或程式語法有比較詳細的說明 現在我都照抄,有些可以用有些不可以用,我也不知道為什麼 如果想在某個元件在加一點動作,不會寫 大家有什麼書可以推薦的嗎?大家都是怎麼學的呢? 給小弟我一點建議^^thx ----------------------以下是我的程式碼------------- unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids, DB, ADODB, IdTime, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient; type TForm1 = class(TForm) ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; DSC: TLabeledEdit; UT: TLabeledEdit; STORE_DATE: TLabeledEdit; ct_dt: TLabeledEdit; ct_op: TLabeledEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; BitBtn4: TBitBtn; ADOQuery2: TADOQuery; procedure DataSource1DataChange(Sender: TObject; Field: TField); procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); VAR MAXNO : INTEGER; begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('SELECT MAX(NO) AS MAXNO FROM ASRS_ITEM'); ADOQuery2.Close; ADOQuery2.Open; MAXNO:=ADOQuery2.FieldByName('MAXNO').AsInteger 1; ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('INSERT INTO ASRS_ITEM'); ADOQuery2.SQL.Add('(NO,'); ADOQuery2.SQL.Add('DSC,'); ADOQuery2.SQL.Add('UT,'); ADOQuery2.SQL.Add('STORE_DATE,'); ADOQuery2.SQL.Add('ct_dt,'); ADOQuery2.SQL.Add('ct_op'); ADOQuery2.SQL.Add(')VALUES('); ADOQuery2.SQL.Add('''' INTTOSTR(MAXNO) ''','); ADOQuery2.SQL.Add('''' DSC.Text ''','); ADOQuery2.SQL.Add('''' UT.Text ''','); ADOQuery2.SQL.Add('''' STORE_DATE.Text ''','); ADOQuery2.SQL.Add('''' '' ''','); ADOQuery2.SQL.Add('''' ct_op.Text ''')'); ADOQuery2.ExecSQL; ADOQuery1.Close; ADOQuery1.Open; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('UPDATE ASRS_ITEM'); ADOQuery2.SQL.Add('SET'); ADOQuery2.SQL.Add('DSC=''' DSC.Text ''','); ADOQuery2.SQL.Add('UT=''' UT.Text ''','); ADOQuery2.SQL.Add('STORE_DATE=''' STORE_DATE.Text ''','); ADOQuery2.SQL.Add('ct_dt=''' ct_dt.Text ''','); ADOQuery2.SQL.Add('ct_op=''' ct_op.Text ''''); ADOQuery2.SQL.Add('WHERE NO=''' ADOQuery1.FieldByName('NO').AsString ''''); ADOQuery2.ExecSQL; ADOQuery1.Close; ADOQuery1.Open; end; procedure TForm1.BitBtn3Click(Sender: TObject); begin ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('DELETE FROM ASRS_ITEM'); ADOQuery2.SQL.Add('WHERE NO=''' ADOQuery1.FieldByName('NO').AsString ''''); ADOQuery2.ExecSQL; ADOQuery1.Close; ADOQuery1.Open; end; procedure TForm1.BitBtn4Click(Sender: TObject); begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM ASRS_ITEM'); ADOQuery1.Close; ADOQuery1.Open; end; procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); begin DSC.Text:=ADOQuery1.FieldByName('DSC').AsString ; UT.Text:=ADOQuery1.FieldByName('UT').AsString; STORE_DATE.Text:=ADOQuery1.FieldByName('STORE_DATE').AsString; ct_dt.Text:=ADOQuery1.FieldByName('ct_dt').AsString; ct_op.Text:=ADOQuery1.FieldByName('ct_op').AsString; end; end.
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-22 20:58:04 IP:210.244.xxx.xxx 未訂閱
可以使用資料庫的日期函數,以 MSSQL 來說可用 GetDate() 來取得目前時間
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
lkkplayer
一般會員


發表:26
回覆:59
積分:17
註冊:2006-11-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-22 21:21:06 IP:125.228.xxx.xxx 訂閱

===================引 用 文 章===================
可以使用資料庫的日期函數,以 MSSQL 來說可用 GetDate() 來取得目前時間
==============================================
謝謝你的回覆可不可以寫個小例子
教我如何使用 GetDate()
procedure TForm1.BitBtn1Click(Sender: TObject);
............
ADOQuery2.SQL.Add('''' ' ' ''',');
^^^^這邊要如何改
............
end;
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-23 08:55:08 IP:60.248.xxx.xxx 未訂閱
簡單SQL 範例如下
insert into tbname(datetime_field) values(getdate())
用 Query 處理範例如下
ADOQuery.SQL.Add('insert into tbname(datetime_field)');
ADOQuery.SQL.Add('values(getdate())');

------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
lkkplayer
一般會員


發表:26
回覆:59
積分:17
註冊:2006-11-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-11-23 10:23:55 IP:210.202.xxx.xxx 訂閱
謝謝你指導,我已經解決問題 PS:另外想請教我要在FORM某個位置顯示系統時間應該要怎麼做 指令也是用GETDATE()嗎?我是希望顯示的時間是不斷變動的
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-11-23 10:55:23 IP:60.248.xxx.xxx 未訂閱
首先要決定取得時間的來源是哪裡
非資料庫程式一般都使用本機時間,可以用 Delphi 函數 now()
若是資料庫程式則可以用 SQL 取得主機的時間來顯示, select GetDate() 就可以了
在畫面顯示可以使用 TTimer 元件來處理
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
lkkplayer
一般會員


發表:26
回覆:59
積分:17
註冊:2006-11-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-11-23 12:39:29 IP:210.202.xxx.xxx 訂閱
哈哈~成功了..感謝你的指導^^
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-11-23 15:06:53 IP:219.87.xxx.xxx 未訂閱
以 MS-SQL Server 來說, 小弟一般都是將該欄位定義 datetime, 預設值設定為 getdate(), 這樣該筆資料新增時候, 該欄位自動會被填入日期時間
如果只要日期, 可以在預設值填入 convert(varchar, getdate(),111)
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-05-19 14:19:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!