Re: [問題] windows form如何開啟sqlite db檔?

作者: waiter337 (給開司一罐蘇格登)   2022-01-20 11:38:48
不好意思 借原po的題目發揮一下
目前是寫VB.NET
一樣是用SQLite 我連到google chrome History
位置通常在
C:\Users\xxxxx\AppData\Local\Google\Chrome\User Data\Default\History
我遇到一個狀況
當我OPEN完之後
reader = cmd.ExecuteReader
跑到上述這一行
就一直報錯 而且一直報不停
https://imgur.com/a/ruR5ige
https://i.imgur.com/4KKbVqF.png
SQLite error (5): database is locked in "SELECT url from (SELECT * from urls
ORDER BY id DESC LIMIT 1 )"
原因:只要chrome 處在開啟狀態 這個就不會讓我進去read
只要chrome關閉 就能正常讀取到最後一個的網址
或者額外複製一個history出來處理也可以 不過速度就會變慢很多
尤其當history大到幾mb的時候 會特別慢...
請問有沒有甚麼方法可以繞過被其他程序開啟的方式
或者請大大提供一些不同方向的意見
目前因為工作需求 我必須要獲得history最後一個 網址
補充一點:
chrome 擴充工具有很多SQLite檢視器 一樣能夠打開chrome history
上述就是在chrome開啟時能夠使用sqlite進去找的
但自己寫一套reader = cmd.ExecuteReader
在chrome未關閉時 就被資料庫lock擋下來
百思不解= =
作者: ssccg (23)   2022-01-20 13:31:00
SQLite不支援多process存取,一次只能一支程式開檔案啊檔案型DB通常都常都是這樣,不然要怎麼保證ACIDchrome擴充工具是跑在Chrome的process裡面,當然不一樣不然你也寫Chrome擴充工具不就好了你的winform程式開個local server,擴充工具連上你的server有SQL要執行都丟給擴充工具去跑

Links booklink

Contact Us: admin [ a t ] ucptt.com