どうも。へっぽこSEのアシアです。
小さめのシステムを開発していてDBにSQLiteを使っています。
で、それを共有フォルダに置いて、複数の端末から参照するようにしているのですが、それ関連のトピックス。
DataSource
VBAからvbRichClientを使ってOpenする場合は、単純。
Dim objConn As New vbRichClient5.cConnection
objConn.OpenDB("\\端末名\~.db")
C#からSystem.Data.SQLiteを使ってOpenする場合は\を増やさないとアクセスできない。なんで?
SQLiteConnection con = new SQLiteConnection();
con.ConnectionString = @"Data Source=\\\\端末名\~.db";
con.Open();
ちなみにパスワードがかかっている場合はこちらも参照してください。
Defender
なんかWindows Defenderが生きていると、共有フォルダのOpenにやたら時間がかかる。
C#からSystems.Data.SQLiteを使って2秒くらい。
ExcelVBAからvbRichClientを使うともっと顕著で3秒くらい。
Openする度にこんな時間かかっていたら目も当てられない。
レジストリやPowerShellからDefenderを無効化しようとしても改善しない。
セキュリティソフトをインストールするか、無効化するフリーソフトDefender Controleを使ったら改善しました。
そんでもって、この現象が起こるPCと起こらないPCがある。
Windows10の大型Updateをきっかけに発現するPCもあるので、この原因に行き着くまでに右往左往する。
同じWindows10のバージョンで、同じネットワークアダプタを使っているPCでも起こったり起こらなかったりするので、確実な再現条件がよくわからん…。
セキュリティソフトをインストールしているのにWindowsUpdateで現象が出たとしても、セキュリティソフトを再インストールすると改善するPCもあるらしい。
検証用ツールとか作っておく必要があるかなぁ。
他にもニッチなIT関連要素をまとめていますので、よければ一覧記事もご覧ください。