Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2019 13:36:15

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

Друзья подскажите как выполнить запрос UPDATE на майкрософт sql сервер

Вот мой кусок кода

Мне нужно сделать апдейт 3-х колонок Key, Value, Encrypted ID колонки нету только нумерация 1
import pypyodbc
import requests
import json
import urlopen
import argparse
import configparser
import mysql.connector
import MySQLdb
from mysql.connector import errorcode

config = configparser.ConfigParser()
config.read('database.ini')
headers = {'Content-Type': ‘application/json’}
database = config
username = config
password = config
server = config
import pypyodbc
import pandas as pd
import pyodbc
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
Server=db.windows.net;”
“Database=python-vps701;”
“uid=user;pwd=5RNGdfsdfwefgPgeXYN”)

cursor = conn.cursor()
cursor.execute(“UPDATE dbo.SiteSettings SET Value = ‘66668888rrrrrr’ ,Encrypted = ‘False’ WHERE 1=1;”)
for row in cursor:
print(row)


Получаю эту ошибку
Traceback (most recent call last):
File “Dpython/db-vps/db-vps70.py”, line 29, in <module>
for row in cursor:
pyodbc.ProgrammingError: No results. Previous SQL was not a query.

Process finished with exit code 1


Как еще можно передать в запрос UPDATE переменные, например Value определить переменной ?

Отредактировано vitk (Сен. 2, 2019 13:59:08)

Офлайн

#2 Сен. 2, 2019 14:20:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

vitk
майкрософт sql сервер
vitk
import MySQLdb
from mysql.connector import errorcode


майкрософт sql сервер и MySQL они даже не братья, это дальние родственники, никак с помощью MySQLdb у вас не выйдет работать с БД MS SQL Server



Офлайн

#3 Сен. 2, 2019 14:25:50

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

FishHook
import pyodbc
Я сделал импорт под mssql с ним работаю, то просто модуль в импорте стоит

import pyodbc

Коннект такой
conn = pyodbc.connect

Офлайн

#4 Сен. 2, 2019 14:56:18

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

vitk
А где у вас fetch, разве так читают из курсора? Покажите, по какой документации пример строили.



Офлайн

#5 Сен. 2, 2019 15:22:37

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

Уже разобрался, вот так у меня работает запрос, подскажите почему не опеределяет Key у меня колонка так называется мне нужно сделать Key = SiteGuid но когда добавляю то не работает запрос, получаю єту ошибку

Traceback (most recent call last):
File “Dpython/db-vps/db-vps70.py”, line 23, in <module>
with cursor.execute(tsql, ‘SiteGuid’, ‘4534534xxddxxxxrrr’, ‘False’, ‘1’):
pyodbc.ProgrammingError: ('42000', " Incorrect syntax near the keyword ‘Key’. (156) (SQLExecDirectW); Statement(s) could not be prepared. (8180)")

import pypyodbc
import pandas as pd
import pyodbc

config = configparser.ConfigParser()
config.read('database.ini')
headers = {'Content-Type': ‘application/json’}
database = config
username = config
password = config
server = config
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
#Update Query
print ('Updating Location for SiteGuid')
tsql = “UPDATE SiteSettings SET Key = ?, Value = ?, Encrypted = ? WHERE 1 = ?”
with cursor.execute(tsql, ‘SiteGuid’, ‘4534534xxddxxxxrrr’, ‘False’, ‘1’):
print ('Successfully Updated!')

Документация
https://sqlchoice.azurewebsites.net/en-us/sql-server/developer-get-started/python/windows/step/2.html

Офлайн

#6 Сен. 2, 2019 16:44:49

vitk
Зарегистрирован: 2019-08-30
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Выполнить sql запрос на сервер mssql

Решил сам так

cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
#Update Query
print ('Updating Location for SiteGuid')
tsql = “INSERT INTO dbo.SiteSettings VALUES (?,?,?);”
with cursor.execute(tsql, ‘SiteGuid’, ‘3er5’, ‘False’):
print ('Successfully Updated SiteSettings Table!')

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version