2017-01-05 106 views
4

我試圖讓從python2.7至H2的連接(h2-1.4.193.jar - 最新)連接Python來H2

H2(正在運行,並且提供):java -Dh2.bindAddress=127.0.0.1 -cp "E:\Dir\h2-1.4.193.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Server -tcpPort 15081 -baseDir E:\Dir\db

對於蟒蛇我使用jaydebeapi

import jaydebeapi 

conn = jaydebeapi.connect('org.h2.Driver', ['jdbc:h2:tcp://localhost:15081/db/test', 'sa', ''], 'E:\Path\to\h2-1.4.193.jar') 
curs = conn.cursor() 
curs.execute('create table PERSON ("PERSON_ID" INTEGER not null, "NAME" VARCHAR not null, primary key ("PERSON_ID"))') 
curs.execute("insert into PERSON values (1, 'John')") 
curs.execute("select * from PERSON") 
data = curs.fetchall() 
print(data) 

結果每次我得到一個錯誤:Process finished with exit code -1073741819 (0xC0000005) 你有關於這個情況下,任何想法?或者也許有其他的東西,我可以使用,而不是jaydebeapi

回答

3

回答我自己的問題: 首先,我無法通過jaydebeapi做任何事情。 我讀過H2支持PostgreSQL網絡協議。我的下一個步驟是對H2和蟒蛇轉移到pgsql的:

H2 PG:

java -Dh2.bindAddress=127.0.0.1 -cp h2.jar;postgresql-9.4.1212.jre6.jar org.h2.tools.Server -baseDir E:\Dir\h2\db 

TCP server running at tcp://localhost:9092 (only local connections) 
PG server running at pg://localhost:5435 (only local connections) 
Web Console server running at http://localhost:8082 (only local connections) 

postgresql.jar被列入嘗試從Web控制檯連接。

的Python:中psycopg2代替jaydebeapi

import psycopg2 

conn = psycopg2.connect("dbname=h2pg user=sa password='sa' host=localhost port=5435") 
cur = conn.cursor() 
cur.execute('create table PERSON ("PERSON_ID" INTEGER not null, "NAME" VARCHAR not null, primary key ("PERSON_ID"))') 

結果 - 它的工作現在。建立連接並創建表。

Web控制檯設置:

Generic PostgreSQL 
org.postgresql.Driver 
jdbc:postgresql://localhost:5435/h2pg 
name: sa, pass: sa 

Web控制檯做連接,但並沒有表現出我的表列表中,顯示許多錯誤,而不是:"CURRENT_SCHEMAS" is not found etc...。 PG管理員4不能連接。 SQuirrel救援 - 它已經連接到這個分貝,所有工作都很好。