Console Application?

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
99Percent
Posts: 48
Joined: Tue 13 Sep 2005 05:34

Console Application?

Post by 99Percent » Wed 14 Oct 2009 15:58

How do I write a console application using UniDAC? Is it possible?

I am trying something like this:

Code: Select all

unit UnitEmailReporter;

interface

procedure Connect;

implementation

uses Uni, UniProvider;

var
  UniConCajaConnection : TUniConnection;
  MSSQLUniProvider : TSQLServerUniProvider;

procedure Connect;
begin
  UniConCajaConnection:=TUniConnection.Create(nil);
  MSSSQLUniProvider : TSQLServerUniProvider.Create(nil);
  try
    with UniConCajaConnection do
    begin
      Server:='myserver.com';
      UserName:='sa';
      Password:='MyPassword';
      Database:='MyDatabase';
      ProviderName:='SQL Server';
      Connect;
    end;
    WriteLn('Connected!');
  finally
    UniConCajaConnection.Free;
    MSSSQLUniProvider.Free;
  end;
end;

end.
But I get this error: Undeclared Identifier: 'TSQLServerUniProvider'

tobias_cd
Posts: 56
Joined: Thu 18 Dec 2008 22:10

Post by tobias_cd » Wed 14 Oct 2009 20:42

Add "SQLServerUniProvider" to your uses clause.

99Percent
Posts: 48
Joined: Tue 13 Sep 2005 05:34

Post by 99Percent » Wed 14 Oct 2009 22:16

Thanks that solved the compile error.

But now I am getting a runtime exception:
"Class EOLEDBError with message 'OLE DB error occured. Code 800401F0h. CoInitialize has not been called.'"

Code: Select all

unit UnitEmailReporter;

interface

procedure Connect;

implementation

uses Uni, UniProvider, SQLServerUniProvider;

var
  UniConCajaConnection : TUniConnection;
  MSSQLUniProvider : TSQLServerUniProvider;

procedure Connect;
begin
  UniConCajaConnection:=TUniConnection.Create(nil);
  MSSQLUniProvider:=TSQLServerUniProvider.Create(nil);
  try
    with UniConCajaConnection do
    begin
      Server:='Myserver.com';
      UserName:='sa';
      Password:='MyPassword';
      Database:='MyDatabase';
      ProviderName:='SQL Server';
      Connect;
    end;
    WriteLn('Connected!');
  finally
    UniConCajaConnection.Free;
    MSSQLUniProvider.Free;
  end;
end;

end.

malinsky
Posts: 32
Joined: Wed 20 Aug 2008 11:38

Post by malinsky » Thu 15 Oct 2009 06:14

Hi,

add uses "ActiveX" a initialization section with CoInitialize(nil);

PMal

99Percent
Posts: 48
Joined: Tue 13 Sep 2005 05:34

Post by 99Percent » Thu 15 Oct 2009 22:13

That did it. Works wonderfully. Thanks.

Post Reply