python 连接 sqlserver 数据库读取表数据

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:sqlserver.py
import pyodbc
 
# 数据库服务器信息
driver = 'SQL Server Native Client 10.0'  # 因版本不同而异
server = '194.00.000.00,00000'  
user = 'user'
password = 'password'
database = 'database'  #数据库名称
 
def select_log(server,user,password,database,sql,projectname):
    reList = []
    conn = pyodbc.connect(driver=driver, server=server, user=user, password=password, database=database)
    cur = conn.cursor()
    cur.execute(sql)       #执行SQL语句
    row = cur.fetchone()
    cur.execute(row[0])
    rows = cur.fetchall()  # list
    conn.close()

    for row in rows:
        if row.status == "未成功" :
             reList.append (projectname+':'+str(row))
    
    return reList

### Python 连接 SQL Server 数据库并插入数据后获取返回值 为了实现这一目标,可以使用 `pymssql` 库来连接 SQL Server 并执行相应的操作。以下是详细的说明和代码示例。 #### 安装 pymssql 首先需要安装 `pymssql` 库,可以通过 pip 来完成此操作: ```bash pip install pymssql ``` #### 创建数据库连接 要创建与 SQL Server 的连接,需提供必要的服务器参数给 `pymssql.connect()` 方法。这包括主机名、用户名、密码以及数据库名称等信息[^2]。 ```python import pymssql conn = pymssql.connect( server='your_server_name', user='your_username', password='your_password', database='your_database' ) cursor = conn.cursor() ``` #### 执行插入语句并获取返回值 当向中插入新记录时,通常希望获得某些反馈,比如自增 ID 或者受影响的行数。下面展示了如何做到这一点。这里假设有一个名为 `users` 的格,并且该具有自动递增的主键字段 `id`. ```python # 准备插入的数据 data_to_insert = ('John Doe', 'johndoe@example.com') # 构建带有 OUTPUT 子句的 INSERT 语句用于捕获返回值 insert_query = """ INSERT INTO users (name, email) OUTPUT INSERTED.id -- 返回刚插入的那一行的 id 值 VALUES (%s, %s); """ try: cursor.execute(insert_query, data_to_insert) # 提交事务以保存更改 conn.commit() # 获取最后插入的ID作为返回值 inserted_id = cursor.fetchone()[0] except Exception as e: print(f"An error occurred while inserting the record: {e}") finally: # 关闭游标和连接 cursor.close() conn.close() print(f"The new user was successfully added with an ID of {inserted_id}.") ``` 上述代码片段不仅实现了将一条新的用户记录加入到 `users` 的操作,还利用了 T-SQL 中的 `OUTPUT` 子句来捕捉刚刚被插入那一行的具体信息,在这里是用户的唯一标识符 `id`。这样就可以确认哪条记录已经被成功添加到了数据库里。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值