2016-04-30 91 views
0

我正在學習python與金字塔框架和sqlalchemy ORM。我正在使用firebird數據庫,並希望從我的數據庫中檢索數據。我有這個錯誤:無效的文字爲int()與基10:''/連接SqlAlchemy +火鳥

ValueError: invalid literal for int() with base 10: ''

上的代碼部分:

engine = create_engine('firebird+fdb://SYSDBA:[email protected]:/home/viktor/BDD/siteweb.fdb', echo=True) 
s = text("select * from tusers") 
k = engine.execute(s).fetchall() 

我的表的SQL代碼:

CREATE TABLE TUSERS(
    ID integer NOT NULL, 
    EMAIL varchar(50) NOT NULL, 
    "PASSWORD" varchar(50), 
    CONSTRAINT INTEG_9 PRIMARY KEY (ID), 
    CONSTRAINT INTEG_10 UNIQUE (EMAIL) 
); 

和:

INSERT INTO TUSERS (EMAIL, PASSWORD) 
VALUES (
    '[email protected]', 
    'my_password' 
); 

也許問題來自觸發器(因爲你需要創建一個增加id值的觸發器(沒有自動增加屬性))?

+1

你能請使用完整的錯誤消息(和回溯)更新您的問題。 –

回答

0

SQL鍊金術的火鳥的connection URL format是:

firebird+fdb://user:[email protected]:port/path/to/db[?key=value&key=value...] 

在您的網址你有口沒有價值,因爲你有口空字符串這將導致轉換錯誤。

可以通過指定的火鳥服務器的端口號(默認3050)解決這個問題: - 違背了文件 -

firebird+fdb://SYSDBA:[email protected]:3050/home/viktor/BDD/siteweb.fdb 

或沒有冒號作爲port is optional

firebird+fdb://SYSDBA:[email protected]/home/viktor/BDD/siteweb.fdb 
+0

感謝您的回覆,我已經嘗試過使用端口但沒有,但現在我有另一個錯誤:sqlalchemy.exc.DatabaseError:(fdb.fbcore.DatabaseError)('連接到數據庫時出錯:\ n- SQLCODE:-902 \ n-文件「home/viktor/BDD/siteweb」的「打開」操作過程中出現I/O錯誤\ n-嘗試打開文件時出錯\ n-沒有此文件或目錄',-902,3355544344)。你能再幫我一次嗎? :) –

+0

嘗試在'home'之前添加一個額外的'/'。它目前正在發送沒有初始斜槓的路徑,所以它被處理爲服務器的相對路徑。添加一個斜槓將解決這個問題。 –

+0

謝謝你現在的作品! :) –

相關問題