MyDAC 5.20.0.13 Embedded don't work with libmysqld.dll version 4 and 5 with innodb Tables

Discussion of open issues, suggestions and bugs regarding MyDAC (Data Access Components for MySQL) for Delphi, C++Builder, Lazarus (and FPC)
eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

MyDAC 5.20.0.13 Embedded don't work with libmysqld.dll version 4 and 5 with innodb Tables

Post by eduardosic » Fri 11 Jan 2008 21:01

Hi, i try to test mydac 5.20.0.13 Embedded with libmysqld.dll version
4 and 5 but with a innodb tables don't work..

i made a small project to demonstrate the two bug's.

http://www.drdsistemas.com/util/mydac/b ... ed_BUG.zip


see, images

Bug with Lib 4.1.12
Image

Bug with Lib 5.1.22rc
Image

MyDAC Version 5.20.0.13
Delphi 2007 with December 2007 Update.
MySQL Embedded Dll Versions 4.1.12a and 5.1.22rc

Please.. Fix it.. Embedded support is a VERY important Feature.

rsandies
Posts: 9
Joined: Mon 14 Aug 2006 12:55

Post by rsandies » Mon 14 Jan 2008 12:20

I am also having problems with 5.20.0.13 on embedded MYISAM tables. Connection problems, AVs, Memory leaks, etc. Everything works again after reverting to 0.12.

Tried a simple project with just a MyEmbConnection, query, ds, and grid.
Behavior the same.

Delphi 2007 on either XP and Vista.

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

?????

Post by eduardosic » Tue 15 Jan 2008 15:40

CoreLab Team ???

Antaeus ???

Dimon ???

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Wed 16 Jan 2008 12:48

We have reproduced problems with MyEmbConnection and fixed them. These fixes will be included in the next MyDAC build.

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

...

Post by eduardosic » Wed 16 Jan 2008 12:56

Dimon wrote:We have reproduced problems with MyEmbConnection and fixed them. These fixes will be included in the next MyDAC build.
Hi Dimon,

When the next Build will be released? in two months?

it is much time to wait. they make one release special to correct this problem.

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Post by Dimon » Thu 17 Jan 2008 10:04

In order to get the fix to this problem, please send us your registration information by e-mail at dmitryg*crlab*com.

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

...

Post by eduardosic » Thu 17 Jan 2008 10:30

Dimon wrote:In order to get the fix to this problem, please send us your registration information by e-mail at dmitryg*crlab*com.
Ok, i send..

i use a MyDAC professional..

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

Re: ...

Post by eduardosic » Tue 22 Jan 2008 16:42

eduardosic wrote:
Dimon wrote:In order to get the fix to this problem, please send us your registration information by e-mail at dmitryg*crlab*com.
Ok, i send..

i use a MyDAC professional..
Hi Dmitry

i install the fix.

The fix work's with libmysqld.dll version 4, but after closing a connection the ibdata file continues in use, it is only closed after leaving software.

with libmysqld.dll version 5 the fix don't work, it presents the same problem.

you can download my test project and test it

http://www.drdsistemas.com/util/mydac/b ... ed_BUG.zip

the dll version 4 and 5 are included.

Help-me

and

King Regard's

[email protected]
Posts: 6
Joined: Tue 08 Nov 2005 15:58

Same problem with MySQL lib 4.1 and MyDAC 5.20

Post by [email protected] » Thu 24 Jan 2008 08:55

Hi,

I also have the same issue after upgrading from MyDAC 4 to myDAC 5.20

error:
A call an mysql_server_init failed
Access violation at address 04DB0908 in modue libmysqld.dll. Read of address 00000000.

worked fine until upgrade of MyDAC to v5.20.0.13

Still using MySQL Embedded Dll Versions 4.1.12
BCB 6

any assistance on a fix for this would be appreciated.

thanks

Dimon
Devart Team
Posts: 2910
Joined: Mon 05 Mar 2007 16:32

Re: ...

Post by Dimon » Fri 25 Jan 2008 09:19

eduardosic wrote:The fix work's with libmysqld.dll version 4, but after closing a connection the ibdata file continues in use, it is only closed after leaving software.
MyDAC does not unload Embedded server every time after closing a connection because this is a very slow operation.
If you really need to release database files during your application is working, you should add the MySqlApi unit to the uses clause and execute this code:

Code: Select all

  MyAPIEmbedded.FreeMySQLLib;

[email protected]
Posts: 6
Joined: Tue 08 Nov 2005 15:58

Unable to get embedded working with any version

Post by [email protected] » Fri 25 Jan 2008 15:20

Hi,

I have been sent a fix which still doesn't work and have tried various combinations with the new MyDAC 5.20 and different versions of libmysqld.dll and still no joy. The main issue is that use a TMYConnection setup as embeded and a my.ini file everything was working but I wanted to use the TCRBAtchMove so need to upgrade to MyDAC 5.20. now neither the TMYConnection as embedded works or a new TMyEmbConnection. If anyone actually has this working with any version of libmysqld.dll and MyDAC v 5.20 i would be extremely grateful for information on parameters, directory / folder setups and locations and any .ini files etc that I could try and hopefully get Embedded MySQL working again.

many thanks in advance

C++ Builder 6
MySQL 4 & 5
MyDAC 5.20

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

Re: Unable to get embedded working with any version

Post by eduardosic » Sat 26 Jan 2008 05:16

[email protected] wrote:Hi,

I have been sent a fix which still doesn't work and have tried various combinations with the new MyDAC 5.20 and different versions of libmysqld.dll and still no joy. The main issue is that use a TMYConnection setup as embeded and a my.ini file everything was working but I wanted to use the TCRBAtchMove so need to upgrade to MyDAC 5.20. now neither the TMYConnection as embedded works or a new TMyEmbConnection. If anyone actually has this working with any version of libmysqld.dll and MyDAC v 5.20 i would be extremely grateful for information on parameters, directory / folder setups and locations and any .ini files etc that I could try and hopefully get Embedded MySQL working again.

many thanks in advance

C++ Builder 6
MySQL 4 & 5
MyDAC 5.20
Hi [email protected]

Dimon fix this problem, These fixes will be included in the next MyDAC build.

gives attention to use the libmysqld.dll Version 4 and corresponding the Share folder to this version, equally for version 5.1 of mysql

you can download a small sample of embedded Database

http://www.drdsistemas.com/util/mydac/emb.zip

bprasetio
Posts: 3
Joined: Mon 04 Feb 2008 23:12

MyDAC 5.20.0.13 Embedded don't work with innodb Tables

Post by bprasetio » Mon 04 Feb 2008 23:42

I am have also having problem accessing innodb tables with MyDAC 5.20.0.13, it seems the library did not find the innodb tables, even with new patch created / sent by Dimon / Dmitry Gerasimenko. The patch itself works well with MyISAM tables.

Dmitry said I have to include parameter --innodb in the TMyEmbConnection.Params, as he suggested, I've added it. But it did not work well in my code. It still did not find the innodb tables.

So here my code in case you want to look at, maybe I missed something.

the pas file

Code: Select all

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, MemDS, DBAccess, MyAccess, MyEmbConnection,
  StdCtrls;

type
  TForm1 = class(TForm)
    MyEmbConnection1: TMyEmbConnection;
    MyQuery1: TMyQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Edit1: TEdit;
    Button1: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
  MyQuery1.Close;
  MyEmbConnection1.Close;

  MyEmbConnection1.BaseDir := ExtractFilePath(Application.ExeName);
  MyEmbConnection1.DataDir := MyEmbConnection1.BaseDir + 'Data';
  MyEmbConnection1.Database := Edit1.Text;
  MyEmbConnection1.Open;
  MyQuery1.SQL.LoadFromFile('sql.sql');
  MyQuery1.Open;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  MyQuery1.Close;
  MyEmbConnection1.Close;
end;

end.
the dfm

Code: Select all

object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 290
  ClientWidth = 465
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  OnClose = FormClose
  DesignSize = (
    465
    290)
  PixelsPerInch = 96
  TextHeight = 13
  object DBGrid1: TDBGrid
    Left = 8
    Top = 32
    Width = 449
    Height = 250
    Anchors = [akLeft, akTop, akRight, akBottom]
    DataSource = DataSource1
    TabOrder = 0
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'Tahoma'
    TitleFont.Style = []
  end
  object Edit1: TEdit
    Left = 8
    Top = 5
    Width = 121
    Height = 21
    TabOrder = 1
    Text = 'Edit1'
  end
  object Button1: TButton
    Left = 135
    Top = 1
    Width = 90
    Height = 25
    Caption = 'Button1'
    TabOrder = 2
    OnClick = Button1Click
  end
  object MyEmbConnection1: TMyEmbConnection
    Database = 'mysql'
    Params.Strings = (
      '--datadir=data'
      '--innodb')
    Username = 'root'
    Password = ''
    LoginPrompt = False
    Left = 24
    Top = 16
  end
  object MyQuery1: TMyQuery
    Connection = MyEmbConnection1
    Left = 64
    Top = 16
  end
  object DataSource1: TDataSource
    DataSet = MyQuery1
    Left = 104
    Top = 16
  end
end
Thanks in advance.

eduardosic
Posts: 387
Joined: Fri 18 Nov 2005 00:26
Location: Brazil

Re: MyDAC 5.20.0.13 Embedded don't work with innodb Tables

Post by eduardosic » Tue 05 Feb 2008 00:34

"bprasetio"

Dmitry made two patches. it's work fine for me.

bprasetio
Posts: 3
Joined: Mon 04 Feb 2008 23:12

Post by bprasetio » Tue 05 Feb 2008 04:06

@eduardosic:
just to ensure, does my --innodb parameter declared in the right place correctly?


btw, I don't know which patches I've received. I've emailed Dmitry many times last night (my timezone) but the mailer daemon reported that the address can not be reached.

Post Reply