【问题标题】:Not getting result output table of MSSQL stored procedure in python在python中没有得到MSSQL存储过程的结果输出表
【发布时间】:2018-08-03 15:56:44
【问题描述】:

我的python代码基于:

  1. 在 Python 中导入 CSV 文件
  2. 连接到 SQL Server 数据库
  3. python-insert 语句中的查询 1 从 csv 文件中插入 table1 中的值
  4. python 中的查询 2 - 执行存储过程 1,它是一个“选择语句”
  5. python 中的查询 3 - 执行存储过程 2,它是“table1 的更新语句”
  6. python 中的查询 4 ​​- 执行存储过程 3,这是一个“选择语句,它在 table1 上具有多个表连接并产生具有 8 列的结果”
  7. 将结果导出到新的 csv 文件

整个python代码被成功执行,但生成一个空白的csv文件,但没有从查询4的游标中得到任何输出。


我的示例代码:

import pyodbc
import pandas as pd 
import csv
cnxn_1 = pyodbc.connect()
with open("""csv path""") as csv1:
     reader = csv.reader(csv)
     cursor_1 = cnxn_1.cursor()
     cursor_1.execute("""INSERT INTO TABLE1""")
     cursor_1.commit()
cnxn_1.close()   

cnxn_2 = pyodbc.connect()  
cursor_2 = cnxn_2.cursor()
cursor_2.execute("""exec stored_proc_select_statement @parameter""")
result_1 = cursor_2.fetchall()
print (result_1)
cnxn_2.close()

cnxn_3 = pyodbc.connect() 
cursor_3 = cnxn_3.cursor()
cursor_3.execute("""exec stored_proc_update_statement @parameter""")
cursor_3.commit()
cnxn_3.close()

cnxn_4 = pyodbc.connect() 
cursor_4 = cnxn_4.cursor()
cursor_4.execute("""exec stored_proc_final_select_statement @parameter""")
cursor_4.commit()
cnxn_4.close()
result_2 = cursor_4.fetchall()
print (result_1)
columns = [column[0] for column in cursor_4.description]
df = pd.DataFrame.from_records(result_2, columns=columns)
print(df)
df.to_csv("""new csv path""")
cnxn_4.close()

【问题讨论】:

    标签: python sql sql-server csv pymssql


    【解决方案1】:

    您过早关闭连接 4:

    cnxn_4 = pyodbc.connect() 
    cursor_4 = cnxn_4.cursor()
    cursor_4.execute("""exec stored_proc_final_select_statement @parameter""")
    cursor_4.commit()
    # **cnxn_4.close()**  ## Comment this out, or remove it.
    result_2 = cursor_4.fetchall()
    print (result_1)
    columns = [column[0] for column in cursor_4.description]
    df = pd.DataFrame.from_records(result_2, columns=columns)
    print(df)
    df.to_csv("""new csv path""")
    cnxn_4.close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多