日期的問題 有勞了 |
答題得分者是:ccchen
|
ferre
一般會員 發表:5 回覆:8 積分:2 註冊:2002-12-08 發送簡訊給我 |
請問一下 我是新新手喔 因為找舊文章 找不到範例 so 拜託了
我用database desktop 設定日期type為 date
可是 我的程式卻每每寫入時間時就會出錯ㄋㄟ procedure TForm1.Button1Click(Sender: TObject);
VAR maxeno : Integer;
begin
query2.SQL.Clear;
query2.SQL.Add('SELECT max(ENO) as maxeno FROM member.db');
query2.Close;
query2.Open;
maxeno:=query2.fieldbyname('maxeno').asinteger 1; query2.sql.clear;
query2.SQL.Add('insert into member.db');
query2.SQL.Add(' ( ENO , ');
query2.SQL.Add(' NAME , ');
query2.SQL.Add(' PHONE , ');
query2.SQL.Add(' ADDRESS , ');
query2.SQL.Add(' BIRTHDAY, ');
query2.SQL.Add(' TNUMBER , ');
query2.SQL.Add(' DAYIN ');
query2.SQL.Add(' ) VALUES ( ');
query2.SQL.Add(' ''' inttostr(maxeno) ''' ,');
query2.sql.Add(' ''' edit1.Text ''' ,');
query2.sql.Add(' ''' edit2.Text ''' ,');
query2.sql.Add(' ''' edit3.Text ''' ,');
query2.sql.Add(' ''' edit4.Text ''' ,');
query2.sql.Add(' ''' edit5.Text ''' ,');
query2.sql.Add(' ''' edit6.Text ''' )');
query2.execsql; query1.Close;
query1.Open;
end; procedure TForm1.Button2Click(Sender: TObject); begin
query2.SQL.Clear;
query2.SQL.Add('update member.db');
query2.SQL.Add('set'); query2.sql.add('NAME = ''' EDIT1.text ''' ,');
query2.sql.add('PHONE = ''' EDIT2.text ''' ,');
query2.sql.add('ADDRESS = ''' EDIT3.text ''' ,');
query2.sql.add('BIRTHDAY= ''' EDIT4.text ''' ,');
query2.sql.add('TNUMBER = ''' EDIT5.text ''' ');
query2.sql.add('DAYIN = ''' EDIT6.text ''' '); query2.sql.add('WHERE ENO=''' query1.fieldbyname('ENO').asstring ''' ');
query2.ExecSQL; query1.Close;
query1.open;
end;
|
ddy
站務副站長 發表:262 回覆:2105 積分:1169 註冊:2002-07-13 發送簡訊給我 |
你資料庫裡的日期設定為Date型態,而Edit.text屬字串型態
使用StrToDate 做型態轉換
例:
StrToDate(Edit4.text)PS:你的國籍資料(Angola)是否正確,若不正確麻煩請修改個人基本資料,以利站務統計,謝謝 =============================================================================== 提醒您,貼錯文章可立即傳訊通知該版版主/站長/副站長協助處理,不要放著不管喔 發表人 - |
ferre
一般會員 發表:5 回覆:8 積分:2 註冊:2002-12-08 發送簡訊給我 |
個人資料改好囉 sorry....沒注意到 謝謝您的回覆
可是我改成下面那樣 還是存不進去ㄋㄟ 拜託了 if edit4.text <> '' then query2.sql.add('BIRTHDAY= strtodate(EDIT4.text) ,');
query2.sql.add('TNUMBER = ''' EDIT5.text ''' ');
if edit6.text <> '' then query2.sql.add('DAYIN = strtodate(EDIT6.text) ');
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
其實有很多舊文章討論這個問題
每一資料庫日期格式都不太相同, .dbf, paradox 在輸入時為m/d/y
相信你在edit4及edit6上之字串都是y/m/d, 所以不行 BIRTHDAY= QuotedStr(formatDateTime('mm/dd/yyyy',strtodate(EDIT4.text)))
sql是一個字串, 所以必須轉回字串, 不可以是dateTime [NOTE]若用paramters來寫, parameters部分由delphi解釋就不會有資料庫不同寫法也不同之差異了, 搜尋一下,舊文章很多很多
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
改這樣試看看..
if edit4.text <> '' then
query2.sql.add('BIRTHDAY=' #39 strtodate(EDIT4.text) #39 ',');
query2.sql.add('TNUMBER =' #39 EDIT5.text #39);
if edit6.text <> '' then
query2.sql.add('DAYIN =' #39 strtodate(EDIT6.text) #39);
TRY TRY SEE
引言: if edit4.text <> '' then query2.sql.add('BIRTHDAY= strtodate(EDIT4.text) ,'); query2.sql.add('TNUMBER = ''' EDIT5.text ''' '); if edit6.text <> '' then query2.sql.add('DAYIN = strtodate(EDIT6.text) '); |
ferre
一般會員 發表:5 回覆:8 積分:2 註冊:2002-12-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |