さまざまなSQLデータベースにわたって互換性のあるDDL(作成テーブルを作成)?

StackOverflow https://stackoverflow.com/questions/4727799

質問

(現在)MS AccessとSQL Serverのバックエンドをサポートする必要があるデスクトップアプリケーションに取り組んでいます。アプリケーションは絶え間ない開発中であり、データベースに変更が頻繁に行われます。これは、主にテーブルとビューを追加して新しい機能をサポートするためのビュー(いくつかのドロップとテーブルを変更して新しい列を追加します)です。

DDLを実行可能ファイルにコンパイルするシステムがあり、データベースをチェックして、実行可能ファイルに実行する必要がある新しいDDLがあるかどうかを確認し、実行します。これは、単一のデータベースで正常に機能します。

私の当面の問題は、SQL ServerとAccessがデータ型の異なる名前を大きくサポートしているため、アクセスに対して実行されるテーブルステートメントの作成はSQL Serverに対して実行されないことです(または、さらに悪いことに、異なるデータタイプでテーブルを実行します)。

プロバイダーごとに個別のDDLを作成することなく、これらの両方のデータベースに対してADOを介して実行できるDDL(特にテーブルコマンドの作成)を作成するために使用できる方法はありますか?

役に立ちましたか?

解決

あなたはすでにADOを使用しているので、あなたは調べるべきです Microsoft Adox

これにより、基礎となるデータソースタイプに依存しないADOオブジェクトモデルを使用して、データソースの構造を操作できます。 IEは、明示的なDDLに頼らない

ADOXのサポートは、特定のADOプロバイダーによって保証されておらず、ADOXサポートのレベルは利用可能であっても異なる場合があります。しかし、MS AccessとMS SQL Serverの場合、必要なすべての機能を見つけると思います(そしておそらくそれ以上です!)

他のヒント

これは、DELPHIのDBXを使用して実行できます。

以下は、これがどのように行われるかを示すサンプルコードへのリンクです。http://cc.embarcadero.com/item/26210

同じ問題がありました。実行する前に、C PreproccessをSQLに適用することを解決しました。プリプロセッサには、異なるDBを処理するためのマクロが含まれています。

ステファノ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top