首页 > 数据库 >python中用ibm_db连接远程数据库出现SQLSTATE=58004 错误的解决方法。

python中用ibm_db连接远程数据库出现SQLSTATE=58004 错误的解决方法。

时间:2022-12-23 17:37:13浏览次数:41  
标签:ibm python 58004 db url result sql conn

官方抄了个例子

import ibm_db
ibm_db.connect("DATABASE=name;HOSTNAME=host;PORT=60000;PROTOCOL=TCPIP;UID=username; PWD=password;", "", "")

连接本地数据库没问题,但是连接远程数据库就出现以下错误

Exception: [IBM][CLI Driver] SQL1042C  An unexpected system error occurred.  SQLSTATE=58004  SQLCODE=-1042

百度搜到了 https://www.cnpython.com/qa/524656 这篇文章,试验在url中加上 

AUTHENTICATION=SERVER;

解决了问题。

附上完整代码,亲测有效。

import ibm_db
url = "DATABASE=testdb;HOSTNAME={0};PORT={1};PROTOCOL=TCPIP;UID={2};PWD={3};AUTHENTICATION=SERVER;".format(remoteserver, port,password)
print("------ db2v11: " + url + " ------")
sql = "select * from schema.tablename"
conn = ibm_db.connect(url, "", "")  # 连接数据库
stmt = ibm_db.exec_immediate(conn, sql)  # 执行sql
result = ibm_db.fetch_both(stmt)  # 将sql返回的第一行数据存入result,result是一个二维数组
result_list = []  # 定义列表存放所有结果
while result:
    ###循环获取sql返回的所有数据###
    result_list.append([result[0], result[1]])  # sql返回多少个字段,就按照列表索引进行获取,本例中是假设返回两个字段
    result = ibm_db.fetch_both(stmt)
for result in result_list:
    print(result)
if ibm_db.active(conn):
    ibm_db.close(conn)

 

标签:ibm,python,58004,db,url,result,sql,conn
From: https://www.cnblogs.com/panda4671/p/17001171.html

相关文章

  • python字符串的表示方法
    第一种表示方法:单引号string=‘Helloworld!’第二种表示方法:双引号string="Helloworld!"第三种表示方法:三个单引号string=‘’‘Helloworld!'''第四种表示......
  • python:for
      同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可......
  • python:while循环
      1.while的条件需得到布尔类型,True表示继续循环,False表示结束循环2.需要设置循环终止的条件,如i+=1配合i<100,就能确保100次后停止,否则将无限循环3.空格缩进......
  • python:if elif else
             ......
  • python:数据输入
    我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。在Python中,与之对应的还有一个input语句,用来获取键盘输入。数据输出:print数据输入:input使用......
  • python zfill() rjust()
    >>>aa="abcdde">>>aa.zfill(10)'0000abcdde'>>>aa.zfill(2)'abcdde'>>>aa.zfill(6)'abcdde'>>>aa.rjust(10,"*")'****abcdde'>>>ab="-100.24......
  • 前端程序员学python(爬虫向)(一文修到筑基期) (本文不含知识诅咒)
    我踏马来辣还有一件事:本教程配合c语言中文网python爬虫教程食用本教程不适用于未成年人一定要刷牙本教程不存在知识诅咒学完本教程即可进入筑基期js基础和本......
  • python:注释
    注释:在程序代码中对程序代码进行解释说明的文字。作用:注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。单行......
  • python:变量
    变量:在程序运行时,能储存计算结果或能表示值的抽象概念。简单的说,变量就是在程序运行时,记录数据用的变量,从名字中可以看出,表示“量”是可变的。所以,变量的特征就是,变量存......
  • python:类型转换
      类型转换不是万能的,毕竟强扭的瓜不会甜,我们需要注意:1.任何类型,都可以通过str(),转换成字符串2.字符串内必须真的是数字,才可以将字符串转换为数字......