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

dbdatetimepicker回存資料庫日期?

答題得分者是:shunaaron
lisahsu7488
一般會員


發表:9
回覆:3
積分:2
註冊:2007-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-17 21:52:34 IP:210.243.xxx.xxx 訂閱
不好意思,小的是個新手,有個問題,想請問各位大大,勞煩大家不嫌棄,給予指教,謝謝
dbdatetimepicker回存到資料庫,該如何使用呢?
1.資料庫的格式型態是timestamp
2.我只需要存日期的格式不要時間 例:2008/05/16
以下是我寫的:
s1:='update xxx set act_beg =' DateTimeToStr(dbdatetimepicker1.Date) ' where act_id =' Quotedstr(dbedit1.text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s1);
ADOQuery1.ExecSQL;
不好意思,各位大大,沒有把問題說清楚
我有先sql查詢過是可以update的,但是在程式上無法執行,會跳出下面的訊息
訊息內容:
Project acd01.exe raised exception class EOLeException with message'[Oracle][ODBC]ORA-00907:
missing right parenthesis'.Process stopped. Use Step or Run to continue.
出現這個訊息後就無法執行了,且資料庫有存資料進去但是格式卻是全部(日期+時間)。
我真的很想學,請各位大大撥點時間教教我可以嗎?
我已經有去查過很多相關訊息,但還是不行…才會提出來的,謝謝大家的指教
編輯記錄
lisahsu7488 重新編輯於 2008-05-19 14:24:05, 註解 無‧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-18 10:46:50 IP:61.67.xxx.xxx 未訂閱
你是要問什麼呢? 語法已列出, 是有錯嗎? 錯誤訊息是什麼? 還是其他原因呢?
qqqufo
一般會員


發表:1
回覆:17
積分:8
註冊:2007-06-01

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-18 18:05:33 IP:125.77.xxx.xxx 訂閱
我猜是日期格式的问题,楼主可以在执行SQL之前,使用showmessage(s1)把相关的sql显示出来看看,然后把这个显示出来的结果拿去数据库管理系统中直接执行,便知道是什么原因。然后按照不同DBMS的要求调整格式即可。
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-18 21:37:20 IP:61.67.xxx.xxx 未訂閱
這位朋友, 是你po文上來發問, 我們不明白問題所在, 怎麼會變成要我們自己去測結果, 再告訴你答案呢? 這不太對吧!
我常說, 討論區不是給大家在玩猜謎遊戲的, 我們也真的沒有那麼多時間耗在在這裡, 所以請直接告訴我們你要什麼, 謝謝!
===================引 用 qqqufo 文 章===================
我猜是日期格式的问题,楼主可以在执行SQL之前,使用showmessage(s1)把相关的sql显示出来看看,然后把这个显示出来的结果拿去数据库管理系统中直接执行,便知道是什么原因。然后按照不同DBMS的要求调整格式即可。
qqqufo
一般會員


發表:1
回覆:17
積分:8
註冊:2007-06-01

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-05-19 09:01:42 IP:117.25.xxx.xxx 訂閱
PD版主真的很尽职,赞一个,不过,我并不是发贴人,我同样是猜测发贴人的意图,并提供一种简单的调试方法。
建议发贴人先去看看《提问的智慧》,这样就不会浪费版主的时间了。


===================引 用 P.D. 文 章===================
這位朋友, 是你po文上來發問, 我們不明白問題所在, 怎麼會變成要我們自己去測結果, 再告訴你答案呢? 這不太對吧!
我常說, 討論區不是給大家在玩猜謎遊戲的, 我們也真的沒有那麼多時間耗在在這裡, 所以請直接告訴我們你要什麼, 謝謝!
===================引 用 qqqufo 文 章===================
我猜是日期格式的问题,楼主可以在执行SQL之前,使用showmessage(s1)把相关的sql显示出来看看,然后把这个显示出来的结果拿去数据库管理系统中直接执行,便知道是什么原因。然后按照不同DBMS的要求调整格式即可。
shunaaron
高階會員


發表:13
回覆:94
積分:106
註冊:2006-10-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-05-19 20:56:14 IP:220.134.xxx.xxx 訂閱
try
ttDate := formatdatetime('yyyy/mm/dd',dbdatetimepicker1.Date)
s1:='update xxx set act_beg =' QuotedStr(ttDate) ' where act_id =' Quotedstr(dbedit1.text);

===================引 用 lisahsu7488 文 章===================
不好意思,小的是個新手,有個問題,想請問各位大大,勞煩大家不嫌棄,給予指教,謝謝
dbdatetimepicker回存到資料庫,該如何使用呢?
1.資料庫的格式型態是timestamp
2.我只需要存日期的格式不要時間 例:2008/05/16
以下是我寫的:
s1:='update xxx set act_beg =' DateTimeToStr(dbdatetimepicker1.Date) ' where act_id =' Quotedstr(dbedit1.text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s1);
ADOQuery1.ExecSQL;
不好意思,各位大大,沒有把問題說清楚
我有先sql查詢過是可以update的,但是在程式上無法執行,會跳出下面的訊息
訊息內容:
Project acd01.exe raised exception class EOLeException with message'[Oracle][ODBC]ORA-00907:
missing right parenthesis'.Process stopped. Use Step or Run to continue.
出現這個訊息後就無法執行了,且資料庫有存資料進去但是格式卻是全部(日期+時間)。
我真的很想學,請各位大大撥點時間教教我可以嗎?
我已經有去查過很多相關訊息,但還是不行…才會提出來的,謝謝大家的指教
------
程式沒有這麼難
只是還沒打通其中要絕
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-05-19 22:16:05 IP:61.67.xxx.xxx 未訂閱
嗨! 如果你早這樣提出來, 或許問題已經有答案了, 不過很抱歉, 你的錯誤中有一個很重要的訊息
你使用 Oracle 非我的認知領域, 而且還使用odbc連結這點我覺得很奇怪
不過雖然無法為你解決, 提供你另一種寫法, 看能不能解決
ADOQuery1.Close;
ADOQuery1.SQL.Text:= 'update xxx set act_beg= :mact_beg where act_id= :mact_id';
ADOQuery1.Parameters.ParambyName('mact_beg').Value:= dbdatetimepicker1.Date;
ADOQuery1.Parameters.ParambyName('mact_id').Value:= dbedit1.text;
ADOQuery1.ExecSQL;

利用這種方式可以避免一些型態上的轉換失誤, 也可以讓程式更簡潔, 試試看
另外還有Oracle用ADO元件是否適合我不清楚, 不知道你的Delphi版本, 如果是6以上,
試試DBExpress元件, 可能會比較好

另外, 不是挑你文字的語病, 而是有時候一個字可能就讓我們導入錯誤方向
"我有先sql查詢過是可以update的"
這是代表, 你只是查過語法嗎? 還是有利用Orcale的相關工具實際run 過這段更新呢?
如果是前者, 你如何肯定這段語法真正在Run時是不是對的, 萬一根本就是錯的呢?
那我們在這裡討論不就一切都是白忙一場了嗎? 所以必須很清楚表示到底有沒有run過這樣的update而且可不可行?
再者你底下有提到資料有確實存入, 但是是時間 日期, 那你有試過(就你原有的update語法), 改成 DatetoStr(....) 方式可不可以run?
===================引 用 lisahsu7488 文 章===================
不好意思,小的是個新手,有個問題,想請問各位大大,勞煩大家不嫌棄,給予指教,謝謝
dbdatetimepicker回存到資料庫,該如何使用呢?
1.資料庫的格式型態是timestamp
2.我只需要存日期的格式不要時間 例:2008/05/16
以下是我寫的:
s1:='update xxx set act_beg =' DateTimeToStr(dbdatetimepicker1.Date) ' where act_id =' Quotedstr(dbedit1.text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(s1);
ADOQuery1.ExecSQL;
不好意思,各位大大,沒有把問題說清楚
我有先sql查詢過是可以update的,但是在程式上無法執行,會跳出下面的訊息
訊息內容:
Project acd01.exe raised exception class EOLeException with message'[Oracle][ODBC]ORA-00907:
missing right parenthesis'.Process stopped. Use Step or Run to continue.
出現這個訊息後就無法執行了,且資料庫有存資料進去但是格式卻是全部(日期+時間)。
我真的很想學,請各位大大撥點時間教教我可以嗎?
我已經有去查過很多相關訊息,但還是不行…才會提出來的,謝謝大家的指教
編輯記錄
P.D. 重新編輯於 2008-05-19 22:25:27, 註解 無‧
P.D. 重新編輯於 2008-05-19 22:28:23, 註解 無‧
系統時間:2024-05-02 3:55:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!