假设我有一个MSSQL服务器的以下连接信息:
'Driver={SQL Server};'
'Server=VCAB18RPACRGZ12\GNRSRZ11,1414;'
'Database=sampleDB;'
'uid=sampleID;'
'pwd=samplePW'
我想将python数据帧作为表写入MSSQL服务器。我有以下代码:
from sqlalchemy import create_engine
connection = create_engine('mssql+pyodbc://sampleID:samplePW@myhost:VCAB18RPACRGZ12\GNRSRZ11,1414/sampleDB?driver=SQL+Server+Native+Client+10.0')
我的上述连接代码错误输出。我不确定我的连接信息应该在create_engine语句中的确切位置。
这是我的错误......
ValueError:基数为10的int()的无效文字:
'VCAB18RPACRGZ12 \ GNRSRZ11,1414'
答案 0 :(得分:0)
您的服务器地址不正确。 如果 1414 是#端口,则应使用“:”代替“,”。
SQLAlchemy 使用pyodbc作为默认DBAPI。 pymssql也可用。 以下是连接字符串示例:
# pyodbc -DSN
engine = create_engine('mssql+pyodbc://scott:tiger@mydsn')
# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
# pyodbc -DSN Less connection
from sqlalchemy import create_engine
#assumes driver name=[SQL+Server+Native+Client+10.0]
#engine = create_engine('mssql+pyodbc://username:password@hostname:port/databasename?driver=SQL+Server+Native+Client+10.0')
engine = create_engine(r'mssql+pyodbc://sampleID:samplePW@VCAB18RPACRGZ12\GNRSRZ11:1414/sampleDB?driver=SQL+Server+Native+Client+10.0')
print engine