提示dbrtl60.bpl出错

COMPUTERZZZ 2009-02-12 03:25:37
STRS:=FrmBrowsShow('select CONVERT(VARCHAR(12),地址号) AS 地址号,描述1,详细描述 from v_F0101 WITH(NOLOCK) where 搜索类型=''H'' ORDER BY 地址号',0);
if Trim(Strs)<>'' then
begin
adoquery1.FieldByName('雇员号').AsString:=TRIM(strS);//运行这一句时出下面的错误.
end;
程序运行时出现如下错误:
---------------------------
Debugger Exception Notification
---------------------------
Project zyjxc.exe raised exception class EAccessViolation with message 'Access violation at address 4032CECC in module 'dbrtl60.bpl'. Read of address 00000030'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
是什么原因?
急~~~~~
...全文
689 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙岛主 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 COMPUTERZZZ 的帖子:]
---------------------------
Debugger Exception Notification
---------------------------
Project zyjxc.exe raised exception class EAccessViolation with message 'Access violation at address 4032CECC in module 'dbrtl60.bpl'. Read of address 00000030'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
是什么原因?
[/Quote]

一般情况下,是由于访问了非法的地址而引起的无效地址错误。
这种错误多半是由于对象被销毁了然后访问,或者是重复销毁引起。
从代码上看,FrmBrowsShow出错的可能性很大。
starluck 2009-02-13
  • 打赏
  • 举报
回复
步时,QryP0851A.FieldByName('雇员号').AsString:=TRIM(strS); QryP0851A为空


那就是釋放了或者沒有建立成功
COMPUTERZZZ 2009-02-13
  • 打赏
  • 举报
回复
单步时,QryP0851A.FieldByName('雇员号').AsString:=TRIM(strS); QryP0851A为空
procedure TFrmP0852A.DBGridEh1Columns0EditButtonClick(Sender: TObject; var Handled: Boolean);
var
STRS:STRING;
begin
if QryP0851A.State in [dsedit] then Exit;
STRS:=FrmBrowsShow('select CONVERT(VARCHAR(12),地址号) AS 地址号,描述1,详细描述 from v_F0101 WITH(NOLOCK) where 搜索类型=''H'' ORDER BY 地址号',0);
IF Trim(STRS) <>'' then
begin
// QryP0851A.Edit;
QryP0851A.Fieldbyname('雇员号').AsString:=TRIM(strS);
END;
COMPUTERZZZ 2009-02-13
  • 打赏
  • 举报
回复
在什么路径中?
starluck 2009-02-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 COMPUTERZZZ 的回复:]
请问dbrtl60.bpl文件是DELPHI自带的文件吗?
在什么路径中?
[/Quote]

是自帶的文件
COMPUTERZZZ 2009-02-12
  • 打赏
  • 举报
回复
QryP0851A当然建立了
COMPUTERZZZ 2009-02-12
  • 打赏
  • 举报
回复
请问dbrtl60.bpl文件是DELPHI自带的文件吗?
在什么路径中?
starluck 2009-02-12
  • 打赏
  • 举报
回复


TFrmP0852A中:
procedure TFrmP0852A.DBGridEh1Columns0EditButtonClick(Sender: TObject; var Handled: Boolean);
var
STRS:STRING;
begin
if QryP0851A.State in [dsedit] then Exit;
STRS:=FrmBrowsShow('select CONVERT(VARCHAR(12),地址号) AS 地址号,描述1,详细描述 from v_F0101 WITH(NOLOCK) where 搜索类型=''H'' ORDER BY 地址号',0);
IF Trim(STRS) <>'' then
begin
// QryP0851A.Edit;
QryP0851A.Fieldbyname('雇员号').AsString:=TRIM(strS);
END;




這個只是用來插入??如果是的話,應該是沒有問題的
QryP0851A 是動態建立的?Create 了吧??有沒有提前釋放了??


其它就沒有什麼再出的問題了。
voyan 2009-02-12
  • 打赏
  • 举报
回复
像是Delphi的bug,重启Delphi就好了
bdmh 2009-02-12
  • 打赏
  • 举报
回复
检查QryP0851A.Fieldbyname('雇员号').AsString:=TRIM(strS);
QryP0851A状态如何,'雇员号'字段存在吗
COMPUTERZZZ 2009-02-12
  • 打赏
  • 举报
回复
TFrmP0852中:
with FrmP0852A.QryP0851A do
begin
Connection:=ADOConn;
if Active then Close;
sql.Clear;
sql.Add('select * from v_F0851 WHERE 1=2');
Open;
Append;
end;
FrmP0852A.EdtEoco.Text:= IntToStr(GetNewDocNo(Trim(edtCTO.Text)));
FrmP0852A.edtType.Text:=edtCTO.Text;
FrmP0852A.EdtCO.Text:=Edtkco.Text;
FrmP0852A.DatEftj.Date:=Date;
FrmP0852A.DatTSDJ.Date:=Date;
FrmP0852A.Datcret.Date:=Date;
FrmP0852A.ShowModal;
FreeAndNil(FrmP0852A);

TFrmP0852A中:
procedure TFrmP0852A.DBGridEh1Columns0EditButtonClick(Sender: TObject; var Handled: Boolean);
var
STRS:STRING;
begin
if QryP0851A.State in [dsedit] then Exit;
STRS:=FrmBrowsShow('select CONVERT(VARCHAR(12),地址号) AS 地址号,描述1,详细描述 from v_F0101 WITH(NOLOCK) where 搜索类型=''H'' ORDER BY 地址号',0);
IF Trim(STRS)<>'' then
begin
// QryP0851A.Edit;
QryP0851A.Fieldbyname('雇员号').AsString:=TRIM(strS);
END;
bdmh 2009-02-12
  • 打赏
  • 举报
回复
如果adoquery和所访问的字段都存在且正确的话,就重启delphi试试吧
starluck 2009-02-12
  • 打赏
  • 举报
回复


退出再試下,這個是在調試狀態下出的錯吧??


把整段貼出來吧??

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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