我正在尝试使用Python连接c-TreeSQL。我知道我有正确的驱动程序,因为我可以使用George Po丢的查询工具进行连接
我尝试过这些变体,但每一个都失败了;
import pyodbc
## Instructions from http://doc.4d.com/4Dv17/4D/17/Using-a-connection-string.200-3786162.en.html
# conn = pyodbc.connect('Driver={c-treeACE ODBC Driver};Host=<Host from driver config>;UID=<User name>;PWD=<Password>;DATABASE=liveSQL;')
# Connection string from Query Tool
# conn = pyodbc.connect('Driver={c-treeACE ODBC Driver};ODBC;DSN=DOTLIVEREP;Host=<Host from driver config>;UID=<User name>;PWD=<Password>;DATABASE=liveSQL;SERVICE=6597 ;CHARSET NAME=;MAXROWS=;OPTIONS=;;PRSRVCUR=OFF;;FILEDSN=;SAVEFILE=;FETCH_SIZE=;QUERY_TIMEOUT=;SCROLLCUR=OFF;')
# Connection string from Query Tool. Added driver parameter
conn = pyodbc.connect('ODBC;DSN=DOTLIVEREP;Host=<Host from driver config>;UID=<User name>;PWD=<Password>;DATABASE=liveSQL;SERVICE=6597 ;CHARSET NAME=;MAXROWS=;OPTIONS=;;PRSRVCUR=OFF;;FILEDSN=;SAVEFILE=;FETCH_SIZE=;QUERY_TIMEOUT=;SCROLLCUR=OFF;')
print('Success')
这些连接字符串中的每一个都会导致PyCharm、IDLE和控制台崩溃。
我不确定是什么原因导致了
您应该更改连接字符串中的字段,其中是应用程序的特定值。
例如这里,而不是<驱动程序配置中的主机>。假设您的主机是MYHOST。你应该把MYHOST。<用户名>,你应该输入你的用户名,比如jacob,等等。通常这些带括号的字段就是你输入的值:
# Connection string from Query Tool. Added driver parameter
conn = pyodbc.connect('ODBC;DSN=DOTLIVEREP;Host=MYHOST;UID=jacob;PWD=<Password>;DATABASE=liveSQL;SERVICE=6597 ;CHARSET NAME=;MAXROWS=;OPTIONS=;;PRSRVCUR=OFF;;FILEDSN=;SAVEFILE=;FETCH_SIZE=;QUERY_TIMEOUT=;SCROLLCUR=OFF;')
尽管我没有遇到像您一样的问题,但以下是我在使用pyodbc和MS SQL Server时对错误的修复:
在代码开始时,我尝试连接到同一服务器上的多个数据库。当我尝试连接到同一服务器上的第二个数据库时,我的代码引发了此错误。
我修复它的方法是关闭之前与服务器的第一个连接,做需要做的工作,并在结束后关闭连接。然后我连接到我的第二个数据库,一切都很好。