Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere サーバー SQL の使用法 » リモートデータとバルクオペレーション » リモートデータアクセスのサーバークラス » ODBC ベースのサーバークラス » サーバークラス odbc

 

Microsoft Excel (Microsoft 3.51.171300)

Excel で、それぞれの Excel ブックはいくつかのテーブルを持つデータベースであると、論理的に考えられます。テーブルはブック内でシートにマッピングされます。ODBC ドライバーマネージャーで ODBC データソース名を設定する場合は、そのデータソースに関連付けられたデフォルトのブック名を指定します。ただし、CREATE TABLE 文を実行する場合には、デフォルトを無効にしてロケーションの文字列にブック名を指定できます。これによって、1 つの ODBC DSN を使用してすべての Excel ブックにアクセスできます。

この例では、excel という名前のリモートサーバーが作成されています。mywork というシート (テーブル) を持つ work1.xls というブックを作成するには、次のようにします。

CREATE TABLE mywork (a int, b char(20))
AT 'excel;d:\work1.xls;;mywork';

2 番目のシート (テーブル) を作成するには、次のような文を実行します。

CREATE TABLE mywork2 (x float, y int)
AT 'excel;d:\work1.xls;;mywork2';

CREATE EXISTING 文を使用して、既存のワークシートを SQL Anywhere にインポートできます。ここでは、スプレッドシートの最初のローには、カラム名が入ることを前提としています。

CREATE EXISTING TABLE mywork
AT'excel;d:\work1;;mywork';

SQL Anywhere によって、テーブルが見つからないと表示された場合は、マッピングするカラムとローの範囲を明示的に指定する必要があります。次に例を示します。

CREATE EXISTING TABLE mywork
AT 'excel;d:\work1;;mywork$';

シート名に $ を追加すると、ワークシート全体が選択されることを示します。

AT で指定するロケーションの文字列で、フィールドセパレーターとしてピリオドの代わりにセミコロンが使用されていることに注意してください。これは、ファイル名にピリオドが使用されるためです。Excel では所有者名フィールドをサポートしないので、これはブランクのままにしてください。

削除はサポートされていません。また、Excel ドライバーは位置付け更新をサポートしないため、更新も可能でない場合があります。