Delphi のSharePoint Excel Services のデータへのデータバインドコントロール

古川えりか
古川えりか
コンテンツスペシャリスト
標準のデータアクセスコンポーネントとコントロールを備えたDelphi のSharePoint Excel Services にデータバインドします。

CData ODBC Driver for ExcelServices は、ODBC 標準をサポートし、リアルタイムSharePoint Excel Services のデータとビジュアルフォームデザイナおよびDelphi の他のラピッド開発ツールとの統合を可能にします。ODBC ドライバーは、データベース開発用のシングルAPI を提供することにより、Delphi のような単一のコードベースを共有するアプリケーションのデータアクセス戦略を簡素化します。この記事では、SharePoint Excel Services に接続してシンプルなVisual Component Library (VCL) アプリケーションおよびDelphi コードからデータをクエリする方法を説明します。

CData ODBC ドライバとは?

CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。

  1. SharePoint Excel Services をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
  2. 多様なアプリケーション、ツールにSharePoint Excel Services のデータを連携
  3. ノーコードでの手軽な接続設定
  4. 標準 SQL での柔軟なデータ読み込み・書き込み

CData ODBC ドライバでは、1.データソースとしてSharePoint Excel Services の接続を設定、2.Delphi 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。

CData ODBC ドライバのインストールとSharePoint Excel Services への接続設定

まずは、本記事右側のサイドバーからExcelServices ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。

未指定の場合は、初めにODBC DSN (data source name) で接続プロパティを指定します。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC Data Source Administrator を使用して、ODBC DSN を作成および構成できます。

ワークブックへの接続

どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。

  • Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
  • Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。

テーブルとしてのスプレッドシートデータへの接続

CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。

API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。

  • OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
  • REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。

DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。

SharePoint オンプレミスへの接続

URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。

SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUserPassword を設定してください。

Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。

    Windows(NTLM)

    最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUserPassword を設定して接続してください。

    その他の認証方法については、ヘルプドキュメントの「はじめに」をご覧ください。

    以下のステップに従ってData Explorer を使用し、SharePoint Excel Services へのFireDAC 接続を作成できます。

    1. 新しいVCL Forms アプリケーションの[Data Explorer]で[FireDAC]ノードを展開します。
    2. [Data Explorer]で[ODBC Data Source]ノードを右クリックします。
    3. [Add New Connection]をクリックします。
    4. 接続の名前を入力します。
    5. 表示される[FireDAC Connection Editor]で、[DataSource]プロパティをODBC DSN for ExcelServices の名前に設定します。
    A FireDAC connection to the ODBC data source.(Salesforce is shown.)

    SharePoint Excel Services のデータに接続できるVCL アプリケーションの作成

    以下のステップに従って、クエリの結果をグリッドに表示するシンプルなVCL アプリケーションからSharePoint Excel Services のクエリの実行を開始します。

    1. TFDConnection コンポーネントフォームにドロップし、以下のプロパティを設定します。

      • ConnectionDefName:SharePoint Excel Services へのFireDAC 接続を選択します。
      • Connected:メニューから[True]を選択し、表示されるダイアログで資格情報を入力します。
    2. TFDQuery コンポーネントをフォームにドロップし、以下のプロパティを設定します。

      • Connection:コンポーネントがまだ指定されていない場合は、このプロパティを[TFDConnection]コンポーネントに設定します。
      • SQL:[SQL]プロパティ内のボタンをクリックし、クエリを入力します。例:

        SELECT Name, AnnualRevenue FROM Account
        
      • Active:このプロパティをtrue に設定します。
    3. TDataSource コンポーネントをフォームにドロップし、以下のプロパティを設定します。

      • DataSet:このプロパティのメニューで、TFDQuery コンポーネントの名前を選択します。
    4. TDBGrid コントロールをフォームにドロップし、以下のプロパティを設定します。

      • DataSource:TDataSource の名前を選択します。
    5. 実行時エラーを回避するために、TFDGUIxWaitCursor をフォームにドロップします。
    Components in FireDAC used to databind an editable grid to the data source.(Salesforce is shown.)

    FireDAC コンポーネントを使用してSharePoint Excel Services へのコマンドを実行

    TFDConnection およびTFQuery コンポーネントを使用してSharePoint Excel Services へのクエリを実行できます。このセクションでは、TFQuery コンポーネントを使用してクエリを実行するSharePoint Excel Services 固有の例を示します。

    SharePoint Excel Services のデータに接続

    データソースに接続するには、TFDConnection コンポーネントの[Connected]プロパティをtrue に設定します。コードでも同じプロパティを設定できます。

    FDConnection1.ConnectionDefName := 'myexcelservices';
    FDConnection1.Connected := true;
    

    パラメータクエリの作成

    パラメータ化されたリソースはパフォーマンスを向上させることができます。ステートメントの準備は、システムリソースと時間の面でコストがかかります。ステートメントの準備中、接続がアクティブで開いている必要があるためです。FireDACはデフォルトで、同じクエリが何度もリコンパイルされないようにクエリを準備します。ステートメントの準備を無効にするには、ResourceOptions.DirectExecute を[True]に設定します。クエリを一回だけ実行する必要がある場合などに設定します。

    クエリの実行

    select クエリなど、結果セットを返すクエリを実行するには、Open メソッドを使用します。Open メソッドは、クエリを実行して結果セットを返し、それを開きます。クエリが結果セットを生成しない場合、Open メソッドはエラーを返します。

    FDQuery1.Open('select * from Account where Industry = :Industry',['Floppy Disks']);
    

    おわりに

    このようにCData ODBC ドライバと併用することで、270を超えるSaaS、NoSQL データをコーディングなしで扱うことができます。30日の無償評価版が利用できますので、ぜひ自社で使っているクラウドサービスやNoSQL と合わせて活用してみてください。

    CData ODBC ドライバは日本のユーザー向けに、UI の日本語化、ドキュメントの日本語化、日本語でのテクニカルサポートを提供しています。

はじめる準備はできましたか?

SharePoint Excel Services ODBC Driver の無料トライアルをダウンロードしてお試しください:

 ダウンロード

詳細:

SharePoint Excel Services Icon SharePoint Excel Services ODBC Driver お問い合わせ

Excel Services ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなExcel Services データに接続できるパワフルなツールです。標準のODBC ドライバーインターフェースを使用して、データベースのようにSharePoint サーバーでホストされているExcel スプレッドシートデータにアクセスし、データ連携を実行できます。