DLL連資料庫有出現異常訊息"Invalid pointer operation" |
答題得分者是:shunchia63
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
如附檔,
按ms sql按鈕,在出現訊息ok後,會出現"Invalid pointer operation" 按access按鈕在dll_test.dll未加adoqry.free,adocon.free時 大約要連按5次才會出現"Invalid pointer operation" 加上後就不會出現, 但連按10次後,程式會自動關閉 滿怪的... 不知道是什麼地方沒寫好, 請前輩們幫忙看一下程式 感恩!
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 編輯記錄
jackiemi2_seed 重新編輯於 2007-06-20 22:53:12, 註解 無‧
jackiemi2_seed 重新編輯於 2007-06-22 22:43:35, 註解 無‧ jackiemi2_seed 重新編輯於 2007-07-26 21:38:14, 註解 無‧ |
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
|
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
公司測試電腦是delphi 7 win 2000 pro ms sql 2000的client,
連接的資料庫電腦是win 2000 server ms sql 2000 在家測試電腦是delphi 7 win 2000 server ms sql 2005 所連的資料庫電腦是同一台電腦用VMware安裝的win 2000 server ms sql 2000 在公司測了一下,不會出現"Invalid pointer operation", 但連按大約8次後,執行檔會自動關閉, 感覺好像是家裡的電腦怪怪的.. shunchia63兄: 您的程式在連按8次後是否會出現執行檔會自動關閉的狀況??? 如果程式不會自動關閉,是否可以把附檔程式捉下來compile, 然後把程式寄給小弟測試一下, 附檔程式已把連線字串由寫死的改成捉form的edit, 這樣在家和公司都可以測試 thanks
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 |
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
<textarea class="delphi" rows="10" cols="60" name="code">
function item_name(sql_string,item_no:string):string;stdcall;
var adocon:tadoconnection;
adoqry:tadoquery; begin
try
CoInitialize(nil);
adocon:=tadoconnection.Create(nil);
adocon.ConnectionString:=sql_string;
adoqry:=tadoquery.Create(nil);
adoqry.Connection:=adocon; adoqry.Close;
adoqry.SQL.Clear;
adoqry.SQL.Add('select id,name from vendor where id=:id');
adoqry.Parameters.ParamValues['id']:=item_no;
adoqry.Open;
adoqry.Active:=true;
if adoqry.RecordCount=1 then begin
Result :=adoqry.FieldValues['name'];
end
else begin
Result :='無此編號';
end;
finally
adoqry.Active:=false;
adoqry.Free;
CoUninitialize;
end; end;
</textarea> adocon.Free; 沒寫
|
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
不知如何加檔
Sorry!!
編輯記錄
shunchia63 重新編輯於 2007-06-22 23:47:17, 註解 無‧
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
|
HireMan
一般會員 ![]() ![]() 發表:0 回覆:12 積分:2 註冊:2004-12-02 發送簡訊給我 |
最好这样写.
begin adocon := nil; adoqry :=nil; try adocon := TAdoConnection.Create(nil); adoqty := TAdoquery.Create(nil); finally adoqry.close; adoqty.free; adocon.free; end; ==== 分享快乐:www.delphichm.com
編輯記錄
HireMan 重新編輯於 2007-07-25 00:28:05, 註解 無‧
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
感謝HireMan兄的回復
試了之後還是有一樣的問題,怪怪的... 最近買了一本書,裡面有寫到自己作元件 打算自己作function來reuse, 希望可以成功 ===================引 用 HireMan 文 章=================== 最好这样写.
begin ???? adocon := nil; ???? adoqry :=nil; ???? try ??????? adocon := TAdoConnection.Create(nil); ??????? adoqty?:= TAdoquery.Create(nil); ? ??? finally ?????? adoqry.close; ?????? adoqty.free; ?????? adocon.free; ??? end; ==== 分享快乐:www.delphichm.com
------
OS : Win 7 pro Program : Delphi 7 DataBase : Ms Sql 2008 |
wameng
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:1336 積分:1188 註冊:2004-09-16 發送簡訊給我 |
|
jackiemi2_seed
中階會員 ![]() ![]() ![]() 發表:37 回覆:97 積分:76 註冊:2006-09-11 發送簡訊給我 |
|
chih_kuan
中階會員 ![]() ![]() ![]() 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |