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

請教Oracle與DbExpress的搭配問題

答題得分者是:Mickey
ernest
一般會員


發表:17
回覆:21
積分:7
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-27 20:22:23 IP:61.217.xxx.xxx 未訂閱
請問各位   小弟使用Oracle搭配dbExpress開發系統, 但是在作時間參數傳遞 時一直遇到問題, 以下為程式碼:    with SQLQuery1 do begin Close;SQL.Clear; SQL.Add(' select * from Table where udate >= :upddate'); ParamByName('upddate').AsDateTime := StrToDate(MaskEdit1.Text); Open; end; 其中傳遞參數部分後來也有改為以下形式: ParamByName('upddate').AsString := FormatDateTime('yyyy/mm/dd',StrToDate(MaskEdit1.Text)); 但是不是出現DBX Error就是出現Oracle的格式錯誤問題 而一樣的傳遞方式使用BDE的TQuery是完全正常的!! 請問有何解決的方法嗎? 謝謝!! 發表人 - ernest 於 2003/03/27 20:24:09
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-27 21:00:15 IP:218.32.xxx.xxx 未訂閱
先讓 Oracle 知道 Client 的 DateTimeFormat.如下:
procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
begin
  with TSQLQuery.Create(nil) do begin
  try
    SQLConnection := SQLConnection1;
    SQL.Add('alter session set nls_date_format='#39'yyyy/mm/dd'#39);
    ExecSQL;
  finally
    free;
  end;
  end;
end;
之後的 datetime param 都用 asstring 傳入. Note : Connection 斷掉後 DateTimeFormat 設定即自動失效. /* Free 和 Create 一樣重要 */
ernest
一般會員


發表:17
回覆:21
積分:7
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-27 22:04:04 IP:61.217.xxx.xxx 未訂閱
引言: 先讓 Oracle 知道 Client 的 DateTimeFormat.如下:
procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
begin
  with TSQLQuery.Create(nil) do begin
  try
    SQLConnection := SQLConnection1;
    SQL.Add('alter session set nls_date_format='#39'yyyy/mm/dd'#39);
    ExecSQL;
  finally
    free;
  end;
  end;
end;
之後的 datetime param 都用 asstring 傳入. Note : Connection 斷掉後 DateTimeFormat 設定即自動失效. /* Free 和 Create 一樣重要 */
謝謝版主!! 真的成功了!!
系統時間:2024-06-29 4:35:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!