掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     MSAccess のデータ型について


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
未登録ゲスト
投稿日時: 2006-5-18 16:59

MSAccess のデータ型について

MSAccess 2003(以下、Access) のテーブル定義を EA のテーブルクラスを用いて定義しています。

質問
 1)データ型としてSMALLINT(整数型)の定義はどれを利用すれば良いでしょうか。
 2)データ型としてLong Integer(長整数型)を定義し【DDLの生成】を行った場合、
  SQL文で【Long Integer】として定義されエラーとなります。
  なお、Integer または、Long を利用すると(長整数型)を定義できます。

検証方法
 ・【DDLの生成】の出力結果をAccessのクエリに貼り付けて実行 / 改行コードは見やすくするために削除
  Integer出力例:CREATE TABLE Table1 ( test Integer);
  Long Integer出力例:CREATE TABLE Table1 ( test Long Integer);

補足
Accessでテーブルをデザインモードでフィールドを定義する場合
 データ型を【整数型】に設定し、【標準】タブで定義する【フィールサイズ】のヘルプ(f1キー)を見ると、設定値として、【Integer/整数型】、【Long Integer/長整数型】等 と記述されています。

Microsoft Jet の SQL では
 【Integer/整数型】は【SMALLINT】、【Long Integer/長整数型】は 【INTEGER】と言う定義になります。
 なお、【LONG】は【INTEGER】の別名として定義されています。

このあたりが怪しいと思っています。
よろしくお願いいたします。
tkouno
投稿日時: 2006-5-22 11:26
EA Administrator
投稿: 3939

Re: MSAccess のデータ型について

ご質問に回答させていただきます。

1. SmallIntの定義がない場合、定義を追加すると問題ないようです。
(Access2002になりますが、うまく行くことを確認しました。)
「設定」→「データベースのデータ型」でSmallIntを追加してください。

2. Long Integerではエラーになるようです。LongあるいはIntegerを利用すると、問題ないようです。


こちらで調査した結果、
・SmallIntが定義されていない
・ODBC経由で読み込むと、SmallIntはIntegerになる
という2点が問題であるように思いました。

お手数をおかけしてしまい申し訳ございませんが、修正までは
上記のようにSmallIntを定義し、回避してくださいますよう
よろしくお願いします。

ご迷惑をおかけし申し訳ございません。


未登録ゲスト
投稿日時: 2006-5-23 14:04

Re: MSAccess のデータ型について

ご対応ありがとうございます。

SmallIntの定義を追加することで、Access2003で問題なく動作する事を確認いたしました。

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ