异常处理

zhangcyu 2003-07-28 10:11:11
为什么编译程序总是出现错误提示:
Project MDIAPP.exe raised exception class EACESSVIOLATION with message'Acess violation at adress 004752c6 in module 'MDIAPP.exe'.Read of Address 0000006c'.Process stopped. Use step or run to continue.
是什么原因,怎么处理
...全文
75 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
seatu 2003-08-11
  • 打赏
  • 举报
回复
1、应该是根本没有初始化mcntConnect,我觉得你不要这么去判断是否联接
只要判断,判断conneted是否为true就可以了
2、如果不是在delphi环境下运行,应该能够把错误屏蔽掉的。当然,功能可
能不能实现了
sjzmdslxj 2003-07-30
  • 打赏
  • 举报
回复
SysUtils
zhangcyu 2003-07-28
  • 打赏
  • 举报
回复
我现在认为是传递给函数的参数mcntConnect没有初始化造成的,请问如何初始化Tadoconnection类型的变量。
hkbarton 2003-07-28
  • 打赏
  • 举报
回复
试试这样
if (stConnecting in mcntConnect.State) then
zhangcyu 2003-07-28
  • 打赏
  • 举报
回复
function DBSConnect(StrUseID:string;StrPasswd:string;strCatalog:string;
strMachineName:string;var mcntConnect:Tadoconnection;var strError:string):Integer;

var strConnect:string;

begin
try
if ([stConnecting] = mcntConnect.State) then \\\\\\\\出错就在这行
mcntConnect.Close ;
strConnect:= 'Provider=SQLOLEDB.1;Persist Security Info=True;User ID=' +
Trim(strUseID) +';Password=' + Trim(strPasswd) +
';Initial Catalog=' + Trim(strCatalog) +
';Data Source=' + strMachinename;
mcntConnect.ConnectionTimeout:=20;
mcntConnect.CommandTimeout:=1000;
mcntConnect.Open(strConnect,'');
Result:=0;
except
on E:Exception do
begin
strError:=E.Message ;
Result:=1;
end;
end;
hkbarton 2003-07-28
  • 打赏
  • 举报
回复
当然是程序本身的问题,将出错的那段贴出来看看
STYun 2003-07-28
  • 打赏
  • 举报
回复
你的程序有错误,单步调试一下看看错误出在哪里,你这样问,谁知道问题出在哪里呢?

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧