Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:PYODBC连接链接错误08S01_Python_Python 3.x_Pyodbc - Fatal编程技术网

Python:PYODBC连接链接错误08S01

Python:PYODBC连接链接错误08S01,python,python-3.x,pyodbc,Python,Python 3.x,Pyodbc,我正在尝试使用pyodbc连接到我的sqlserverdb并创建一个表。我得到以下错误: cursor.execute(query1) cnxn.commit() Traceback (most recent call last): File "<ipython-input-6-2e608ee67d50>", line 3, in <module> cursor.execute(query1) OperationalError: ('08S01', '[0

我正在尝试使用pyodbc连接到我的sqlserverdb并创建一个表。我得到以下错误:

cursor.execute(query1)
cnxn.commit()
Traceback (most recent call last):

  File "<ipython-input-6-2e608ee67d50>", line 3, in <module>
    cursor.execute(query1)

OperationalError: ('08S01', '[08S01] [Microsoft][ODBC Driver 17 for SQL Server]Communication link failure (0) (SQLExecDirectW)')

如前所述,我的SELECT query up top运行良好,我可以将表拉入python并处理它,但我似乎无法创建新表。

创建游标,然后将连接移交给
pd。read\u sql
可能会使游标的事务陷入混乱。尝试将行
cursor=cnxn.cursor()
沿脚本向下移动到要使用光标的位置,例如,在行
cursor.execute(query1)
之前。我尝试过了,但我得到了一个新错误``cursor.execute(query1)编程错误:('42000',“[42000][Microsoft][ODBC驱动程序17 for SQL Server][SQL Server]“,”.(102)(SQLExecDirectW)“附近的语法不正确”``这是对语法的抱怨,但在CREATE TABLE语句的最后一行中,关闭列定义(右括号
[firstdrawns]varchar
),然后附加另一个列定义(
,[Retailer]varchar
). 我觉得这有点可疑。
from datetime import date
import pandas as pd
import pyodbc
import numpy as np

"""
for driver in pyodbc.drivers():
    print(driver)
"""

#define the server name, database and login credentials
server = '#########'
database ='########'
username='########'
password='########'

#define connection string
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server}; \
                      SERVER=' + server +';\
                      DATABASE='+ database +';\
                      UID='+ username +';\
                      PWD='+ password +';')

cursor = cnxn.cursor()

#pyodbc.drivers()

#SQL select query to call the table Test_M_Data
sql = "SELECT TOP 1000 * FROM vintage_data"

df = pd.read_sql(sql,cnxn)

#there's python code in between but it all works fine. the problem is down below...


query1 = "CREATE TABLE Onalerona.[dbo].vintage_data_2 \
          ([ConsumerID] float,[IDno] varchar(50),[SubscriberID] numeric(11,0),\
          [OpeningBalanceAmt] numeric(19,4),[AccountOpenedDate] varchar,\
          [RetroDate] varchar,[status1] varchar(8),[status2] varchar(8),\
          [status3] varchar(8),[status4] varchar(8),[status5] varchar(8),\
          [status6] varchar(8),[status7] varchar(8),[status8] varchar(8),\
          [status9] varchar(8),[status10] varchar(8),[status11] varchar(8),\
          [status12] varchar(8),[status13] varchar(8),[status14] varchar(8),\
          [status15] varchar(8),[status16] varchar(8),[status17] varchar(8),\
          [status18] varchar(8),[status19] varchar(8),[status20] varchar(8),\
          [status21] varchar(8),[status22] varchar(8),[status23] varchar(8),\
          [status24] varchar(8),[ukey] varchar(150),\
          [stat1] varchar(8),[stat2] varchar(8),\
          [stat3] varchar(8),[stat4] varchar(8),[stat5] varchar(8),\
          [stat6] varchar(8),[stat7] varchar(8),[stat8] varchar(8),\
          [stat9] varchar(8),[stat10] varchar(8),[stat11] varchar(8),\
          [stat12] varchar(8),[stat13] varchar(8),[stat14] varchar(8),\
          [stat15] varchar(8),[stat16] varchar(8),[stat17] varchar(8),\
          [stat18] varchar(8),[stat19] varchar(8),[stat20] varchar(8),\
          [stat21] varchar(8),[stat22] varchar(8),[stat23] varchar(8),\
          [stat24] varchar(8), [Months_Diff] int, [Month_Opened] varchar,\
          [FirstArrears] varchar), [Retailer] varchar"

cursor.execute(query1)
cnxn.commit()