請問如何取得 DataSet 的指標和 handle |
答題得分者是:Chance36
|
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
|
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
改寫成
ShowMessage(IntToStr(DataSource1.dataSet.Handle)+' '+IntToStr(Pointer(DataSource1.DataSet))); 結果出現
[Error] Unit1.pas(159): Undeclared identifier: 'Handle'
[Error] Unit1.pas(159): There is no overloaded version of 'IntToStr' that can be called with these arguments
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 結果出現 [Error] Unit1.pas(159): Undeclared identifier: 'Handle' [Error] Unit1.pas(159): There is no overloaded version of 'IntToStr' that can be called with these argumentsufjjc 你好 只有繼承自TDBDataSet的Dataset才有Handle屬性,其他如TAdoDataSet卻沒有Handle 屬性,TDBDataSet的繼承架構如下 TDataset->TBDEDataSet->TDBDataSet->TQuery...其實也只有幾個資料集才有Handle屬性,因此你上述改寫必須加上轉型才行 ShowMessage(IntToStr(TDBDataSet(DataSource1.dataSet).Handle) ' ' IntToStr(Pointer(DataSource1.DataSet))); |
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: 請問 以下的做法可行嗎. 指標 := Pointer(tDBDataSet1.DataSource) ; tDBDataSet2.DataSource = 指標;ufjjc 你好 原則上是可行,但不建議 TDBDataset.DataSource 並不是TDBDataSet所連結的TDataSource 與TDataSource.DataSet 是否同意義的,要注意(有點含糊) 在Delphi 中物件名稱其實就是指標,但物件化就是要以物件來看待資料而不是以指標來看資料,如上述是真有此需求 tDBDataSet2.DataSource = tDBDataSet1.DataSource; 就可以了,何苦再用指標轉來轉去呢? 發表人 - chance36 於 2004/05/01 01:21:21 |
ufjjc
一般會員 發表:18 回覆:47 積分:23 註冊:2002-05-21 發送簡訊給我 |
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |