ODAC freezes IDE's interface

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Matteo

ODAC freezes IDE's interface

Post by Matteo » Wed 31 May 2006 12:19

Ok, another question for you (and thanks for the prev quickly answers!):

I've installed ODAC and I'm using it in a test program, without problem.

So I've decided to turn to ODAC in the main application. I put only the uses clauses (Oracle, OracleData, MemDS, DBAccess, Ora) in the project's main form and I run the app.
Everything run perfect but when I close the application (or I press CTRL+F2) Delphi freezes and there is no way to work but killing it with Windows Task Manager.

I've tried and I've discovered that the problem is something in the Ora unit and only when I add Ora to the uses clause Delphi stop to work closing the application.
Could be something wrong with a control routine in the trial version?
Or some known problems with other commercial components (TMS packages, JVCL,...)?

Thanks in advance,

Matteo

Challenger
Devart Team
Posts: 925
Joined: Thu 17 Nov 2005 10:53

Post by Challenger » Wed 31 May 2006 12:45

We didn't face similar problems. Please specify the version of Delphi and ODAC you use. If it is possible try
to compose a sample project that demonstrates this problem.

Matteo

Post by Matteo » Thu 01 Jun 2006 08:04

challenger wrote:We didn't face similar problems. Please specify the version of Delphi and ODAC you use. If it is possible try
to compose a sample project that demonstrates this problem.
I'm using Delphi 7 and ODAC 5.70.1.32 trial.
I think the problem occours when I use the LoadLibrary() function to load an external BC++ DLL.
I've tried the following example: a sample form and an empty dll.


The Unit1.pas code:

Code: Select all

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, StdCtrls, Ora;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    h : THANDLE;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  h := LoadLibrary(PAnsiChar(ExtractFilePath(Application.ExeName)+'\project2.dll'));
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  FreeLibrary(h);
end;

end.

The DLL unit1.cpp code:

Code: Select all

#include 
#include 
#pragma hdrstop
#include "Unit1.h"
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
  return 1;
}
//---------------------------------------------------------------------------

int prova()
{
  return 0;
}

Challenger
Devart Team
Posts: 925
Joined: Thu 17 Nov 2005 10:53

Post by Challenger » Thu 01 Jun 2006 11:59

We couldn't reproduce this problem. Please send to ODAC support address complete sample that demonstrates the problem.

Post Reply