Форум сайта python.su
Всем доброго времени суток. Есть такая задача нужно например каждые 20 мин считывать ряд значений по Id. На данном моменте я считываю по определенному. Подскажите пожалуйста как считывать по Id новые значения, не трогая прошлые
cursor.execute('SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = 80 ') results = cursor.fetchall()
Офлайн
давайте другие id в запрос, чтобы получить другую выборку. Это не очиведно?
Офлайн
вы не поняли прога должна работать в автомате, а не в ручную
Офлайн
y_starynets“вручную” работающая прогрмаа это вообще как?
вы не поняли прога должна работать в автомате, а не в ручную
y_starynetsВот я читаю ваше первое сообщение. Вы получаете данные из БД по ID. Ну значит эти самые ID программе известны.
Есть такая задача нужно например каждые 20 мин считывать ряд значений по Id.
y_starynetsХороша и любовна русская языка. По чему определенному вы считываете неясно, но могу догадаться, что по определенному ID. Это и так было в общем-то понятно, что считывать данные можно только по определенному ID, как это делать по неопределенному - загадка.
На данном моменте я считываю по определенному.
y_starynetsНу логично предположить, что для того чтобы получить другую выборку по ID, вам надо подставлять в запрос другие ID.
Подскажите пожалуйста как считывать по Id новые значения, не трогая прошлые
Офлайн
Я с вами согласен. Но я пишу в запросе в ручную а мне нужно чтобы оно подставляло само, без моего вмешательства
Офлайн
y_starynetsНу вам же знакомо понятие переменная? Программы написанные на императивных языках вообще в принципе так работают - это некий набор действий, который изменяет значения переменных. А подставить значение переменной в строку можно множеством способов
Я с вами согласен. Но я пишу в запросе в ручную а мне нужно чтобы оно подставляло само, без моего вмешательства
Офлайн
Весь набор ID известен скрипту, который будет запускать запрос? Если да, то перебрать в цикле все ID или в запрос подставить диапазон значений и получить выборку по всем ID.
Если не известно последнее, имеющееся в БД ID, то можно же запросить max(id).
# вот полный аналог твоего cursor.execute('SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = 80 ') my_new_id = 80 zapros = 'SELECT DewpointActual, TemperatureActual as count FROM dbo.Alawa WHERE Id = {} '.format(my_new_id) cursor.execute(zapros)
Отредактировано Rafik (Сен. 5, 2019 09:57:01)
Офлайн
Rafik
Cпасибо, все работает. Скажите еще пожалуйста как мне в Id передать список значений например
Офлайн
y_starynetsЕсли требуется использовать в запросе IN, тогда можно весь список значений объединить в строку с разделителем “запятая” и подставить format-ом в текст запроса. Например, для sqlite, как-то так
…как мне в Id передать список значений например
my_ids = ",".join([str(_) for _ in range(0,10,2)]) # Записи с чётными id от 0 до 9 zaproz = "... WHERE Id IN ({})".format(my_ids) # Хвост запроса будет выглядеть так. Многоточием обозначено место начала строки запроса
Отредактировано Rafik (Сен. 13, 2019 09:24:13)
Офлайн
Rafik
Спасибо все работает
Офлайн