トップ回答者
ネットワーク上のデータベースを指定するとエラーが発生する

質問
-
Powershellについてお教え頂けないでしょうか?SQLiteのデータベースファイルにアクセスしたいと思っています。
ローカルにDBファイルが配置されている場合は、問題なくアクセスできるのですが、ファイルサーバー上にDBファイルがある場合はエラーで落ちてしまいます。Open()する時に落ちます。
[void][System.Reflection.Assembly]::LoadFile("C:\System.Data.SQLite.dll")
$sqlite = New-Object System.Data.SQLite.SQLiteConnection
$sqlite.ConnectionString = "Data Source = \\XYZ\abc.sqlite3" # 落ちます
#$sqlite.ConnectionString = "Data Source = C:\abc.sqlite3" # 問題なくアクセスできます。
$sqlite.Open()"0" 個の引数を指定して "Open" を呼び出し中に例外が発生しました: "unable to open database file"
発生場所 C:\\~~
+ $sqlite.Open()どのようにファイルを指定すれば、問題なくDBファイルにアクセスする事ができるでしょうか?
よろしくお願いします。
回答
-
こんにちは。
PowerShellは詳しくないですが、以下を参考に試してみては如何ですか。
http://www.majishini.net/wp/?p=1010
ネットワークドライブにするか、”\\”を”\\\\”にしてみる。
- 編集済み Tak1waMVP, Moderator 2015年5月17日 10:03
- 回答の候補に設定 牟田口大介Moderator 2015年5月17日 18:39
- 回答としてマーク 牟田口大介Moderator 2015年5月18日 3:41
-
タコス さま よろしく。
以下のページは参考になりませんか。(C# で説明されていますが)
どうも、SQLiteConnectionStringBuilder で UNC パスをハンドルする時に、
エスケープが必要みたいですね。 \\ を \\\ に置換。
http://system.data.sqlite.org/index.html/info/de89ae989b
- 編集済み ShiroYuki_Mot 2015年5月17日 14:57 エスケープ方法追記
- 回答の候補に設定 牟田口大介Moderator 2015年5月17日 18:39
- 回答としてマーク 牟田口大介Moderator 2015年5月18日 3:40
すべての返信
-
こんにちは。
PowerShellは詳しくないですが、以下を参考に試してみては如何ですか。
http://www.majishini.net/wp/?p=1010
ネットワークドライブにするか、”\\”を”\\\\”にしてみる。
- 編集済み Tak1waMVP, Moderator 2015年5月17日 10:03
- 回答の候補に設定 牟田口大介Moderator 2015年5月17日 18:39
- 回答としてマーク 牟田口大介Moderator 2015年5月18日 3:41
-
タコス さま よろしく。
以下のページは参考になりませんか。(C# で説明されていますが)
どうも、SQLiteConnectionStringBuilder で UNC パスをハンドルする時に、
エスケープが必要みたいですね。 \\ を \\\ に置換。
http://system.data.sqlite.org/index.html/info/de89ae989b
- 編集済み ShiroYuki_Mot 2015年5月17日 14:57 エスケープ方法追記
- 回答の候補に設定 牟田口大介Moderator 2015年5月17日 18:39
- 回答としてマーク 牟田口大介Moderator 2015年5月18日 3:40