Dr_Elvis
@Dr_Elvis

Как побороть ошибку «psycopg2.ProgrammingError...»?

Привет!
У меня постоянно возникает ошибка
psycopg2.ProgrammingError: execute cannot be used while an asynchronous query is underway

Как я понял это из-за того я пытаюсь использовать данные, пока запрос еще не выполнился. как можно исправить? я использую как то так, если сократить код до просто наглядного примера:
def wait(conn):
    while True:
        state = conn.poll()
        if state == psycopg2.extensions.POLL_OK:
            break
        elif state == psycopg2.extensions.POLL_WRITE:
            select.select([], [conn.fileno()], [])
        elif state == psycopg2.extensions.POLL_READ:
            select.select([conn.fileno()], [], [])
        else:
            raise psycopg2.OperationalError("poll() returned %s" % state)

try:
    aconn = psycopg2.connect(f"dbname='{db_name}' user='{db_user}' host='{db_host}' password='{db_pass}'", async_=1)
    wait(aconn)
    c = aconn.cursor()
except Exception as e:
    print('Нет соединения с базой:', str(e))

@socketio.on('uploaddata')
def on_send(data):
    id = data['id']
    lablvlid = data['lablvlID']
    player = data['player']
    s = f"select * from cart_plcl where id='{id}' and lablvlid ='{lablvlid}' and player='{player}'"
    c.execute(s)
    wait(c.connection)
    result = c.fetchall()
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы