草庐IT

python - pyodbc 是否支持任何形式的命名参数?

我知道sqlite3有data={'test_col':012345679}sqlite3_conn.execute("""UPDATEtest_dbSETtest_col=:test_col;""",data)mysql-connector-python有data={'test_col':012345679}mysql_conn.execute("""UPDATEtest_dbSETtest_col=%(test_col)s;""",data)但是pyodbc是否支持任何形式的命名参数?我喜欢能够将dict传递给execute方法。它非常方便,并且对于我的一些查询,例如INSERTI

python - 使用参数 : pandas (or pyodbc) not functioning properly 从 SQL Server 读取

我在SQLServer中使用一个查询,它需要一个范围来检查数字是否在该范围内(例如,在下面检查DemographicGroupDimID是否为(1,2或3).在做了一些谷歌搜索后,我发现能够做到这一点的唯一方法如下:SQLDECLARE@adultstable(Idint)INSERTINTO@adultsVALUES(1),(2),(3)SELECT[date],[station],[impression]=SUM([impressions])/COUNT(DISTINCT[datetime])FROM(SELECT[datetime]=DATEADD(minute,td.Minut

python - Pyodbc - 打印前 10 行(python)

我正在尝试使用pyodbc打印前10行。我知道如何使用以下方法获取第一条记录:row=cursor.fetchall()我尝试将其更改为:row=cursor.fetchten()但这没有用。还有什么我可以做的吗?? 最佳答案 你插入:row=cursor.fetchmany(10)您可以将括号中的数字更改为您想要的任何值。 关于python-Pyodbc-打印前10行(python),我们在StackOverflow上找到一个类似的问题: https://s

python - 使用 SQL 或其他解决方法访问存储过程的第二个结果集? Python\pyodbc

我正在使用python\pyodbc并想访问存储过程的第二个结果集。据我所知,pyodbc不支持多个结果集。此外,我无法修改存储过程。是否有任何选项可以使用SQL或其他一些解决方法访问第二个结果集?也许创建第二个存储过程只返回第一个结果集的第二个结果集? 最佳答案 不需要任何花哨的东西。只需使用cursor'snextset()method:importpyodbcdb=pyodbc.connect("")q=db.cursor()q.execute("""SELECTTOP5*FROMINFORMATION_SCHEMA.TABL

python - pyodbc.connect() 有效,但 sqlalchemy.create_engine().connect() 无效

我正在尝试编写一个Python脚本,该脚本可以获取Excel工作表并将它们作为表格导入到我的SQLServerExpress(使用Windows身份验证)数据库中。为此,我使用pandas将Excel文件读入pandasDataFrame,然后我希望使用pandas.to_sql()来将数据导入我的数据库。但是,要使用此函数,我需要使用sqlalchemy.create_engine()。我能够单独使用pyodbc连接到我的数据库,并运行测试查询。此连接使用以下代码完成:defcreate_connection(server_name,database_name):config=dic

使用 pyodbc "is not safe"进行 Python 多处理和数据库访问?

问题:我收到以下回溯,但不明白它的含义或如何修复它:Traceback(mostrecentcalllast):File"",line1,inFile"C:\Python26\lib\multiprocessing\forking.py",line342,inmainself=load(from_parent)File"C:\Python26\lib\pickle.py",line1370,inloadreturnUnpickler(file).load()File"C:\Python26\lib\pickle.py",line858,inloaddispatch[key](self)

python - SQL 更新语句但使用 pyodbc

我正在使用pyodbc驱动程序连接到使用SQL的Microsoft访问表。有谁知道我如何替换此表中的字段?我已经考虑过删除该行然后再放回该行,但是由于访问中的自动编号,这会更改主键。我有这个要插入到Progress表中:cnxn=pyodbc.connect('Driver={MicrosoftAccessDriver(*.mdb,*.accdb)};Dbq=C:\\Users\\...............(filelocation)')cursor=cnxn.cursor()cursor.execute("insertintoProgress(CockpitDrill,Mirro

python - 并行化 pandas pyodbc SQL 数据库调用

我目前正在通过pandas.io.sql.read_sql()命令将数据查询到数据框中。我想并行化类似于这些人所提倡的调用:(EmbarrassinglyparalleldatabasecallswithPython(PyDataParis2015))类似(非常笼统):pools=[ThreadedConnectionPool(1,20,dsn=d)fordindsns]connections=[pool.getconn()forpoolinpools]parallel_connection=ParallelConnection(connections)pandas_cursor=pa

python - pyodbc - 如何使用变量作为参数执行 select 语句

我正在尝试遍历名为Throughput的表中的所有行,但针对特定的设备名称(我已将其存储在数据['DeviceName']中)。我尝试了以下方法,但它不起作用:forrowincursor.execute("select*fromThroughputwhereDeviceName=%s"),%(data['DeviceName']):编辑:也试过这个但它不起作用:forrowincursor.execute("select*fromThroughputwhere(DeviceName),values(?)",(data['DeviceName'])):EDIT2:我的最终工作代码片段:

python - 基本的 pyodbc 批量插入

在python脚本中,我需要在一个数据源上运行查询,并将该查询中的每一行插入到不同数据源上的表中。我通常会使用带有tsql链接服务器连接的单个插入/选择语句来执行此操作,但我没有到此特定数据源的链接服务器连接。我找不到一个简单的pyodbc示例。这是我的做法,但我猜想在循环内执行插入语句非常慢。result=ds1Cursor.execute(selectSql)forrowinresult:insertSql="insertintoTableName(Col1,Col2,Col3)values(?,?,?)"ds2Cursor.execute(insertSql,row[0],row