C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: MDBリレーションシップの削除方法


(過去ログ 114 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■67445 / inTopicNo.1)  MDBリレーションシップの削除方法
  
□投稿者/ なるる♪ (1回)-(2013/08/03(Sat) 17:25:03)

分類:[.NET 全般] 

お世話になります。なるる♪と申します。

C#にてMDBファイルを操作するアプリケーションを作成しています。
MDBファイル内でテーブル間に設定されているリレーションシップ
を削除する処理を組み込みたいのですが、方法がよくわからず
困っています。ADOXでやるのかなぁと探しているのですが。

よい手法、サンプルなどご存知でしたらご教示いただけないでしょうか。

Windows7 Vs2010 C# or vb.net

よろしくお願いします m(__)m

              なるる♪
引用返信 編集キー/
■67446 / inTopicNo.2)  Re[1]: MDBリレーションシップの削除方法
□投稿者/ 魔界の仮面弁士 (281回)-(2013/08/03(Sat) 17:51:19)
No67445 (なるる♪ さん) に返信
> MDBファイル内でテーブル間に設定されているリレーションシップ
> を削除する処理を組み込みたいのですが、方法がよくわからず

ALTER TABLE Table1 DROP CONSTRAINT Relation1
などを発行してみては如何でしょう。

http://support.microsoft.com/kb/291539/ja
http://msdn.microsoft.com/en-us/library/office/bb243835.aspx
引用返信 編集キー/
■67449 / inTopicNo.3)  Re[2]: MDBリレーションシップの削除方法
□投稿者/ なるる♪ (2回)-(2013/08/03(Sat) 19:03:22)
2013/08/03(Sat) 19:07:30 編集(投稿者)
2013/08/03(Sat) 19:07:19 編集(投稿者)
2013/08/03(Sat) 19:07:14 編集(投稿者)

魔界の仮面弁士様
お世話になります。
早速のご回答、ありがとうございます。
該当ページなどを参照しておりますが、不明点があり、教えていただけないでしょうか。

> ALTER TABLE Table1 DROP CONSTRAINT Relation1
このRelation1 にはリレーションの名称のようなものをいれるのでしょうか?

作ろうとしているのは以下のような処理です。

1.フォルダに含まれるMDBファイルすべてについて、ワークフォルダにコピーする。
2.ワーク配下のすべてのMDBについて、中のデータをすべて削除して、カラの作業用MDB
  ファイルを作成する。
  ※データを削除するため、すべてのリレーションを削除したいです。
  ※ワーク用なのでリレーションは不要です。


上記のような感じなので、MDBからすべてのリレーションを取得して削除していくようしたいのですが、どのようにすれば、Relation1に該当する情報が取得できますでしょうか。

お手数ですが、よろしくお願いします。

                          なるる♪
引用返信 編集キー/
■67450 / inTopicNo.4)  Re[3]: MDBリレーションシップの削除方法
□投稿者/ 魔界の仮面弁士 (282回)-(2013/08/03(Sat) 22:02:59)
No67449 (なるる♪ さん) に返信
> 1.フォルダに含まれるMDBファイルすべてについて、ワークフォルダにコピーする。
> 2.ワーク配下のすべてのMDBについて、中のデータをすべて削除して、カラの作業用MDB
>   ファイルを作成する。
>   ※データを削除するため、すべてのリレーションを削除したいです。
>   ※ワーク用なのでリレーションは不要です。

View、Module、Report 等も必要なら、確かにファイルごとコピーしてからの
テーブル削除ということになるとは思いますが、必要なのがテーブルだけであって、
データもリレーションも不要であるならば、CREATE TABLE だけで済む気がします。

また、キー情報さえも不要であるならば、
 SELECT * INTO [C:\DEST\Output.mdb].[Table1] FROM [Table2] WHERE 1=0
を使うという手法もあります。


> どのようにすれば、Relation1に該当する情報が取得できますでしょうか。
DAO の Containers コレクション経由で、"Relationships" の Container を得て、
そこから Documents を列挙すれば、リレーションシップを列挙できたと思います。
(明示的に名前を付けていなかった場合、Name が GUID を返す可能性があります)

ADOX の場合は、Table オブジェクトの Keys プロパティから参照整合性キーを
取得してください。外部参照は .Type = adKeyForeign です。
引用返信 編集キー/
■67455 / inTopicNo.5)  Re[4]: MDBリレーションシップの削除方法
□投稿者/ なるる♪ (4回)-(2013/08/04(Sun) 00:04:49)
2013/08/04(Sun) 00:05:02 編集(投稿者)

魔界の仮面弁士様
お世話になります。

ADOXで実装してうまくリレーションを削除することができました。
本当に助かりました。

ありがとうございましたm(__)m

                 なるる♪ るんるん♪
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -