全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2033
推到 Plurk!
推到 Facebook!

DLL如何使用Data Module中的Query來取得資料

尚未結案
GigiShen
一般會員


發表:2
回覆:5
積分:1
註冊:2003-10-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-18 14:50:41 IP:210.243.xxx.xxx 未訂閱
我需要寫一個DLL程式,DLL程式中需要select table裡的一些資料,但是卻出現錯誤 使用BDE資料,DataBaseName:Sn、Data Module:SnDM、Data Source:S1DS、Query:S1Q 程式是這樣的 SnDM.S1DS.DataSet := SnDM.S1Q; SnDM.S1Q.clear; SnDM.S1Q.SQL.ADD('...'); .... SnDM.S1Q.close; 結果是跑完第一行就跳到最後一行出現下面的錯誤 Access violation at address 004BC257 in module 'Test.DLL'. Read of address 'FFFFFFFF'
s9054469
一般會員


發表:21
回覆:35
積分:11
註冊:2003-04-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-18 15:36:40 IP:210.243.xxx.xxx 未訂閱
引言: 我需要寫一個DLL程式,DLL程式中需要select table裡的一些資料,但是卻出現錯誤 使用BDE資料,DataBaseName:Sn、Data Module:SnDM、Data Source:S1DS、Query:S1Q 程式是這樣的 SnDM.S1DS.DataSet := SnDM.S1Q; SnDM.S1Q.clear; SnDM.S1Q.SQL.ADD('...'); .... SnDM.S1Q.close; 結果是跑完第一行就跳到最後一行出現下面的錯誤 Access violation at address 004BC257 in module 'Test.DLL'. Read of address 'FFFFFFFF'
蠻奇怪的一件事, Query有clear這Methods嗎? 你在執前..那行不會出錯嗎? 還是你打錯了?clear應該是用在 SnDM.S1Q.SQL.clear; SnDM.S1Q.SQL.ADD('...'); 而我習慣在使用Query前都會在close一次 SnDM.S1Q.close; SnDM.S1Q.SQL.clear; SnDM.S1Q.SQL.ADD('...'); ~做中學,學中做~
------
corn
GigiShen
一般會員


發表:2
回覆:5
積分:1
註冊:2003-10-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-18 15:49:17 IP:210.243.xxx.xxx 未訂閱
很抱歉,漏打了一些 SnDM.S1DS.DataSet := SnDM.S1Q; SnDM.S1Q.Close; SnDM.S1Q.SQL.Clear; SnDM.S1Q.SQL.Add('...'); .... SnDM.RAQ.Close;
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-18 17:16:57 IP:63.84.xxx.xxx 未訂閱
您好﹗    SnDM.S1DS.DataSet := SnDM.S1Q; SnDM.S1Q.Close; SnDM.S1Q.SQL.Clear; SnDM.S1Q.SQL.Add('...'); .... SnDM.RAQ.Close; 請檢查一下所有Query元件的Name(以上紅色處)是否正确﹒ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
GigiShen
一般會員


發表:2
回覆:5
積分:1
註冊:2003-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-18 18:57:37 IP:210.243.xxx.xxx 未訂閱
最後一行又key錯了,是 SnDM.S1Q.Close;
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-19 09:37:56 IP:147.8.xxx.xxx 未訂閱
Database components in .exe and .dll need to acess it? How do you pass the reference to the .dll? BTW, I think you may need to build your plugin as package instead of .dll.
GigiShen
一般會員


發表:2
回覆:5
積分:1
註冊:2003-10-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-19 11:13:14 IP:210.243.xxx.xxx 未訂閱
請問我要如何做呢? 另外在RUN時我發現進第一行時SnDM是nil,就跳最後一行了,是不是DLL中要使用已建立之DATA MODULE有些什麼樣的限制或設定
GigiShen
一般會員


發表:2
回覆:5
積分:1
註冊:2003-10-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-12-31 11:15:06 IP:210.243.xxx.xxx 未訂閱
已經解決了 答案就是DLL中要使用DATA MODULE必須像EXE中一樣先CREATE,但在EXE中加入專案時會自動加入CREATE那段程式,在DLL中則必須去CREATE DATA MODULE,結束後再FREE DATA MODULE
系統時間:2024-06-27 3:53:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!