Unable to connect to SQLite database

11 ビュー (過去 30 日間)
Annette Hynes
Annette Hynes 2019 年 3 月 21 日
回答済み: Annette Hynes 2019 年 3 月 26 日
I am unable to use sqlite to connect to databases that have worked previously for me in Matlab and currently work in R. The command:
conn = sqlite(dbfile);
yields the error:
"Error using sqlite
Received exception upon attempting an operation. Exception: [Unable to open the database. (unable to open database file)]. Details:
[connect(~/*.db)]."
The command
isfile(dbfile)
confirms that the file exists.
I tried using the example tutorial SQLiteWorkflow.m, but received an error:
"Error using sqlite
SQLite file exists.
Error in SQLiteWorkflow (line 18)
conn = sqlite('tutorial.db', 'create');"
Any ideas on how to get sqlite working for me again?
  5 件のコメント
Walter Roberson
Walter Roberson 2019 年 3 月 21 日
My question about dbfile was asking about what the character vector stored in the variable dbfile is -- the path to the database you are trying to connect to.
Annette Hynes
Annette Hynes 2019 年 3 月 22 日
In another development, I used the answer from a post about importing a table from .db and it worked perfectly with my databases.
How can the following code work:
system('sqlite3 -header -csv my_dbfile.db "select * from sfl;" > results.csv');
when I am unable to make a connection using:
conn = sqlite('my_dbfile.db');
?

サインインしてコメントする。

採用された回答

Annette Hynes
Annette Hynes 2019 年 3 月 26 日
I am still unable to use 'sqlite' to connect to my .db databases (OSX High Sierra, R2018b). The one change I made in my Matlab setup between when I could connect and now is that I changed the MATLAB_JAVA environment to avoid chronic crashes. I still crash, but less frequently now.
My current workaround is to use 'system' to access my SQLite databases via a shell, export them to a .csv file, and import them into the Matlab workspace.
dbfile = fullfile([file_path, '/'], [this_cruise, '.db']);
sqlquery = 'SELECT * FROM sfl';
outfile = [file_path, '/', this_cruise, '_PAR.csv'];
cmd = ['sqlite3 -header -csv ', dbfile, ' "', sqlquery, ';" > ', outfile];
system(cmd);
T = readtable(outfile);

その他の回答 (1 件)

Annette Hynes
Annette Hynes 2019 年 3 月 21 日
pwd
'/Users/annettehynes/Documents/MATLAB/Examples/database/WorkWithDataMATLABInterfaceToSQLiteExample'
ls
WorkWithDataMATLABinterfaceToSQLiteExample.mlx
My .db file is stored locally on my machine so the path is simply a local path. On another note, why am I unable to copy and paste into these question boxes?
  2 件のコメント
Walter Roberson
Walter Roberson 2019 年 3 月 21 日
Unfortunately with the new editor, these boxes to enter in comments etc. do not show up as text boxes for the purposes of browsers, so browsers do not enable menu items for copying and pasting.
You appear to be using Mac. If you are not up to date on your Firefox, you might possibly be able to use command-V to paste into these boxes. However that will probably fail if you are up to date on Firefox. If you use Safari then command-V will work (at least for now...)
Annette Hynes
Annette Hynes 2019 年 3 月 21 日
Thanks for the tip!

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by