DAO3.5とDAO3.6の違いについて教えて

解決


マサ  2002-09-27 06:04:27  No: 76157

現在VB5、ACCESS97で開発をしています。
DAO3.5の環境でテーブルに新しいフィールドを追加したのですが、フィールドの最後尾ではなく、途中に作成されてしまいます。
同じコードでDAO3.6で実行すると最後尾に追加されます。
なにか違いがあるのでしょうか。
OSはDAO3.5がWIN98、DAO3.6がWinMEです。
なお、テーブルはフィールドの削除や追加を繰り返しています。

コードは以下の通りです。
 ALTER TABLE テーブル名 ADD COLUMUN フィールド名 TEXT(1)

どなたか、ご存知の方ご指導ください。
お願いします。


Say  2002-10-06 23:13:53  No: 76158

DAO3.5とDAO3.6の違いについてはMSDNで公開されていますが、
http://www.microsoft.com/japan/developer/library/default.asp

フィールドの物理的順序については触れられていません。
結果から「インプリメンテーションの違いだろう」と推定できます。
そもそもDBにおいて、フィールドやレコードの物理的順序、位置は
意味を持ちませんから、どこに追加するかはエンジン設計者の
実装仕様上の問題になります。

使う側からすれば、rs.Fields(0).Value のような
順序依存のコードを書かなければ特に問題ないでしょう。

詳しい事実関係を知りたかったら、
マイクロソフトに直接質問するしかないでしょうが、
特に公開する必要のない内部情報ですから、
その情報を必要とする(切迫した)理由を明らかに出来ないと、
たぶん教えてくれないでしょう。

ついでに言うなら、
>なお、テーブルはフィールドの削除や追加を繰り返しています。
これってテーブル設計に問題ありませんか?
一度仕様を決めたら、ふつうはめったに変更しないものです。


マサ  2002-10-10 05:58:02  No: 76159

Say様ありがとうございます。
ご指摘の通りと思います。
既存システムを引き継いでいる関係で、なかなか辛い部分があります。
rs.Field(n).valueも使われており、大々的に改修が必要なようです。
MSDNも読んでみます。
有難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加