請教Oracle與DbExpress的搭配問題 |
答題得分者是:Mickey
|
ernest
一般會員 發表:17 回覆:21 積分:7 註冊:2002-04-15 發送簡訊給我 |
請問各位
小弟使用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 發送簡訊給我 |
先讓 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 發送簡訊給我 |
引言: 先讓 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 一樣重要 */ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |