Access Violation on Table Open

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for MySQL in Delphi and C++Builder
Post Reply
WKP
Posts: 1
Joined: Thu 14 Sep 2017 15:27

Access Violation on Table Open

Post by WKP » Thu 14 Sep 2017 16:19

I am getting a Access Violation error 007AC8DF in module read of address 00000000on Table Open when running my program on 32 Bit Win 7, program runs fine on 64 bit Pc's & servers
using
Delphi XE10.0
have used both with fields predefined and not
have used both with std Strings and Wide Strings
and using different connection methods

MyIbisConnection.DriverName := 'DevartMySQL';
and
MyIbisConnection.DriverName := 'DevartMySQLDirect';

just use 32 Bit Version of dbexpmda40.dll ver 6.9.13.0 2017-04-18

getting the same error with demo devart program BlobPics
on 64 bit PC/ Server ok 32 Bit Win 7 PC error as above

Any Ideas ?

ViktorV
Devart Team
Posts: 2387
Joined: Wed 30 Jul 2014 07:16

Re: Access Violation on Table Open

Post by ViktorV » Tue 19 Sep 2017 14:40

When investigating, we found out that this error is not related to dbExpress driver for MySQL functionality, but to midas.dll. The error occurs if the old version of midas.dll is used. You can check it by executing the following code:

Code: Select all

program TestMidas;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Uni,
  DB,
  DBClient;
var
  DataSet: TClientDataSet;
  F_INT: TField;
  FieldDef: TFieldDef;
begin
  DataSet := TClientDataSet.Create(nil);;
  try
    FieldDef := DataSet.FieldDefs.AddFieldDef();
    FieldDef.Name := 'F_INT';
    FieldDef.DataType := ftInteger;

    F_INT := TIntegerField.Create(DataSet);
    F_INT.FieldName := 'F_INT';
    F_INT.Dataset := DataSet;

    try
      DataSet.CreateDataset;
    except
      on E: Exception do
        Writeln(E.Message);
    end;
  finally
    DataSet.Free;
    Writeln('Ok');
    Readln;
  end;
end.
To solve the issue, you should use a correct version of midas.dll.

Post Reply