- PR -

ログファイルのパスを取得したい

1
投稿者投稿内容
すけきよ
会議室デビュー日: 2005/01/28
投稿数: 2
投稿日時: 2005-01-28 02:04
お世話になっています。

 現在MSDE2000(ODBC) + VC++6.0でアタッチ・デタッチを行うアプリを作成しています。アタッチ・デタッチはストアドで簡単に実現できたのですが,
仕様の一つに「ldfファイルをデタッチ後に削除する」で躓いています。

 アプリはmdfファイルのパスの情報しか持っておらず,通常ldfはこのmdfと
同フォルダにあるため削除も容易ですが,稀にmdfファイルと異なる場所に
ldfがある事が分かり,どうやってそんなldfのパスを知れば良いのか
悩んでいます。

 いろいろ試した結果,mdfはldfのパスを内部で持っていると思いまして,
取得する方法は無いか探しています。これに関する情報をお持ちでしたら
お教えください。
HIRO
会議室デビュー日: 2005/01/28
投稿数: 2
投稿日時: 2005-01-28 17:00
マルチインスタンスの場合はレジストリが
Software\Microsoft\Microsoft SQL Server\インスタンス名\setup
になるのでそちらから取得するようにしてみては?
シングルのときは、同一のパスに存在したと思います。
ごー
ベテラン
会議室デビュー日: 2003/08/29
投稿数: 51
お住まい・勤務地: いるかホテル
投稿日時: 2005-01-28 17:16
こんにちは。
SQLSERVER2000には【sysfiles】システムテーブルにldfのパスが書き込まれていますが
MSDEにはありませんか?

現在、MSDEのみの環境ががないので確認できないのですが・・・
_________________
すけきよ
会議室デビュー日: 2005/01/28
投稿数: 2
投稿日時: 2005-01-29 23:49
お世話になります。
ご返答ありがとうございます。
MSDE2000にもsysfileがあり,そこからldfのフルパスが取得できました。
HIRO様,ごー様,ありがとうございます。

 sysfileにはmdfとldfのファイル名とパスが格納されています。デフォルトだと
それぞれ一個ずつなので,ldfファイルはfileid = 2で引っ掛けると取得できます。
今回はこれで十分なのでこの方法を使います。

1

スキルアップ/キャリアアップ(JOB@IT)