Page 1 of 1

Access Violation on Table Open

Posted: Thu 14 Sep 2017 16:19
by WKP
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 ?

Re: Access Violation on Table Open

Posted: Tue 19 Sep 2017 14:40
by ViktorV
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.