Ubuntu からSQL ServerにODBC接続

  • 0
    いいね
  • 0
    コメント

    UbuntuのFireDACからAWS(RDS)上のSQL Server Express(2016 13.00)に接続

    IDE(Windows)側で、コンソール アプリケーション 新規作成

    メニューから[ファイル]→[新規作成]→[その他]
    [Delphi プロジェクト]→[コンソール アプリケーション]を選びます。
    2017-05-031113.png

    Delphiコードだけのシンプルなプロジェクトが作成されます。
    [ターゲットプラットフォームの追加]→[64ビット Linux]を選択
    2017-05-031125.png

    Linux SDK のインストール,接続プロファイルの作成については下記のURLを参考にしてください。
    http://qiita.com/mojeld/items/7d7e15b6c000b6584af0
    http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Linux_アプリケーション開発
    プロジェクトは「sql_server_connection.dpr」と言う名前で保存しました。

    データモジュール追加

    プロジェクトに「データ モジュール」を追加します。
    メニューから[ファイル]→[新規作成]→[その他]を選択し
    [Delphi ファイル]→[データ モジュール]を選んで[OK]をクリックします
    空のデータモジュールが完成します。
    2017-05-031135.png

    TFDConnection接続設定

    データ モジュールにTFDConnectionを配置します。
    2017-05-041227.png

    2017-05-041230.png

    User_Name=ユーザー名
    Password=
    Server=*.*.ap-northeast-1.rds.amazonaws.com
    DriverID=MSSQL
    

    データセット側コード

    Unit1.pas
    function TDataModule1.get_sql_date: TDateTime;
    var
      query_: TFDQuery;
    begin
      query_  := TFDQuery.Create(Self);
      try
        query_.Connection := FDConnection1;
        query_.SQL.Text   := 'select getdate() as d_';
        query_.Active     := True;
        Result  := query_.FieldByName('d_').AsDateTime;
    
      finally
        query_.DisposeOf;
      end;
    end;
    

    メイン側コード

    sql_server_connection.dpr
    
    uses
      System.SysUtils,
      Unit1 in 'Unit1.pas' {DataModule1: TDataModule};
    
    var
      s_: String;
    begin
      try
        try
          DataModule1 := TDataModule1.Create(nil);
          s_          := DateTimeToStr(DataModule1.get_sql_date);
          Writeln(s_);
        finally
          DataModule1.DisposeOf;
        end;
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
    end.
    

    結果

    SQL Serverからgetdate()を取得できました。
    2017-05-041320.png

    参考URL

    https://community.embarcadero.com/blogs/entry/ubuntu-firedac-ms-sql-server-rds-japan