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
ODAC freezes IDE's interface
-
- Devart Team
- Posts: 925
- Joined: Thu 17 Nov 2005 10:53
I'm using Delphi 7 and ODAC 5.70.1.32 trial.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 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;
}
-
- Devart Team
- Posts: 925
- Joined: Thu 17 Nov 2005 10:53