sql >> Database >  >> RDS >> Sqlserver

Delphi op Linux verbinden met SQL Server

Met RAD Studio kunt u een Delphi-applicatie bouwen voor zowel Windows- als Linux-platforms. U kunt bijvoorbeeld een ODBC-toepassing bouwen die gebruikmaakt van een Microsoft ODBC-stuurprogramma op Windows en een Easysoft ODBC-stuurprogramma op Linux. In de volgende zelfstudie, waarin wordt beschreven hoe u een consoletoepassing voor Linux maakt die SQL Server-gegevens ophaalt, zijn de componenten:

Windows Machine
---------------
RAD Studio

Linux Machine
-------------
Platform Assistant Server
Delphi Application
unixODBC Driver Manager
SQL Server ODBC Driver

Windows Machine
---------------
SQL Server
program SQLServer;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,
  FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
  FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.ODBC, FireDAC.Phys.ODBCDef,
  FireDAC.DApt, Data.DB, FireDAC.Comp.Client, FireDAC.ConsoleUI.Wait;

var
    RHConnection: TFDConnection;
    RHQuery: TFDQuery;
    sValue: String;

begin
  try
    RHConnection:=TFDConnection.Create(nil);
    RHConnection.Params.Add('DriverID=ODBC');
    RHConnection.Params.Add('DataSource=SQLSERVER_SAMPLE');
    RHConnection.Connected:=true;

    sValue := RHConnection.ExecSQLScalar('select ''SQL Server from Linux'' as test_col');
    Writeln(sValue);

    ReadLn;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
  1. Download het SQL Server ODBC-stuurprogramma voor 64-bits Linux-platforms. (Registratie vereist.)
  2. Installeer en licentieer het SQL Server ODBC-stuurprogramma op de computer waarop de Platform Assistant (PA Server) is of wordt geïnstalleerd.

    Zie de documentatie van het ODBC-stuurprogramma voor installatie-instructies.

    Opmerking U moet de unixODBC Driver Manager op uw computer hebben geïnstalleerd. De Easysoft-distributie bevat een versie van de unixODBC Driver Manager waarmee de Easysoft SQL Server ODBC-driver is getest. Het Easysoft driver setup programma geeft je de mogelijkheid om unixODBC te installeren.

  3. Maak een ODBC-gegevensbron in /etc/odbc.ini die verbinding maakt met de SQL Server-database waartoe u toegang wilt vanuit Delphi. Bijvoorbeeld:
    [SQLSERVER_SAMPLE]
    Driver          = Easysoft ODBC-SQL Server
    Server          = my_machine\SQLEXPRESS
    User            = my_domain\my_user
    Password        = my_password
    # If the database you want to connect to is the default
    # for the SQL Server login, omit this attribute
    Database        = Northwind
    
  4. Gebruik isql om de nieuwe gegevensbron te testen. Bijvoorbeeld:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Typ bij de prompt "help" om een ​​lijst met tabellen weer te geven. Druk op Return in een lege promptregel om af te sluiten.

    Als u geen verbinding kunt maken, raadpleeg dan dit artikel en de SQL Server ODBC Driver Knowledge Base voor hulp.

  1. Als je dit nog niet hebt gedaan, installeer dan de PA Server op de machine waarop je het SQL Server ODBC-stuurprogramma hebt geïnstalleerd.
  2. Stel de omgeving op deze machine zo in dat uw Delphi-programma de SQL Server ODBC-driver kan laden. Bijvoorbeeld:
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib:
    /usr/local/easysoft/unixODBC/lib
    export $LD_LIBRARY_PATH
    

    Start de PA-server. Bijvoorbeeld:

    cd ~/PAServer-19.0
    ./paserver
    

    Als u de unixODBC Driver Manager die is opgenomen in de SQL Server ODBC-stuurprogrammadistributie niet hebt geïnstalleerd, laat u /usr/local/easysoft/unixODBC/lib weg. van de waarde van de omgevingsvariabele.

  3. Maak in RAD Studio een nieuwe Delphi-consoletoepassing.
  4. Stel het doelplatform voor de toepassing in op 64-bit Linux.
  5. Bewerk de profieleigenschappen voor uw doelplatform om de details voor uw PA-server op te geven.
  6. Plaats de code die aan het begin van deze tutorial wordt getoond in de applicatie.
  7. Voer de applicatie uit.

  1. postgreSQL - psql \i:hoe script in een bepaald pad uit te voeren

  2. ORA-00911:ongeldig teken

  3. Een scheidingsteken toevoegen aan een aaneengeschakelde tekenreeks in MySQL - CONCAT_WS()

  4. Is het mogelijk om SqlGeography te gebruiken met Linq to Sql?