依照類別指定query的問題 |
尚未結案
|
a6475
高階會員 ![]() ![]() ![]() ![]() 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
這個問題我不知道該如何正確陳述..
是這樣的,我現在有一個函數,想依不同傳入的Query,做同樣的處理,
像ADO的TADOQuery和第三方組件Zeos的TZReadOnlyQuery,這兩個都同樣有
SQL.Text和Open的語法,所以我想寫一個函數集中處理,可是在型態上的
判別,小弟功力不夠,想請教站上各位大大的寫法, 以下是我原本的寫法,依據FQryType 來做轉型,可是這樣程式同樣的程式
就會一直重覆,又臭又長,不知道有什麼方法可解否?
procedure TSMFQuery.setQry(AQry: TDataset; const ASQL: String; const AType: TExecType); begin if ASQL = '' then exit; case FQryType of qtZeos: begin with TZReadOnlyQuery(AQry) do begin close; SQL.Text := ASQL; try case AType of etOpen : Open; etExec : ExecSQL; etNone : ; //nothing etShow : Sh(ASQL); etDEBUG: dh(ASQL); end; except if Assigned(FOnError) then FOnError(Self,SQL.Text); end; end; end; qtADO : begin with TADOQuery(AQry) do begin close; SQL.Text := ASQL; try case AType of etOpen : Open; etExec : ExecSQL; etNone : ; //nothing etShow : Sh(ASQL); etDEBUG: dh(ASQL); end; except if Assigned(FOnError) then FOnError(Self,SQL.Text); end; end; end; end; end;..-----------βλμε------------.. ◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
StrongLemon
高階會員 ![]() ![]() ![]() ![]() 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
您好..我能夠補充的就只有
if AQry is TZReadOnlyQuery then begin with TZReadOnlyQuery(AQry) do begin .. end; end;感覺上你是想用TSMFQuery再包一層處理.. TZReadOnlyQuery->TZAbstractRODataset->TDataSet TADOQuery->TCustomADODataSet->TDataSet 交集的TDataSet不會有SQL屬性.. 所以這兩個必須分別轉型.. 所以就還是維持原樣吧.. |
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
a6475
高階會員 ![]() ![]() ![]() ![]() 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
|
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
a6475
高階會員 ![]() ![]() ![]() ![]() 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
是這樣的。小弟因工作上的關係,常常需要把資料轉到Server的資料庫
由於資料的來源雖然千奇百怪,但是我發現用Access的轉入功的非常強大,
所以常常使用Access轉入資料源,在利用ADO連資料庫轉成SQL語法
使用TZReadOnlyQuery 來執行。 有時後需要先計算出結果在上傳,而計算的邏輯又跟一支連Mysql的程式
計算邏輯一樣,所以我才將Query包裝成一個類別。
這樣只要指定Query的Dataset可是的任意更換連線的資料庫。 小弟的表達能力不好。如果還有問題歡迎提出。
如果大大還是看不了解的話,小弟可加Post簡易的程式碼上來。 ..-----------βλμε------------..
◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
a6475
高階會員 ![]() ![]() ![]() ![]() 發表:67 回覆:230 積分:154 註冊:2002-09-15 發送簡訊給我 |
引言: 是這樣的。小弟因工作上的關係,常常需要把資料轉到Server(Mysql)的資料庫 由於資料的來源雖然千奇百怪,但是我發現用Access的轉入功的非常強大, 所以常常使用Access轉入資料源,在利用ADO連資料庫轉成SQL語法 在利用TZReadOnlyQuery 來執行上傳到Mysql資料庫。 有時後需要先計算出結果在上傳,而計算的邏輯又跟一支連Mysql的程式 計算邏輯一樣,所以我才將Query包裝成一個類別。 這樣只要指定Query的Dataset可是的任意更換連線的資料庫。 小弟的表達能力不好。如果還有問題歡迎提出。 如果大大還是看不了解的話,小弟可加Post簡易的程式碼上來。 ..-----------βλμε------------....-----------βλμε------------.. ◎Oo月夜 光明 藍更愁oO◎ 藍調月光城v4:http://inping.myweb.hinet.net/ (暫時使用中..) 明日報(藍調.月光):http://mypaper2.ttimes.com.tw/user/a6475
------
月夜 光明 藍更愁 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |