Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#1

DB2 odbc unter Linux

  Alt 13. Apr 2017, 09:27
Hat das jemand bereits zum Laufen gebracht? In der 64-bit Windows Variante funktioniert es, bei Linux kommt es zu Fehlern bei der Initialisierung:

Code:
Im Projekt hello ist eine Exception der Klasse EODBCNativeException mit der Meldung '[FireDAC][Phys][ODBC][IBM][CLI Driver] CLI0133E Option type out of range. SQLSTATE=HY092' aufgetreten.
Zugriff über die IBM CLI db2 funktioniert.


Delphi-Quellcode:
program hello;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,
  Data.DB,
  FireDAC.Stan.Def,
  FireDAC.Phys.DB2,
  FireDac.Comp.Client,
  FireDAC.Stan.Consts,
  System.IOUtils;

var
  Connection : TFDConnection;
  Link : TFDPhysDB2DriverLink;
begin
  {$ifdef LINUX}
  Link := TFDPhysDB2DriverLink.Create(nil);
  Link.VendorHome := TPath.Combine(TPath.GetHomePath, 'sqllib/lib64');
  Link.VendorLib := 'libdb2.so';
  writeln(Link.VendorHome);
  {$endif}
  Connection := TFDConnection.Create(nil);
  try

    Connection.Params.DriverID := 'DB2';
    Connection.Params.Values['Server'] := '<xx.xxx.xx.xx>';
    Connection.Params.Values['Port'] := '50000';
    Connection.Params.Values['Protocol'] := 'TCPIP';
    Connection.Params.Values['Database'] := '<dbname>';
    Connection.Params.Values['User_Name'] := '<user>';
    Connection.Params.Values['Password'] := '<password>';

    Connection.Connected := True;
    writeln('Connected');
    Readln;
  except
    on E: Exception do
      writeln(E.ClassName, ': ', E.Message);
  end;
  Connection.Free;
end.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat