我无法使用sqlite和odbc.jl连接到我的简单数据库。我正在使用MacOS Sierra,版本10.12.3
简短摘要:管理连接,它检索正确的列名,但无法检索任何数据。
漫长的步骤:
显示sqlite数据库:
using SQLite
db_path = "~/test_db.db"
test_db = SQLite.DB(db_path)
println(SQLite.query(test_db, "SELECT * FROM test"))
结果:
4×2 DataFrames.DataFrame
│ Row │ id │ name │
├─────┼────┼─────────┤
│ 1 │ 1 │ "name1" │
│ 2 │ 2 │ "name2" │
│ 3 │ 3 │ "name3" │
│ 4 │ 4 │ "name4" │
安装ODBC sqlite驱动程序:
brew install sqlite
现在给出:
Warning: sqliteodbc-0.9995 already installed
然后我按照文件说明了
http://www.ch-werner.de/sqliteodbc/html/index.html
和
http://www.unixodbc.org/odbcinst.html
并创建了一个模板和更新的ini文件。
/usr/local/etc/odbcinst.ini:
[SQLite]
Description=SQLite driver
Driver=/usr/local/lib/libsqlite3odbc.so
Setup=/usr/local/lib/libsqlite3odbc.so
Threading=2
的/ usr /本地/ etc /模板:
[SQLite]
Description = SQLite driver
Driver = /usr/local/lib/libsqlite3odbc.so
Setup = /usr/local/lib/libsqlite3odbc.so
Threading = 2
跑了:
odbcinst -i -d -f template
哪个输出:
odbcinst: Driver installed. Usage count increased to 3.
Target directory is /usr/local/Cellar/unixodbc/2.3.4/etc
现在回到朱莉娅,跑步:
using ODBC
ODBC.listdrivers()
给出:
String["SQLite" "Description=SQLite driver\0Driver=/usr/local/lib/libsqlite3odbc.so\0Setup=/usr/local/lib/libsqlite3odbc.so\0Threading=2\0UsageCount=3\0"]
然后我尝试创建一个dsn:
dsn = ODBC.DSN("Driver=SQLite;Database=/Users/nick_thiessen/test_db.db;LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;")
println(dsn)
ODBC.query( dsn, "SELECT * FROM test")
给出了:
ODBC.DSN(DSN=;Database=/Users/nick_thiessen/test_db.db;StepAPI=0;Timeout=1000;SyncPragma=NORMAL;NoTXN=0;ShortNames=;LongNames=0;NoCreat=;NoWCHAR=;FKSupport=;Tracefile=;JournalMode=;LoadExt=;BigInt=;JDConv=;PWD=)
0×2 DataFrames.DataFrame
id name
不知何故,它能够辨别测试表的列名,但找不到数据