TAzureTableManagement

提供: RAD Studio
移動先: 案内検索

Azure と DataSnap でのクラウド コンピューティング への移動


警告: DSAzure API は廃止予定とされており、Data.Cloud.AzureAPI に置き換わります。 クラウド コンピューティング アプリケーションの開発時には、新しい API を使用することをお勧めします。 詳細については、「DataSnap でのクラウド コンピューティング」を参照してください。

メモ: TAzureTableManagement コンポーネント、dclWindowsAzureManagement190.bpl パッケージをインストールしている場合にのみ、ツール パレットから利用可能です。このパッケージは、RAD Studio インストール フォルダの bin フォルダにあります。 TAzureTableManagement は、VCL アプリケーションでのみ利用可能です。

Azure テーブル コンポーネントは、TAzureQueueManagement よりも少し複雑ですが、設定方法は全く同じです。 最初に TAzureTableManagement コンポーネントをフォームにドロップしてから、接続文字列コンポーネントをドロップします。 必ず、接続情報を DSAzure.TAzureConnectionString に追加し、この 2 つのコンポーネントを接続してから、テーブル コンポーネントをアクティブにしてください。

アプリケーションの実行中にテーブル コンポーネントがアクティブになると、ルート ノードを右クリックして、新規テーブルを追加したり、テーブルのリストを更新できます。

メモ: テーブルに名前を付ける場合は、数字で始めてはいけません。最初の文字として許されているのは英文字だけです。 テーブル名は、前述のキュー名に対する命名ガイドラインに従いますが、名前にハイフン (-) を使用することはできません。

各テーブル ノードには、選択中のテーブルを削除したり、テーブルのデータを別のダイアログ ボックスに表示するためのコンテキスト メニュー項目もあります。 テーブル ノードをダブルクリックするか、Shift キーを押しながら Enter キーを押すことによって、このテーブル ダイアログを表示することもできます。

テーブル データ ダイアログ

テーブル データ ダイアログの左側には、すべてのテーブル行のリストが表示されます。 ある行を選択すると、右側のテーブルが自動的にインポートされます。 このテーブルのキーは、その行の列名になります。また、値はこのテーブルのセル(特定の行と列)に格納されている値になります。

メモ: Microsoft Azure のテーブルにはスキーマがありません。 つまり、テーブルの各行は、完全に固有の列セットを持つことができます。 たとえば、最初の行が 3 つの列を持ち、2 番目の行が 50 個の列を持つこともできます。 このテーブルを、標準的なデータベース テーブルのように動作させたい場合は、特定のスキーマを手動で適用する必要があります。

新規の行をテーブルに追加するには、左側のリストを右クリックし、新規エンティティの作成を選択します。 右側のテーブルは、RowKeyPartitionKey の 2 つの項目を利用してインポートされます。 これら 2 つの列は、すべてのテーブル行に必須です。 このようにして、行をテーブル内で一意に識別できます。 RowKeyPartitionKey の値を編集するには、これらを右クリックして、プロパティの編集を選択します。 このオプションは、新規の行を作成するときにだけ、RowKeyPartitionKey に対して利用できます。 行を一度コミットしたら、これらのプロパティの値を変更することはできません。

新規エンティティ(行)を追加するときに、右側のテーブルで選択できるもう 1 つのオプションは、新規プロパティの作成です。 これを実行すると、コンテキスト メニュー項目の編集と同じダイアログが表示されます。 このダイアログでプロパティの名前、値、およびデータ型を指定します。 無効な値を入力したり、値に適合しないデータ型を入力するリスクを軽減するために、基本的な検証はここで行われます。

メモ: たとえ入力時の検証をパスしても、新規の(または修正した)行をサーバーにコミットしようとしたときに、値とデータ型が適合しないエラーが発生する場合があります。 この場合は、コミットする前にその行に入力したデータが失われる可能性があります。

新規の行に変更を行った後で、その変更をサーバーに送信するには [コミット] を押します。

リストのフィルタリング

リストのフィルタリングは、テーブル データ ダイアログの左側のリストに対して実行可能なもう 1 つのアクションです。

テーブル行リストの上にフィルタ フィールドがあることに注目してください。 値を入力して、Enter キーを押すと、それを検証できます。 このようにして、RowKey または PartitionKey のいずれかにその値を持つ行だけを表示するようにリストをフィルタリングします。 ただし、Azure REST API では、部分一致やワイルドカードはサポートされません。したがって、入力する値は完全に一致するものでなければなりません。

その行の 1 つ以上の列(プロパティ)と一致させたい場合は、ADVANCED FILTER オプションを使用できます。 TAzureTableManagement コンポーネントには、AdvancedFilterPrefix というプロパティがあります。このプロパティのデフォルト値は ~ です。 テーブル データ ダイアログのフィルタ フィールドには、次のように入力できます。

~RowKey eq '1' and PartitionKey eq '1'

このようにして、PartitionKeyRowKey だけでなく、任意の列と一致させることができます。 列のデータ型が文字列の場合は、フィルタ内の値を一重引用符で囲む必要があります。 数字の場合は、引用符を使用してはいけません。 RowKeyPartitionKey は常に文字列型です。

行のインポート

行をインポートするには、エンティティをインポートするためのコンテキスト メニュー項目を選択する必要があります。これによって、行の読み込み元のテキスト ファイルを選択できます。 このテキスト ファイルは、その内容として単一の JSON 値を持っていなければなりません。

このファイルの形式は次のようになります。

[
{"RowKey":"row1","PartitionKey":"Imported","AnyKeyName":"Hello World!"},
{"RowKey":"row2","PartitionKey":"Imported","UniqueKey1":["68","Edm.Int64"]},
{"RowKey":"row3","PartitionKey":"Imported","AnotherKey":["3.14","Edm.Double"]},
{"RowKey":"row4","PartitionKey":"Imported","OtherValue":["true","Edm.Boolean"]}
]

上に示した形式は JSON 配列を記述したものです。この配列の各項目は、1 つのJSON オブジェクトです。 各 JSON オブジェクトは、RowKeyPartitionKey に対応するプロパティを含んでいなければなりません。 その他のすべてのプロパティは、キーを持っており、そのキーはテーブル列の命名規約に従う文字列です。 キーの値は、文字列(その列が文字列データ型)、またはサイズが 2 の JSON 配列(インデックス 0 の値は、列の値の文字列表現、インデックス 1 の値は列のデータ型)です。

メモ: テキスト ファイルから 1 つ以上の行をインポートできない場合、そのテキストはスキップされて、残りの行に対して処理が継続されます(残りの行をインポートできる場合)。 つまり、すべてか無かのインポートではありません。

関連項目