使用web2py更改mssql连接字符串中的驱动程序

时间:2020-04-12 04:54:42

标签: python sql-server web2py pydal

我正在尝试建立与mssql db的连接,并使用pydal的DAL创建一个表,我的连接字符串,其余为:

db = DAL("mssql://myuser:mypassword@myserver.database.windows.net/mydb")
db.define_table(
    "post",
    Field("title", type="string", length=256),
    Field("content", type="text"),
    Field("image", type="upload"),
    Field("comments", type="list:string")
)

db.post.insert(title="Juan", content="this is context")

我收到此错误消息:

<clase 'pyodbc.Error'> ('01000', "[01000] [unixODBC] [Driver Manager] No se puede abrir lib 'SQL Server': archivo no encontrado (0) (SQLDriverConnect)")

我也得到这个:

self.dsn    'SERVIDOR = myserver.database.windows.net; PORT = 143 ... ID = myuser; PWD = mypassword; DRIVER = {SQL Server}'

这使我认为您正在调用的驱动程序不是所指示的驱动程序,您使用的是DRIVER = {SQL Server}',应该是{ODBC Driver 17 for SQL Server},但我不知道如何更改驱动程序在请求中。

我尝试使用pyodbc进行连接,并且效果很好:

import pyodbc 

server = 'tcp:myserver.database.windows.net' 
database = 'mydatabase' 
username = 'myuser' 
password = 'mypassword' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()

请您帮我解决这个问题。预先感谢。

0 个答案:

没有答案