Apache Airflow-使用pymssql和SQLAlchemy与MS SQL Server的连接问题
我正面临与 Azure MS SQL Server 2014 数据库中的问题, Apache AirFlow 1.10.1 使用 pymsssql . 我想使用气流提供的 mssqlhook 类,以便于在气流UI中创建我的连接,然后使用 sqlalchemy 为我的连接创建上下文管理器: @contextmanager def mssql_session(dt_conn_id): sqla_engine = MsSqlHook(mssql_conn_id=dt_conn_id).get_sqlalchemy_engine() session = sessionmaker(bind=sqla_engine)() try: yield session except: session.rollback() raise else: session.commit() finally
0 2024-01-20
编程技术问答社区
pymssql windows 身份验证
用于支持Windows身份验证的PYMSSQL模块.现在看来没有.尽管在某些地方仍然表明它应该起作用.我找不到解决此问题的确切答案,也无法找到解决方案.最相关的链接: pymssql 1.0支持它,因为它使用并依赖于 MS提供的DLL是SQL Server客户端堆栈的一部分.这 Stack负责处理所有NTLM谈判等. 这意味着,除其他外,它是一个仅使用Windows的解决方案. 我可以模拟多种网络环境,因此我尝试了许多不同的设置.我试图使用Windows身份验证使用此脚本将其连接到远程MSSQL服务器.这是问题. 根据我的研究,包括上面的链接,有两种方法可以使用Windows身份验证使用Pymssql模块,这些模块是 at 的工作. 第一个方法:使用当前用户凭据: pymssql.connect(server='server') # credentials come from active windows session # some research s
8 2023-12-07
编程技术问答社区
在Windows上安装pymssql有问题
我找不到Windows上PYMSSQL安装支持的大力支持.我正在尝试通过另一名员工的Python包装器连接到企业数据库.该包装器需要我安装Pymssql. rtfm 在此上没有很明确的说明freetds和openssl. 安装步骤 所有下载的文件(freetds and openssl)均来自上面提到的RTFM链接.提到将两个下载添加到C:\ Program Files文件夹并将二进制文件添加到系统PATH中,所以我做到了: freetds 下载的freetds >>创建了目录C:\ program文件(x86)\ freetds >> copy/freetds的copy/粘贴内容下载到c:\ program文件(x86)\ freetds目录>>添加c:\ program files( x86)\ freetds进入我的系统的PATH freetds的内容下载: \bin \bsqldb.exe \bsqldb.exe.manifes
6 2023-12-06
编程技术问答社区
无法使用 pymssql 将 Unicode 发送到 SQL 服务器
我遇到了通过Pymssql发送unicode到SQL Server的问题: In [1]: import pymssql conn = pymssql.connect(host='hostname', user='me', password='password', database='db') cursor = conn.cursor() In [2]: s = u'Monsieur le Curé of the «Notre-Dame-de-Grâce» neighborhood' In [3]: s Out [3]: u'Monsieur le Cur\xe9 of the \xabNotre-Dame-de-Gr\xe2ce\xbb neighborhood' In [4]: cursor.execute("INSERT INTO MyTable VALUES(%s)", s.enco
2 2023-12-05
编程技术问答社区
在 Windows 7 中导入 pymssql Unicode DecodeError
i安装pymssql 导入pymssql结果: >>> import pymssql Traceback (most recent call last): File "", line 1, in File "_mssql.pxd", line 10, in init pymssql (pymssql.c:11769) File "_mssql.pyx", line 87, in init _mssql (_mssql.c:23183) UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128) 如何修复它? 解决方案 我的解决方案不能解决所有类型的问题,但是您必须这样做: 只需在您的代码之前添加此行.这个问题表明存在一些解码问题,问题的来源可能是某些文件夹名称具有非ASCII字符:
4 2023-11-06
编程技术问答社区
如何在Ubuntu上配置支持SSL的pymssql?
在Ubuntu上配置使用SSL支持的PYMSSQL所需的步骤是什么,因此我可以连接到需要加密连接的SQL Server实例(例如Azure)? ? 解决方案 ubuntu 16.04 lts (请参阅 for Ubuntu 18.04 lts.) . 以下对我有用的Xubuntu 16.04 LTS X64的清洁安装: 第一个挑战是,我们从Ubuntu 16.04存储库中获得的弗里特人不支持SSL"开箱即用",因此我们需要构建自己的.首先安装python3-pip(还安装了build-Ensentals,g ++以及我们需要的其他一些东西)和libssl-dev(构建具有SSL支持的freetds所需的OpenSSL库) sudo apt install python3-pip libssl-dev 通过单击 freetds.org 的"稳定版本"链接下载freetds的源代码.解开存档,切换到您刚创建的目录(例如Freetds-1.00.104),然
14 2023-11-01
编程技术问答社区
pymssql: executemany value error-expected a simple type, a tuple or a list
grpidx_data=[] for i in range(0,len(data1)): grpidx_data.append((data1.loc[i,'price'],data1.loc[i,'id'])) cur.executemany("insert into grpidx values (%s,%s)",grpidx_data) 我使用python3.3和pymssql.我想将数据从Python导入到MSSQL. grpidx_data的类型为 list(tuple),例如[(12,1),(34,2),...],我在上面运行代码,然后遇到了错误: valueerror:期望一种简单的类型,元组或列表 如果我只使用 list(元组)的数据,则代码正常.但是,当我用于循环获得数据时,即使是它的类型 list(元组),它也无法正常工作. 那么如何解决这个问题? 谢谢! 解决方案 我遇到了同样的问题,实际上有一个脚本,一个脚本没有.我最终发现
24 2023-10-27
编程技术问答社区
无法使用PYMSSQL连接到SQL Server数据库,但可以使用基础freetds TSQL连接
我不知道为什么我会遇到此错误,而找不到任何解决方案.我可以使用Freetds TSQL连接到SQL Server数据库,但是使用pymssql.connect连接时,我会遇到错误. 具体错误是: pymssql.operationalerror:(18456,"登录失败的用户'xxx'.db-lib错误消息18456,严重性14:\ ngeneral SQL Server 错误:从SQL Server \ NDB-LIB错误消息20002检查消息, 严重性9:\ \ nadaptive服务器连接失败\ n") 我的配置设置为: [custom_config] host = myhost port = 1433 tds version = 7.0 encryption = request dump file = /tmp/freetds.log 运行: tsql -S custom_config -U tsmv -P
4 2023-10-27
编程技术问答社区
如何从Python中的存储过程中获得输出参数?
我已经搜索了一些谷歌搜索,但是也许我没有将正确的Magik咒语放入搜索框中. 有人知道如何从Python中的存储过程中获取输出参数吗?我正在使用PYMSSQL来调用存储过程,但我不确定正确的语法以使输出参数返回.我认为我无法使用任何其他数据库模块,因为我从Linux框运行了此操作来连接到MS Server上的MSSQL数据库. import pymssql con = pymssql.connect(host='xxxxx',user='xxxx',password='xxxxx',database='xxxxx') cur = con.cursor() query = "EXECUTE blah blah blah" cur.execute(query) con.commit() con.close() 解决方案 我不是Python专家,但是经过 DB-API 2.0 我相信您应该使用光标的" callproc"方法: cur.callproc('my_
16 2023-09-30
编程技术问答社区
tsql登录失败,但管理工作室可以连接
我正在尝试使用TSQL连接到MS SQL Server实例(故障排除无法与Django-pymssql连接). 我可以通过VM运行SQL Server Management Studio连接到服务器(在Amazon RDS上运行,最新的SQL Server版本),但是从我的本机Ubuntu 15.10 Env中,我获得了登录失败错误. 使用以下内容: tsql -H -p 1433 -U -P 我得到: locale is "en_GB.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" Msg 18456 (severity 14, state 1) from EC2AMAZ-U1TAK71 Line 1: "Login failed for user 'sa'." Error 20002 (severity 9): Ad
8 2023-09-26
编程技术问答社区
pymssql 执行存储过程但不返回结果
我试图在SQL Server上执行存储过程并使用Python保存结果 - 我决定使用Pymssql,因为它似乎是最简单的解决方案. print pymssql.__version__ server = 'MY\SERVER' user = 'user' password = 'password' database = 'db' proc = 'checkin' with pymssql.connect(server, user, password, database) as conn: with conn.cursor() as cursor: cursor.callproc(proc, (eha, ip, url, alias, location, rotation)) conn.commit() f = open('/var/wwwdata/locations.txt', 'w') for row
2 2023-09-26
编程技术问答社区
pymssql执行者插入值非常慢
Python-2.7.15,Pymssql-2.1.4,SQL_Server-2018,Windows 10 Pro,MS-Office-2016 import time import csv import pymssql db_settings = { "host" : "127.0.0.1", "port" : "1433", "user" : "sa", "password" : "********", "database" : "testdb", "charset" : "utf8" } conn = pymssql.connect(**db_settings) cursor = conn.cursor() ff = csv.reader(open('base.csv', 'r')) sql = """ BEGIN INSERT INTO Base([name], [ye
34 2023-09-26
编程技术问答社区
MSSQL in python 2.7
是否有一个用于连接MSSQL和Python 2.7的模块? 我下载了pymssql,但它适用于Python 2.6. Python 2.7是否有等效模块? 我不知道是否有人可以提供链接. 重要说明:与此同时,有一个Pymssql模块.不要错过此页面末尾阅读答案:一个> 解决方案 您还可以使用 pyodbc 与Python连接到MSSQL. from document from document :: import pyodbc cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=localhost;DATABASE=testdb;UID=me;PWD=pass') cursor = cnxn.cursor() cursor.execute("select user_id, user_name from users") rows = cursor.fetchall() for row in rows:
6 2023-09-25
编程技术问答社区
如何在 Sql Alchemy Python 中指定 MS SQL 后端的事务隔离级别?
如何设置通过SQL炼金术引擎对象进行的所有查询的交易级别READ UNCOMMITED? 我设置了此处注明的isolation_level参数:create_engine之类的地方: my_eng = create_engine(db_conn_string, isolation_level='READ_UNCOMMITTED') 但是对于我的后端(MS SQL Server),我会收到以下错误,也许毫不奇怪,因为文档确实说是方言是特定的.我只是惊讶地没有关于MS SQL中隔离水平的文档! TypeError: Invalid argument(s) 'isolation_level' sent to create_engine(), using configuration MSDialect_pyodbc/QueuePool/Engine. Please check that the keyword arguments are appropriate for
2 2023-09-25
编程技术问答社区
当试图通过Apache连接到数据库时,Django应用程序挂起了。
我很难解决此问题.我有一个在Ubuntu 14.04服务器上运行的Django应用程序(Apache 2.4和Mod_wsgi,用于Python 3.4).它通过pymssql连接到SQL Server. 在开发中,应用程序正常.我查询数据库,数据库返回预期的结果. 在生产中(在Apache用户下),该脚本挂在数据库查询的确切点上.我的浏览器(Chrome或Firefox)显示了一个旋转轮,只要浏览器窗口打开,它就会继续旋转. 我在apache2.conf文件中有以下内容: ServerName localhost # WSGIDaemonProcess application WSGIPythonPath /home/production_code/python3env/lib/python3.4/site-packages:/home/production_code/school # WSGIProcessGroup application WSGIScrip
4 2023-09-25
编程技术问答社区
sqlalchemy Engine.execute()在睡眠状态中留下了与数据库的连接
我正在使用SQL Server数据库.我注意到,在执行下面的代码时,我会与"等待命令"状态的"睡眠"状态保留的数据库连接. engine = create_engine(url, connect_args={'autocommit': True}) res = engine.execute(f"CREATE DATABASE my_database") res.close() engine.dispose() 在engine.dispose()呼叫后的断点后,我可以在EXEC sp_who2表中的服务器上看到一个条目.这个条目只有在我杀死该过程后才消失. 解决方案 您基本上想杀死所有可以使用这样的连接: MS SQL Server 2012及以上 USE [master]; DECLARE @kill varchar(8000) = ''; SELECT @kill = @kill + 'kill ' + CONVERT
20 2023-09-25
编程技术问答社区
python到mssql的编码问题
问候 通过使用 pymssql 库,我想将数据写入MSSQL数据库,但是我遇到了共同的问题.这是我写入DB的示例代码: # -*- coding: utf-8 -*- import _mssql .... Connection info data here .... def mssql_connect(): return _mssql.connect(server=HOST, user=USERNAME, password=PASS, database=DB, charset="utf-8") con = mssql_connect() INSERT_EX_SQL = "INSERT INTO myDatabsae (Id, ProgramName, ProgramDetail) VALUES (1, 'Test Characters ÜŞiçÇÖö', 'löşüIIğĞü');" con.execute_non_query(INSERT_EX_SQL) c
20 2023-09-25
编程技术问答社区
使用Pymssql向SQL服务器插入空值记录时出现错误
我有一组记录,我需要使用PYMSSQL插入SQL Server数据库.这些记录具有来自预测模型的概率分数以及其他许多列.为了进行测试目的,我创建了一个Excel文件,其中的值要插入MS SQL Server表. 这些列中的某些记录具有空值,这些记录在我尝试插入时会导致问题. 以下是我的代码 import pymssql import pandas as pd conn = pymssql.connect(server='server name', user='uid', password='pwd', database='dbname') cursor=conn.cursor() #Read Scores from Excel df = pd.read_excel("Sample_Score_Records.xlsx") for index,row in df.iterrows(): cursor.execute("INSERT INTO dbo.ANL
8 2023-09-24
编程技术问答社区
查询中使用的字符串总是用nvarchar语法发送的字符串,即使基础列不是Unicode
我注意到针对MS SQL中针对字符串字段的SQL生成的SQL中的一些奇数行为. 服务器版本:SQL Server 2014 12.0.5000.0 整理:SQL_Latin1_General_CP1_CI_AS Python版本:3.7 我们的数据库具有NVARCHAR(主要是较新)和VARCHAR(主要是较旧的)字段的混合物.我们正在使用sqlalchemy将我们的Python应用程序连接到数据库,即使我们指定了列是类型String的列(与Unicode相对),执行的SQL始终以NVARCHAR syntax出现(例如,N'foo'). 这最终会造成一些明显的问题,因为在数百万的行表上的一个简单的索引查找变成了一个巨大的字符串重新编码操作. 我发现的解决方法是传递字节(a la s.encode("utf-8")),而不是str s,但这是非常容易出错的和hackish的.我希望Sqlalchemy自动处理此操作,因为我告诉它我正在针对String列
4 2023-09-24
编程技术问答社区
从Java的DriverManager.getConnection()登录SQL Server失败,从Python的pymssql.connect()工作。
我正在尝试使用DriverManager.getConnection()从Java应用程序连接到SQL Server DB,但是我一直在使用"登录失败"错误.我尝试使用com.microsoft.sqlserver.jdbc.SQLServerDriver和net.sourceforge.jtds.jdbc.Driver连接,但都不断遇到问题. 这是我要连接的代码: Class.forName("net.sourceforge.jtds.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:jtds:sqlserver://SERVERADDRESS:1433;DatabaseName=DBNAME;user=USER;password=PASS"); 我知道该帐户可以访问该数据库,就像我之前从Python应用程序中使用pymssql.connect(SERVERADDRESS, USER, PASS, DBN
12 2023-09-24
编程技术问答社区