Как я могу получить данные из twisted.enterprise.adbapi, а не из "отложенного" объекта - PullRequest
0 голосов
/ 05 апреля 2019

Когда я использую twisted.enterprise.adbapi с sql_server, я всегда получаю объект "Deferred", но мне нужны доступные данные в списке или в tulpe.

import pymssql
from twisted.internet import reactor   
from twisted.enterprise import adbapi
db_settings = {
 "host" : "127.0.0.1",
 "port" : "1433",
 "user" : "sa",
 "password" : "sa",
 "database" : "dataDB",
 "cp_min" : "3",
 "cp_max" : 10,
 "cp_noisy" : "True",
 "charset" : "utf8"
}

dbpool = adbapi.ConnectionPool("pymssql", **db_settings)

def getData():
    return dbpool.runQuery("SELECT * FORM dataDB.Base")

reactor.callLater(4, reactor.stop)
print getData()
reactor.run()

Приведенное выше выполнение кода , просто введите «Deferred at 0x4ca2948» в команде. Что мне делать дальше?

1 Ответ

0 голосов
/ 09 апреля 2019

Используйте следующий код, Можно получить данные из «Отложенного» * ​​1001 *

def getAge():
 return dbpool.runQuery("SELECT * FROM Base")

def getValue(L):
    print L[0][0]  # type(L[0]) is Tuple

getAge().addCallback(getValue)
reactor.run()

Но я все еще не знаю значение «L» в функции getValue.Может быть, буква "L" является результатом getAge (), я не уверен.

...