Проблема PyQt4 QSqlQuery при назначении значения переменной - PullRequest
0 голосов
/ 21 декабря 2018

У меня есть скрипт Python, как показано ниже, который я могу подключить к базе данных сервера и получить данные

db = QtSql.QSqlDatabase.addDatabase('QODBC')
db.setDatabaseName("DRIVER={SQL Server};SERVER=myservername;DATABASE=master;Trusted_Connection=yes")
db.open()

with open(QueryFile , "r") as readQuery:
        queryText = readQuery.read()
        readQuery.close()
query = QtSql.QSqlQuery()
query.exec_(queryText)

while query.next():
    for i in range (query.record().count()):
        temp_list.append(query.value(i))
    queryResultList.append(temp_list[:])
    del temp_list[:]
db.close()

, когда я выполняю запрос с объявлением-установкой переменной, тогда он выдает ошибку, как показано ниже

USE myDB
Declare @M as integer
set  @M= 3
Select top 1000 Position.latitude,
Position.longitude,
data
from mydatas,Position
where mydatas.data > @M

"QODBCDriver :: disconnect: невозможно отключить источник данных" Ошибка: "[Microsoft] [Драйвер ODBC SQL Server] [Общая память] ConnectionClose (closesocket ())." QODBCDriver :: cleanup: Unableосвободить дескриптор соединения "" QODBCDriver :: cleanup: Невозможно освободить дескриптор среды "
Ошибка:" [Microsoft] [Диспетчер драйверов ODBC] .... "

, но когда я закомментируюв строке set @M=3 и измените значение @M на 3 в предложении where:

USE myDB
Declare @M as integer
--set  @M= 3
Select top 1000 Str(Position.latitude, 13, 13),
Str( Position.longitude, 13, 13),
Str(data)
from dbo.mydatas,Position
where mydatas.data > 3

оно просто работает, как и ожидалось, в чем здесь проблема?

...