Милые дамы и уважаемые господа! А не сталкивался кто-либо с такой ситуацией в BDS2006:
Если у компонента TSimpleDataSet.PackedRecords>0 и количество записей > PackedRecords, то при перемещении к последней записи возникает ошибка:
Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 00BB978C in module 'dbxora30.dll'. Write of address 071E00A0'.
Ошибка возникает в модуле SqlExpr в TISQLCursor30.Next, при вызове из TISQLCursor30.GetRecord.
Потом возникает сообщение:
Catastrophic failure.
При завершении приложения также возникают ошибки
Версия dbxora30.dll:
10.0.2151.25345 Подскажите пожалуйста как с этим бороться, или надо писать жалобу в Борланд.
Если TSimpleDataSet.PackedRecords=-1, то всё нормально.
В приведенном примере надо открыть таблицу, в которой больше 100 записей и переместить Trackbar в самый низ.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, WideStrings,
ExtCtrls, DB, DBClient, SimpleDS, SqlExpr, Grids, DBGrids, StdCtrls;
type
TForm9 = class(TForm)
SQLConnection1: TSQLConnection;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Panel1: TPanel;
CheckBoxActive: TCheckBox;
SimpleDataSet1: TSimpleDataSet;
procedure CheckBoxActiveClick(Sender: TObject);
private
public
end;
var
Form9: TForm9;
implementation
procedure TForm9.CheckBoxActiveClick(Sender: TObject);
begin
SimpleDataSet1.Active := not SimpleDataSet1.Active;
CheckBoxActive.Checked := SimpleDataSet1.Active;
end;
end.
Имя БД и таблицы поставьте свои
object Form9: TForm9
Left = 0
Top = 0
Caption = 'Form9'
ClientHeight = 286
ClientWidth = 426
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 0
Top = 0
Width = 426
Height = 245
Align = alClient
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
end
object Panel1: TPanel
Left = 0
Top = 245
Width = 426
Height = 41
Align = alBottom
TabOrder = 1
object CheckBoxActive: TCheckBox
Left = 8
Top = 6
Width = 97
Height = 17
Caption = 'Active'
TabOrder = 0
OnClick = CheckBoxActiveClick
end
end
object SQLConnection1: TSQLConnection
DriverName = 'Oracle'
GetDriverFunc = 'getSQLDriverORACLE'
LibraryName = 'dbxora30.dll'
Params.Strings = (
'DataBase=NameDataBase'
'User_Name='
'Password='
'BlobSize=-1'
'ErrorResourceFile='
'LocaleCode=0000'
'Oracle TransIsolation=ReadCommited'
'RowsetSize=20'
'OS Authentication=False'
'Multiple Transaction=False'
'Trim Char=False'
'Decimal Separator=.')
VendorLib = 'oci.dll'
Left = 200
Top = 104
end
object DataSource1: TDataSource
DataSet = SimpleDataSet1
Left = 288
Top = 104
end
object SimpleDataSet1: TSimpleDataSet
Aggregates = <>
Connection = SQLConnection1
DataSet.CommandText = 'select * From App_Parameters'
DataSet.MaxBlobSize = -1
DataSet.Params = <>
PacketRecords = 100
Params = <>
Left = 240
Top = 104
end
end