Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 将JvEdit与JvDataSource一起使用会引发访问冲突_Database_Delphi_Jvcl - Fatal编程技术网

Database 将JvEdit与JvDataSource一起使用会引发访问冲突

Database 将JvEdit与JvDataSource一起使用会引发访问冲突,database,delphi,jvcl,Database,Delphi,Jvcl,我正在尝试使用JvEdit和JvDataSource而不是DBEdit和DataSource。但在设计时,每当我打开一个带有JvEdit的表单时,我都会遇到以下错误: 模块'dbrtl160.bpl'中地址xxxxxxxx处的访问冲突。读取地址00000000。忽略错误并继续?注意:忽略此错误可能会导致组件被删除或属性值丢失。 并且没有组件或属性值丢失。。。只是个烦人的问题 信息 有没有人曾经在JvEdit上遇到过同样的问题?我曾尝试使用安装程序重新安装JCL和JVCL,并手动重新生成包,但没有

我正在尝试使用
JvEdit
JvDataSource
而不是
DBEdit
DataSource
。但在设计时,每当我打开一个带有
JvEdit
的表单时,我都会遇到以下错误:

模块'dbrtl160.bpl'中地址xxxxxxxx处的访问冲突。读取地址00000000。忽略错误并继续?注意:忽略此错误可能会导致组件被删除或属性值丢失。

并且没有组件或属性值丢失。。。只是个烦人的问题 信息

有没有人曾经在
JvEdit
上遇到过同样的问题?我曾尝试使用安装程序重新安装
JCL
JVCL
,并手动重新生成包,但没有成功


以下是我的应用程序在运行时引发相同访问冲突后的堆栈跟踪:

00724ecb +08f LIMS.exe     Data.DB          12439   +9 TDataSet.Resync
007d1cf4 +034 LIMS.exe     Data.Win.ADODB    4421   +3 RefreshBuffers
007d1d39 +039 LIMS.exe     Data.Win.ADODB    4425   +1 TCustomADODataSet.GetFieldData
00713cd1 +08d LIMS.exe     Data.DB           4538   +8 TField.GetData
00716476 +012 LIMS.exe     Data.DB           5650   +2 TIntegerField.GetValue
007162f1 +00d LIMS.exe     Data.DB           5595   +1 TIntegerField.GetAsString
007fdae4 +00c LIMS.exe     JvDataSource                TJvDataSource.GetFieldString
00728ae4 +010 LIMS.exe     JvDataSourceIntf            TJvDataConnectorField.GetAsString
0073a83d +03d LIMS.exe     JvEdit                      TJvCustomEditDataConnector.RecordChanged
00728412 +02e LIMS.exe     JvDataSourceIntf            TJvDataConnector.DcRecordChanged
00728301 +00d LIMS.exe     JvDataSourceIntf            TJvDataConnector.Notify
0072825b +007 LIMS.exe     JvDataSourceIntf            TJvDataConnector.ActiveChanged
00728848 +00c LIMS.exe     JvDataSourceIntf            TJvFieldDataConnector.ActiveChanged
00728395 +011 LIMS.exe     JvDataSourceIntf            TJvDataConnector.DcActiveChanged
00728301 +00d LIMS.exe     JvDataSourceIntf            TJvDataConnector.Notify
0072835b +00f LIMS.exe     JvDataSourceIntf            TJvDataConnector.DataSourceConnected
007288ec +00c LIMS.exe     JvDataSourceIntf            TJvFieldDataConnector.DataSourceConnected
00728747 +0d3 LIMS.exe     JvDataSourceIntf            TJvDataConnector.SetDataSource
0046be07 +06b LIMS.exe     System.TypInfo    1909   +8 {System.TypInfo}TPropSet<System.IInterface>.SetProc
0046b112 +00a LIMS.exe     System.TypInfo    3033   +0 SetInterfaceProp
00481a58 +05c LIMS.exe     System.Classes    7266   +5 TPropIntfFixup.ResolveReference
00481d21 +0d5 LIMS.exe     System.Classes    7347  +24 GlobalFixupReferences
00484009 +279 LIMS.exe     System.Classes    8514  +53 TReader.ReadRootComponent
00480456 +032 LIMS.exe     System.Classes    6601   +3 TStream.ReadComponent
0047b1df +057 LIMS.exe     System.Classes    3455   +7 InternalReadComponentRes
0047b34f +05f LIMS.exe     System.Classes    3512   +4 InitComponent
0047b3dd +061 LIMS.exe     System.Classes    3524   +6 InitInheritedComponent
005f93b2 +0c6 LIMS.exe     Vcl.Forms         3554  +17 TCustomForm.Create
009567a9 +015 LIMS.exe     uMainForm          147   +1 TfrmMainForm.acInsurancesExecute
0048bd2f +00f LIMS.exe     System.Classes   13372   +3 TBasicAction.Execute
004f60d5 +031 LIMS.exe     Vcl.ActnList       448   +8 TContainedAction.Execute
004f6ec0 +050 LIMS.exe     Vcl.ActnList      1094   +7 TCustomAction.Execute
0048bbf3 +013 LIMS.exe     System.Classes   13301   +2 TBasicActionLink.Execute
005e9734 +090 LIMS.exe     Vcl.Menus         2520  +17 TMenuItem.Click
005ead4f +013 LIMS.exe     Vcl.Menus         3435   +5 TMenu.DispatchCommand
0060af75 +121 LIMS.exe     Vcl.Forms        14151  +26 TFormStyleHook.TMainMenuBarStyleHook.TrackMenuFromItem
006087fa +022 LIMS.exe     Vcl.Forms        12959   +7 TFormStyleHook.TMainMenuBarStyleHook.ProcessMenuLoop
006086a0 +02c LIMS.exe     Vcl.Forms        12897   +6 TFormStyleHook.TMainMenuBarStyleHook.MenuEnter
0060aa88 +024 LIMS.exe     Vcl.Forms        14009   +4 TFormStyleHook.TMainMenuBarStyleHook.MouseDown
0060db08 +0cc LIMS.exe     Vcl.Forms        15529  +35 TFormStyleHook.WMNCLButtonDown
005c913b +07b LIMS.exe     Vcl.Themes        6709  +13 TStyleHook.WndProc
005c9318 +000 LIMS.exe     Vcl.Themes        6810   +0 TMouseTrackControlStyleHook.WndProc
0060d91c +000 LIMS.exe     Vcl.Forms        15436   +0 TFormStyleHook.WndProc
005c8b02 +05a LIMS.exe     Vcl.Themes        6485  +17 TStyleHook.HandleMessage
0098c05a +116 LIMS.exe     Vcl.Styles        3387  +26 TStyleEngine.HandleMessage
005c6078 +054 LIMS.exe     Vcl.Themes        5145  +11 TStyleManager.HandleMessage
0051594b +00f LIMS.exe     Vcl.Controls      8936   +0 TWinControl.DoHandleStyleMessage
00516f7d +049 LIMS.exe     Vcl.Controls      9825   +1 TWinControl.WndProc
005faafd +60d LIMS.exe     Vcl.Forms         4344 +201 TCustomForm.WndProc
00516b3c +02c LIMS.exe     Vcl.Controls      9689   +3 TWinControl.MainWndProc
0048ca24 +014 LIMS.exe     System.Classes   13878   +8 StdWndProc
75f5cc6b +00a USER32.dll                               DispatchMessageW
00603cef +0f3 LIMS.exe     Vcl.Forms        10164  +23 TApplication.ProcessMessage
00603d32 +00a LIMS.exe     Vcl.Forms        10194   +1 TApplication.HandleMessage
00604071 +0c9 LIMS.exe     Vcl.Forms        10332  +26 TApplication.Run
009af892 +0de LIMS.exe     LIMS                61  +15 initialization
76dced6a +010 kernel32.dll                             BaseThreadInitThunk
似乎
JvDataSource
没有检查关联的
DataSet
以查看它是否打开


检查并确认<代码>数据连接器链接不检查
数据集
是否打开。如果我的
数据集
在设计时打开,则不会引发异常


这些是引发异常的过程的前几行。现在,我不是研究
VCL
源代码的专家。那么,有谁能给我指引正确的方向吗

procedure TDataSet.Resync(Mode: TResyncMode);
var
  Count: Integer;
begin
  if not IsUniDirectional then
  begin
    if rmExact in Mode then
    begin
      CursorPosChanged;
      if GetRecord(FBuffers[FRecordCount], gmCurrent, True) <> grOK then
        DatabaseError(SRecordNotFound, Self);
    end else
      if (GetRecord(FBuffers[FRecordCount], gmCurrent, False) <> grOK) and // <<-- Exception is raised here!
        (GetRecord(FBuffers[FRecordCount], gmNext, False) <> grOK) and
        (GetRecord(FBuffers[FRecordCount], gmPrior, False) <> grOK) then
过程TDataSet.Resync(模式:TResyncMode);
变量
计数:整数;
开始
如果不是单向的,那么
开始
如果rmExact处于模式,则
开始
改变光标;
如果GetRecord(FBuffers[FRecordCount],gmCurrent,True)grOK那么
数据库错误(SRecordNotFound,Self);
结束其他

如果(GetRecord(FBuffers[FRecordCount],gmCurrent,False)grOK)和//安装MadExcept,请发布DESIGNTIME访问冲突堆栈跟踪,也许我们可以找到它并修复JEDI组件中的问题。@WarrenP我已经有了MadExcept。在设计时,异常由IDE处理。但是,我想我找到了一个堆栈跟踪,这可能会有所帮助。请参阅带有hstack跟踪的“编辑Jedi代码库有异常”对话框。而Delphi项目选项有使用调试DCU选项。因此,您可以获得AV的确切位置,并尝试查看哪个变量为NULL。首先,我很惊讶将非DB感知控件(如TEdit/TJvEdit)与TDataSource耦合在一起。在第二个示例中,第二个示例似乎与Accecc冲突无关。但我们应该仔细检查所有事件。我会截取TDataLink.DataEvent并查看它在调用什么。它似乎调用了类似DataSet的东西。第一个是ot DataSet。下一个或类似的。了解它在哪里以及为什么这样做,对于找出问题是至关重要的。这听起来像是一个明智的先决条件检查。也许我需要在绝地bug跟踪器(螳螂)中记录一个bug。请安装MadExcept,并发布DESIGNTIME访问冲突堆栈跟踪,也许我们可以找到它并修复绝地组件中的问题。@WarrenP我已经安装了MadExcept。在设计时,异常由IDE处理。但是,我想我找到了一个堆栈跟踪,这可能会有所帮助。请参阅带有hstack跟踪的“编辑Jedi代码库有异常”对话框。而Delphi项目选项有使用调试DCU选项。因此,您可以获得AV的确切位置,并尝试查看哪个变量为NULL。首先,我很惊讶将非DB感知控件(如TEdit/TJvEdit)与TDataSource耦合在一起。在第二个示例中,第二个示例似乎与Accecc冲突无关。但我们应该仔细检查所有事件。我会截取TDataLink.DataEvent并查看它在调用什么。它似乎调用了类似DataSet的东西。第一个是ot DataSet。下一个或类似的。了解它在哪里以及为什么这样做,对于找出问题是至关重要的。这听起来像是一个明智的先决条件检查。也许我需要在绝地虫子追踪器(螳螂)上记录一只虫子。
procedure TDataSet.Resync(Mode: TResyncMode);
var
  Count: Integer;
begin
  if not IsUniDirectional then
  begin
    if rmExact in Mode then
    begin
      CursorPosChanged;
      if GetRecord(FBuffers[FRecordCount], gmCurrent, True) <> grOK then
        DatabaseError(SRecordNotFound, Self);
    end else
      if (GetRecord(FBuffers[FRecordCount], gmCurrent, False) <> grOK) and // <<-- Exception is raised here!
        (GetRecord(FBuffers[FRecordCount], gmNext, False) <> grOK) and
        (GetRecord(FBuffers[FRecordCount], gmPrior, False) <> grOK) then