PowerBuilder からNASA のデータに接続してみた

加藤龍彦
加藤龍彦
デジタルマーケティング
この記事では、CData API Driver for ADO.NET を使ってAppeon PowerBuilder から NASA のデータ にアクセスする方法を紹介します。



この記事では、CData API Driver for ADO.NET をPowerBuilder で使う方法を紹介します。これらの標準準拠コントロールは扱いやすく、Appeon PowerBuilder をはじめ、Microsoft .NET に対応したさまざまなプラットフォームや開発テクノロジーで利用できます。

この記事では、CData API Driver for ADO.NET を使って PowerBuilder からデータを取得する基本的なアプリケーションを作成する方法を紹介します。

  1. 新規WPF Window Application ソリューションで、接続プロパティに必要なすべてのビジュアルコントロールを追加します。一般的な接続文字列は次のとおりです:

    Profile=C:\profiles\NASA.apip;AuthScheme=APIKey;APIKey=YOUR_NASA_API_KEY

    API キー認証の設定

    ほとんどの NASA API エンドポイント(APOD、NeoWS、DONKI、TechTransfer)では、NASA API キーが必要です。https://api.nasa.gov で無料のキーを登録してください。デフォルトの DEMO_KEY ではアクセスが制限されます(1 時間あたり 30 リクエスト、1 日あたり 50 リクエスト)。登録済みのキーでは 1 時間あたり 1,000 リクエストが可能です。

    以下のエンドポイントは API キーが不要で、認証なしで利用できます:EONET(Earth Observatory Natural Event Tracker)、EPIC(Earth Polychromatic Imaging Camera)、NASA Image and Video Library、TechPort。

    API キーを取得したら、以下の接続プロパティを設定します:

    • AuthScheme:APIKey に設定します。
    • APIKey:NASA の API キーに設定します。簡単なテストには DEMO_KEY を使用します。

    接続文字列の例

    Profile=C:\profiles\NASA.apip;AuthScheme=APIKey;APIKey=YOUR_NASA_API_KEY
    

    NASA への接続

    認証を設定すると、NASA に接続して、AstronomyPictureOfDay、NearEarthObjectFeed、EonetEvents、NasaImageLibrary などの利用可能なテーブルからデータをクエリできます。

  2. .NET コントロールからDataGrid コントロールを追加します。
  3. DataGrid コントロールのカラムを設定します。Account テーブルからいくつかのカラムを以下に示します:
    
    <DataGrid AutoGenerateColumns="False" Margin="13,249,12,14" Name="datagrid1" TabIndex="70" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="idColumn" Binding="{Binding Path=Id}" Header="Id" Width="SizeToHeader" />
        <DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=}" Header="" Width="SizeToHeader" />
    		...
    	</DataGrid.Columns>
    </DataGrid>
    
  4. CData API Driver for ADO.NET アセンブリへの参照を追加します。

DataGrid 接続

ビジュアルエレメントが設定されたら、Connection、Command、およびDataAdapter のような標準のADO.NET オブジェクトを使ってSQL クエリの結果をDataTable に表示することができます:

System.Data.CData.API.APIConnection conn
conn = create System.Data.CData.API.APIConnection(connectionString)

System.Data.CData.API.APICommand comm
comm = create System.Data.CData.API.APICommand(command, conn)

System.Data.DataTable table
table = create System.Data.DataTable

System.Data.CData.API.APIDataAdapter dataAdapter
dataAdapter = create System.Data.CData.API.APIDataAdapter(comm)
dataAdapter.Fill(table)
datagrid1.ItemsSource=table.DefaultView

上のコードは、指定したクエリからDataGrid にデータをバインドできます。

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

API Driver で NASA のライブデータに接続

NASA に接続