Ado的困惑,急.... |
尚未結案
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
我以前一直用BDE,可看了李維 的 實戰 Delphi 5.x ADO/MTS/COM 專業程式設計篇,有多麼好,我現用它時確發現了不少問題,現很難解決,真的Ado比Bde好嗎?BDE中的數據控件Tquery能查詢多個連接表而隻新增或修改其中的一個表,
可用TupdateSQL對應,但在ADO中確沒有這樣的對應物件嗎?因為我也用幾個連接查詢表,
可用TADODdataSet或TadoQuery但隻想編輯其中的一個表,但ADO引擎自動將所有連接的相應欄位修改了,
我是不是用的方法不對或要在什麼地方寫程序進行控制.當然不能用LookUp或計算字段,很慢。當然我已在前面提過這樣的問題,當然現我用主從結構,不能用分層架構的DataSetProvider1等控件去解決?誰知道?
|
alice100001
一般會員 發表:21 回覆:49 積分:19 註冊:2002-09-14 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
alice100001
一般會員 發表:21 回覆:49 積分:19 註冊:2002-09-14 發送簡訊給我 |
|
alice100001
一般會員 發表:21 回覆:49 積分:19 註冊:2002-09-14 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
jeffreck
高階會員 發表:247 回覆:340 積分:197 註冊:2003-01-23 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
Jeffrey
初階會員 發表:10 回覆:58 積分:38 註冊:2002-04-15 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
引言: 先將A(只需部份資料的Table)作範圍子查詢,例: A.工號從A001~A999謝謝,不過你沒看明白我的題意,不能用聯連查詢,因這樣的話一樣在新增,編輯,刪除時都會要把這兩個連接表都提交了,你可試試,用ADO做,可能要另外再處理,現這個問題已害死我了,我在寫一個系統,遇到此問題真不知如何處理,好像要返回再用BDE寫.你們沒遇到此問題嗎? 發表人 - 比爾丐自 於 2003/03/03 20:37:06Select B.工號, B.工資, A.姓名, A.性別 From B as B Left Join (Select 工號, 姓名, 性別 From A Where 工號 Between 'A001' and 'A999') as A on A.工號=B.工號 |
alice100001
一般會員 發表:21 回覆:49 積分:19 註冊:2002-09-14 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
引言: 你好: 我查了資料,若clientdataset的提供者在遠端的應用程式伺服器上時,除了要設providername屬性之外,還要設remoteserver,connectionbroker屬性,但請問,一般的主從式,不是只要把odbc設在“系統資料來源名稱”就可以連接了嗎?請問為何不能使用clientdataset呢?因為我查了資料﹐用clientdataset﹐必須要有應用服務器﹐最少是三層架構﹐現我還不是很懂﹐不能一下將我的程序改為此架構.你認為能將主從很簡單的改為此結構嗎﹖ |
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
引言: 因為我查了資料﹐用clientdataset﹐必須要有應用服務器﹐最少是三層架構﹐現我還不是很懂﹐不能一下將我的程序改為此架構.你認為能將主從很簡單的改為此結構嗎﹖clientdateset可以不用在三層架構下才能用,您可以試著把它當作一種memory table來看,可以用程式去動態建立欄位結構,將BDE或ADO等來源的資料集內容存入clietdataset. clientdataset的運行是在記憶體中,因此比較能避免cursor以及lock的問題,前題是要規劃的好就是. 若有說得不對還希望高手能大力指正了. |
yamapig
一般會員 發表:12 回覆:47 積分:21 註冊:2002-03-26 發送簡訊給我 |
插花一下,可以請教一下,怎麼把TQuery或TADOQuery 的資料搬給TClientDataSet我試了好久都試不出來,像TClientDataSet.data := TQuery
兩都的型態不合,因為Data為OldVariant,TQuery 怎麼把資料轉成OldVariant
再丟給TClientDatSet,目前做法都是用TOuery逐筆塞給TClientDataSet,但若資
料量很大時會很慢....謝謝! 靜中見真境 淡中識本然
------
靜中見真境 淡中識本然 |
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
引言: 插花一下,可以請教一下,怎麼把TQuery或TADOQuery 的資料搬給TClientDataSet我試了好久都試不出來,像TClientDataSet.data := TQuery 兩都的型態不合,因為Data為OldVariant,TQuery 怎麼把資料轉成OldVariant 再丟給TClientDatSet,目前做法都是用TOuery逐筆塞給TClientDataSet,但若資 料量很大時會很慢....謝謝! 靜中見真境 淡中識本然Hello : 拉一顆TDataSetProvider, 將DateSet屬性設到TQuery or TADOQuery, TClientDataSet的ProviderName設到TDataSetProvider, 你可以先在Query中寫好SQL, TClientDataSet.Active 設為True即可 Good Luck 我不是高手, 高手是正在銀幕前微笑的人. 發表人 - miles 於 2003/03/16 14:48:22
------
我不是高手, 高手是正在銀幕前微笑的人. |
yamapig
一般會員 發表:12 回覆:47 積分:21 註冊:2002-03-26 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
引言: 我以前一直用BDE,可看了李維 的 實戰 Delphi 5.x ADO/MTS/COM 專業程式設計篇,有多麼好,我現用它時確發現了不少問題,現很難解決,真的Ado比Bde好嗎?BDE中的數據控件Tquery能查詢多個連接表而隻新增或修改其中的一個表, 可用TupdateSQL對應,但在ADO中確沒有這樣的對應物件嗎?因為我也用幾個連接查詢表, 可用TADODdataSet或TadoQuery但隻想編輯其中的一個表,但ADO引擎自動將所有連接的相應欄位修改了, 我是不是用的方法不對或要在什麼地方寫程序進行控制.當然不能用LookUp或計算字段,很慢。當然我已在前面提過這樣的問題,當然現我用主從結構,不能用分層架構的DataSetProvider1等控件去解決?誰知道?因我的數據庫設置的是表間基本都有關系﹐上面的問題我無法解決﹐是Ado的問題嗎﹖ |
richcomp
中階會員 發表:18 回覆:66 積分:51 註冊:2002-10-18 發送簡訊給我 |
|
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
引言: 那說明是微軟的產品Ado差﹖還是我們真正未找到問題的解決辦法﹖只要是關聯一個字段用lookup還好﹐兩個以上呢﹖用計算方法嗎﹖如果表間關聯超過一個表﹐太慢了。1.lookup速度要快,乾脆系統一啟動的時候就把會被關聯的資料表都載入到記憶體內,或是說在c-s架構下,把他載入到client-side. 2.delphi現有元件提供的做法也是有他的極限,ado也是,其實只要資料量一大的話,所要分析的可能是整體的架構,資料庫的選定,而不單單在delphi,ado這兩個環節鑽牛角尖可以解決的. 您說是嗎? 待高明者續... |
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
1.lookup速度要快,乾脆系統一啟動的時候就把會被關聯的資料表都載入到記憶體內,或是說在c-s架構下,把他載入到client-side.
2.delphi現有元件提供的做法也是有他的極限,ado也是,其實只要資料量一大的話,所要分析的可能是整體的架構,資料庫的選定,而不單單在delphi,ado這兩個環節鑽牛角尖可以解決的. 您說是嗎?
待高明者續...
[/quote]
如果一個表關聯另一個表且需要另一個表兩個以上字段時﹐能用lookup嗎﹖
例如﹕表A(Proid,Proname,Prospec),表B(Id,Proid,number). 因表B需要A表的Proname,Prospec,這時能用lookup嗎﹖當然更不能用關聯查詢.因ADO對關聯表要做動作.
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
引言: 如果一個表關聯另一個表且需要另一個表兩個以上字段時﹐能用lookup嗎﹖ 例如﹕表A(Proid,Proname,Prospec),表B(Id,Proid,number). 因表B需要A表的Proname,Prospec,這時能用lookup嗎﹖當然更不能用關聯查詢.因ADO對關聯表要做動作.這位大俠,小弟所說的是若是lookup速度要快, 因為在post中有看到速度的問題,當然要因情況而使用,是否可將您疑惑的部分連同系統的部分流程貼出來,也好幫您一起想想怎麼處理. 速度的問題一直存在,當資料量累積到一定的程度後,速度的問題就跑出來了,小弟建議的是將基本檔在系統啟動的時候就存入client side的hard disk或ram中,應該可以克服一部份速度的問題. best regard 發表人 - hahalin 於 2003/03/27 09:27:19 |
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
[這位大俠,小弟所說的是若是lookup速度要快, 因為在post中有看到速度的問題,當然要因情況而使用,是否可將您疑惑的部分連同系統的部分流程貼出來,也好幫您一起想想怎麼處理. 速度的問題一直存在,當資料量累積到一定的程度後,速度的問題就跑出來了,小弟建議的是將基本檔在系統啟動的時候就存入client side的hard disk或ram中,應該可以克服一部份速度的問題. best regard
謝謝你﹐我的主題是用Ado對關聯表編輯時不能用查詢關聯來做。因它要對另一個關聯表做提交。就象我剛才舉的例子一樣﹐表A(Proid,Proname,Prospec),表B(Id,Proid,number). 現我假如對表B編輯時當然要用表A的兩個字段﹐Proname,Prospec,就只能用計算來解決嗎﹖,我的意思是用計算時速度稍慢。能不用計算嗎﹖但這時用LOOKUP來做對兩個字段就好象不合適。 發表人 - 比爾丐自 於 2003/03/27 09:40:28
|
Jungle
一般會員 發表:5 回覆:18 積分:9 註冊:2002-03-18 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |