Julia:ODBC.jl无法正确连接到我的sqlite数据库并检索数据

时间:2017-03-13 15:25:34

标签: database sqlite odbc julia

我无法使用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

不知何故,它能够辨别测试表的列名,但找不到数据

0 个答案:

没有答案