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

怎样将如下ADOQuery转用SQL存储过程来写?

尚未結案
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-22 11:04:31 IP:61.165.xxx.xxx 未訂閱
环境SQL server2000+delphi7.0:原查询是一个动态条件设定查询,既如果用户选择时间范围,就在条件语句where 中动态加入时间范围设定,实现方法为动态设定ADOQuery的字串。如下:

  searchC:='';
  if not dateFlag then
     searchC:=searchC 'where  (日期 between ''' datetimeToStr(DateTimePicker1.date) 
               ''' and  ''' 
               datetimeToStr(DateTimePicker2.date) ''')';
   ...
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Select * into #temp from 基本信息');
    if (not dateFlag) or ...
    then
       ADOQuery1.SQL.Add(searchC);                          
但在存储过程中,不知怎样实现呢?看到的关于存储过程的例子好象都是条件数目给定的查询。谢谢各位大大。 發表人 -
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-22 19:58:46 IP:211.75.xxx.xxx 未訂閱
原文翻成繁體 環境SQL server2000 delphi7.0:原查詢是一個動態條件設定查詢,既如果用戶選擇時間範圍,就在條件語句where 中動態加入時間範圍設定,實現方法爲動態設定ADOQuery的字串。如下: searchC:=''; if not dateFlag then searchC:=searchC 'where (日期 between ''' datetimeToStr(DateTimePicker1.date) ''' and ''' datetimeToStr(DateTimePicker2.date) ''')'; ... ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * into #temp from 基本資訊'); if (not dateFlag) or ... then ADOQuery1.SQL.Add(searchC); 但在存儲過程中,不知怎樣實現呢?看到的關於存儲過程的例子好象都是條件數目給定的查詢。謝謝各位大大。 ============================================ 請詳細說明問題 , 存儲過程應是STORED PROCEDURE , 各家資料庫 STORED PROCEDUE 寫法不一 , 不過都支援動態參數傳入 , 建議用Query元件帶出STORED PROCEDURE 範例如下 Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * from Test_Proc(:EMP_NO)'); Query1.Params.Items[0].AsInteger:=Table1EMP_NO.AsInteger; if Query1.Prepared=False then Query1.Prepare; Query1.Open; PS 大陸網友請以繁體字貼文 , 畢竟這是台灣網站 , 這也是基本禮貌 .
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-22 21:44:52 IP:61.165.xxx.xxx 未訂閱
引言: 原文翻成繁體 環境SQL server2000 delphi7.0:原查詢是一個動態條件設定查詢,既如果用戶選擇時間範圍,就在條件語句where 中動態加入時間範圍設定,實現方法爲動態設定ADOQuery的字串。如下: searchC:=''; if not dateFlag then searchC:=searchC 'where (日期 between ''' datetimeToStr(DateTimePicker1.date) ''' and ''' datetimeToStr(DateTimePicker2.date) ''')'; ... ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * into #temp from 基本資訊'); if (not dateFlag) or ... then ADOQuery1.SQL.Add(searchC); 但在存儲過程中,不知怎樣實現呢?看到的關於存儲過程的例子好象都是條件數目給定的查詢。謝謝各位大大。 ============================================ 請詳細說明問題 , 存儲過程應是STORED PROCEDURE , 各家資料庫 STORED PROCEDUE 寫法不一 , 不過都支援動態參數傳入 , 建議用Query元件帶出STORED PROCEDURE 範例如下 Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * from Test_Proc(:EMP_NO)'); Query1.Params.Items[0].AsInteger:=Table1EMP_NO.AsInteger; if Query1.Prepared=False then Query1.Prepare; Query1.Open; PS 大陸網友請以繁體字貼文 , 畢竟這是台灣網站 , 這也是基本禮貌 .
首先,谢谢stillalive大大帮我将问题转为繁体并解答问题。其次,并非我不曾顾忌台湾同胞文字使用的习惯,而是不是很会用转码功能,曾失败过。所以用简体的。让您认为我缺乏基本的礼貌,我很遗憾。以后会尽量用繁体 我的问题是在SQL Server 上如何使用存储过程(Stored procedure)设置动态条件,既条件项目(where 后的限定)数目不确定。如上例,也许有时间范围限定,也许没有。如何在SQL Server 中表达?不知这样说有没有清楚点。呵呵,看来是要再好好学习中文了。
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-22 21:54:01 IP:61.165.xxx.xxx 未訂閱
引言: 原文翻成繁體 環境SQL server2000 delphi7.0:原查詢是一個動態條件設定查詢,既如果用戶選擇時間範圍,就在條件語句where 中動態加入時間範圍設定,實現方法爲動態設定ADOQuery的字串。如下: searchC:=''; if not dateFlag then searchC:=searchC 'where (日期 between ''' datetimeToStr(DateTimePicker1.date) ''' and ''' datetimeToStr(DateTimePicker2.date) ''')'; ... ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Select * into #temp from 基本資訊'); if (not dateFlag) or ... then ADOQuery1.SQL.Add(searchC); 但在存儲過程中,不知怎樣實現呢?看到的關於存儲過程的例子好象都是條件數目給定的查詢。謝謝各位大大。 ============================================ 請詳細說明問題 , 存儲過程應是STORED PROCEDURE , 各家資料庫 STORED PROCEDUE 寫法不一 , 不過都支援動態參數傳入 , 建議用Query元件帶出STORED PROCEDURE 範例如下 Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select * from Test_Proc(:EMP_NO)'); Query1.Params.Items[0].AsInteger:=Table1EMP_NO.AsInteger; if Query1.Prepared=False then Query1.Prepare; Query1.Open; PS 大陸網友請以繁體字貼文 , 畢竟這是台灣網站 , 這也是基本禮貌 .
首先,谢谢stillalive大大帮我将问题转为繁体并解答问题。其次,并非我不曾顾忌台湾同胞文字使用的习惯,而是不是很会用转码功能,曾失败过。所以用简体的。让您认为我缺乏基本的礼貌,我很遗憾。以后会尽量用繁体 我的问题是在SQL Server 上如何使用存储过程(Stored procedure)设置动态条件,既条件项目(where 后的限定)数目不确定。如上例,也许有时间范围限定,也许没有。如何在SQL Server 中表达?不知这样说有没有清楚点。呵呵,看来是要再好好学习中文了。
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-22 21:59:39 IP:61.165.xxx.xxx 未訂閱
如何将简体转为繁体呢?恳请指教。
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-22 23:08:49 IP:211.75.xxx.xxx 未訂閱
AMADA 網友妳好 , WORD 2000有簡繁互換功能 ,蠻好用的 . ======================================== 首先,謝謝stillalive大大幫我將問題轉爲繁體並解答問題。其次,並非我不曾顧忌臺灣同胞文字使用的習慣,而是不是很會用轉碼功能,曾失敗過。所以用簡體的。讓您認爲我缺乏基本的禮貌,我很遺憾。以後會儘量用繁體 我的問題是在SQL Server 上如何使用存儲過程(Stored procedure)設置動態條件,既條件專案(where 後的限定)數目不確定。如上例,也許有時間範圍限定,也許沒有。如何在SQL Server 中表達?不知這樣說有沒有清楚點。呵呵,看來是要再好好學習中文了。 ================================================================== 上例中Query1.SQL.Add('Select * from Test_Proc(:EMP_NO)'); Test_Proc即是 SERVER 中STORED PROCEDURE . SQL SERVER先寫好傳遞參數,再配合Query元件指定SQL內容 . 程式自行判斷選取何種STORED PROCEDURE即可 .
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-23 14:21:18 IP:61.165.xxx.xxx 未訂閱
謝謝stillalive大大,Word 果然很好用。 我的問題是變數的數目不一定,而不是變數本身的變化情況。 即條件限定可能很多,有部門限定,日期限定,金額限定,也可能什麼限定也沒有,這種表達在Stored Procedure中怎麼作呢?
stillalive
初階會員


發表:7
回覆:148
積分:41
註冊:2004-04-07

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-23 17:00:00 IP:211.75.xxx.xxx 未訂閱
謝謝stillalive大大,Word 果然很好用。 我的問題是變數的數目不一定,而不是變數本身的變化情況。 即條件限定可能很多,有部門限定,日期限定,金額限定,也可能什麼限定也沒有,這種表達在Stored Procedure中怎麼作呢? ================================================================== 參考這篇看看 , 這以傳入參數來判斷執行 stored procedure 某部份 , 蠻玲活的 . http://delphi.ktop.com.tw/topic.php?topic_id=21118 PS 感謝站長提供簡轉繁功能 , 功德無量 . 發表人 - stillalive 於 2004/04/23 17:04:11
Amanda_Chen
一般會員


發表:25
回覆:82
積分:21
註冊:2003-12-28

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-25 11:34:50 IP:61.165.xxx.xxx 未訂閱
引言: 謝謝stillalive大大,Word 果然很好用。 我的問題是變數的數目不一定,而不是變數本身的變化情況。 即條件限定可能很多,有部門限定,日期限定,金額限定,也可能什麼限定也沒有,這種表達在Stored Procedure中怎麼作呢? ================================================================== 參考這篇看看 , 這以傳入參數來判斷執行 stored procedure 某部份 , 蠻玲活的 . http://delphi.ktop.com.tw/topic.php?topic_id=21118 PS 感謝站長提供簡轉繁功能 , 功德無量 . 發表人 - stillalive 於 2004/04/23 17:04:11
一直忙著別的事,沒有認真研究它了,不過大概看來應該是我要的東東。謝謝!
系統時間:2024-05-19 13:23:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!