我想製作兩個數據集,DS1
和DS2
,同時滾動。這些實際上是在具有不同字段的同一張表上查詢的結果。第一個用於用戶界面,有很多計算字段,第二個是一個簡單的可編輯數據集,只有很少的數據字段。我希望兩個數據集都具有相同的活動記錄ID
。所以,因爲我假設DS1
記錄集是DS2
的子集,我只需撥打DS2.Locate
,DS2.AfterScroll
即可。但是我的假設在技術上可能會被違反(由於配置錯誤)。所以我想在DS2
沒有相應的記錄時中止DS1
的滾動過程。通過滾動過程,我的意思是更改活動記錄DS1
並解僱DS1.AfterScroll
。是否有可能找到CustomADODataSet即將滾動到的記錄?
0
A
回答
1
下面應該做我理解你的意思,換句話說DS2的活動記錄跟蹤DS1的活動記錄。該示例使用Sql Server的MS演示pubs
數據庫的 authors
表。理想情況下,它會有一個整數主鍵ID列,但不幸的是authors
沒有。
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
DS1: TADOQuery;
DS2: TADOQuery;
DataSource1: TDataSource;
DataSource2: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
procedure DS1AfterScroll(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
protected
DS2au_id,
DS2au_lname,
DS2au_fname : TStringField;
public
end;
[...]
procedure TForm1.DS1AfterScroll(DataSet: TDataSet);
begin
if DS2.Active then
DS2.Locate('au_ID', DS1.FieldByName('au_ID').AsString, []);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DS1.SQL.Text := 'select * from authors';
DS2.SQL.Text := 'select au_id, au_name, au_fname from authors';
DS1.Open;
DS2au_id := TStringField.Create(Self);
DS2au_id.FieldName := 'au_ID';
DS2au_id.Size := 11;
DS2au_id.DataSet := DS2;
DS2au_lname := TStringField.Create(Self);
DS2au_lname.FieldName := 'au_lname';
DS2au_lname.Size := 40;
DS2au_lname.DataSet := DS2;
DS2au_lname := TStringField.Create(Self);
DS2au_lname.FieldName := 'au_fname';
DS2au_lname.Size := 20;
DS2au_lname.DataSet := DS2;
DS2.Recordset := DS1.Recordset;
end;
如果你做這種方式,回答您的問與答
是否有可能發現CustomADODataSet即將滾動到記錄?
是你不需要。
+0
嗯,這是一個有趣的技術,但並沒有解決我的問題。我真的需要使用兩個獨立的數據集。但在你的解決方案中,兩個數據集都有相同數量的記錄,'DS2'只能有'DS1'中存在的字段。即使沒有DS2.SQL.Text:= ...行,你的代碼行爲也是一樣的。 – saastn
相關問題
- 1. 是否有可能將html傳遞到Gojs的滾動表中?
- 2. 是否有可能將記錄數組作爲記錄字段?
- 3. 是否有可能得到平均Berkeley DB的記錄大小
- 4. 是否有可能將所有的Perforce歷史記錄導入到窯爐
- 5. 是否有可能將Tridion SP1 HR#1回滾到Tridion SP1
- 6. 是否有可能將日誌記錄添加到java 8中的removeIf?
- 7. 找出ListView是否滾動到上?
- 8. 是否有可能在clojure中記錄記錄中的字段?
- 9. 是否有可能將Selenium Webdriver測試結果記錄到Quality Center?
- 10. 即使滾動功能被禁用,是否可以平滑滾動到網頁的一部分?
- 11. 是否有可能找到某人是否查看網頁源
- 12. 是否有可能回滾到jcr中的時間戳?
- 13. Algolia沒有找到記錄
- 14. PHP - 沒有找到記錄
- 15. 是否有可能找到所有未使用的CSS?
- 16. Node.JS |是否有可能將自己移動到背景?
- 17. 是否有可能將動態值添加到@ Html.ActionLink參數
- 18. 是否有可能將事件動態添加到元素
- 19. 即使沒有找到記錄,也可以返回所有參數
- 20. 是否有可能在mysql中選擇從n到n + 10的記錄範圍?
- 21. 是否有可能有多個部分的記錄?
- 22. 是否有可能檢測到Java中是否有類可用?
- 23. 是否可以將按鈕添加到滾動視圖?
- 24. 是否可以將滾動條從容器移出到文檔?
- 25. 任何表中都沒有找到索引 - 是否有可能?
- 26. 是否有可能找到依賴同義詞的對象?
- 27. 是否有可能找到不跟隨定位符的元素?
- 28. 是否有可能找到另一個Android手機的位置?
- 29. 是否有可能在Windows的Vim中找到unicode字符串?
- 30. 是否有可能找到按下特定命令的按鈕?
您是否試過讓DS2使用與DS1相同的ADO RecordSet對象? – MartynA
@MartynA不,實際上我並不熟悉這個技巧。 – saastn
@saastn你的意思是如果record1中的DS1 DS2也應該在record1中? – Sami