這是一個非常模糊的錯誤,我似乎無法獲得大量的上下文,因此請提出任何可能有助於澄清的問題。我會盡量給你儘可能多的背景。SystemError:連接已被禁用
我使用的是逗號目前正在創建一大堆的INSERT語句爲MySQL分離括號劃定值的列表(即insert into table (a, b, c) values (1,2,3),(4,5,6),(7,8,9);
)我要創建這些元組的一千年,用「」和插入他們加入他們在一個聲明中。
問題是我得到的問題中的錯誤。
我甚至在每次插入新語句時都要連接到數據庫。如果你願意的話,我可以提供代碼,但是這一切都隱藏在with
聲明之後。
我看不出有任何理由連接到數據庫被丟棄....
編輯:爲什麼不呢?這是代碼。裏面一個for循環:
with SQLConnection(DATASOURCES[SCHEDULEDB]) as db:
db.execute_sql(command + ' ' + ','.join(block) + ';')
夫婦高清的的:
def execute_sql(self, query):
if query.startswith('select'):
return self.execute_read(query)
else:
return self.execute_other(query)
def execute_other(self,query):
adapter = OdbcCommand(query,self.connection)
adapter.ExecuteNonQuery()
return True
請看我的編輯,我不確定這是否是問題,儘管它可能是。 – Ramy 2011-03-10 19:26:18
@Ramy:我不熟悉'OdbcCommand'和'ExecuteNonQuery'。您使用的框架與「Python數據庫API規範2.0版」(http://www.python.org/dev/peps/pep-0249/)看起來頗爲不同。錯誤的來源可能與您如何使用該框架有關,但無論您使用的是哪種框架或數據庫驅動程序,您都應該使用參數化SQL並調用'executemany'。它不僅更容易,而且可以幫助防止SQL注入:http://en.wikipedia.org/wiki/SQL_injection – unutbu 2011-03-10 19:42:12
odbc:http://msdn.microsoft.com/en-us/library/system.data。 odbc.odbccommand.aspx – Ramy 2011-03-10 19:48:17