sql >> Database teknologi >  >> RDS >> Sqlserver

Tilslutning af Delphi på Linux til SQL Server

RAD Studio giver dig mulighed for at bygge en Delphi-applikation til både Windows- og Linux-platforme. Du kan for eksempel bygge en ODBC-applikation, der bruger en Microsoft ODBC-driver på Windows og en Easysoft ODBC-driver på Linux. I følgende selvstudie, som beskriver, hvordan man opretter en konsolapplikation til Linux, der henter SQL Server-data, er komponenterne:

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 SQL Server ODBC-driveren til 64-bit Linux-platforme. (Registrering påkrævet.)
  2. Installer og licenser SQL Server ODBC-driveren på den maskine, hvor Platform Assistant (PA Server) er eller vil blive installeret.

    Se ODBC-driverdokumentationen for installationsinstruktioner.

    Bemærk Du skal have unixODBC Driver Manager installeret på din maskine. Easysoft-distributionen inkluderer en version af unixODBC Driver Manager, som Easysoft SQL Server ODBC-driveren er blevet testet med. Easysoft-driveropsætningsprogrammet giver dig mulighed for at installere unixODBC.

  3. Opret en ODBC-datakilde i /etc/odbc.ini, der forbinder til den SQL Server-database, du vil have adgang til fra Delphi. For eksempel:
    [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. Brug isql til at teste den nye datakilde. For eksempel:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v SQLSERVER_SAMPLE
    

    Ved prompten skal du skrive "hjælp" for at få vist en liste over tabeller. For at afslutte skal du trykke på retur i en tom promptlinje.

    Hvis du ikke kan oprette forbindelse, skal du se denne artikel og SQL Server ODBC Driver Knowledge Base for at få hjælp.

  1. Hvis du ikke allerede har gjort det, skal du installere PA-serveren på den maskine, hvor du har installeret SQL Server ODBC-driveren.
  2. Indstil miljøet på denne maskine, så dit Delphi-program kan indlæse SQL Server ODBC-driveren. For eksempel:
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/easysoft/sqlserver:/usr/local/easysoft/lib:
    /usr/local/easysoft/unixODBC/lib
    export $LD_LIBRARY_PATH
    

    Start PA-serveren. For eksempel:

    cd ~/PAServer-19.0
    ./paserver
    

    Hvis du ikke installerede unixODBC Driver Manager, der er inkluderet i SQL Server ODBC-driverdistributionen, skal du udelade /usr/local/easysoft/unixODBC/lib fra miljøvariabelværdien.

  3. Opret en ny Delphi-konsolapplikation i RAD Studio.
  4. Indstil målplatformen for applikationen til at være 64-bit Linux.
  5. Rediger profilegenskaberne for din målplatform for at angive detaljerne for din PA-server.
  6. Indsæt koden vist i starten af ​​denne øvelse i applikationen.
  7. Kør applikationen.

  1. Forhindrer SELECT FOR UPDATE, at andre forbindelser indsættes, når rækken ikke er til stede?

  2. ScaleGrid DigitalOcean Support til MySQL, PostgreSQL og Redis™ nu tilgængelig

  3. Sådan bruges STRCMP() til at sammenligne 2 strenge i MySQL

  4. Betydningen af ​​Oracles dump(systimestamp) bytes