Вы должны определить, какой тип исключения вы хотите перехватить. Поэтому напишите except Exception, e:
вместо except, e:
для общего исключения (оно будет записано в любом случае).
Другая возможность состоит в том, чтобы написать весь код try / кроме этого:
try:
with open(filepath,'rb') as f:
con.storbinary('STOR '+ filepath, f)
logger.info('File successfully uploaded to '+ FTPADDR)
except Exception, e:
logger.error('Failed to upload to ftp: '+ str(e))
в Python 3.x и современных версиях Python 2.x используют except Exception as e
вместо except Exception, e
:
try:
with open(filepath,'rb') as f:
con.storbinary('STOR '+ filepath, f)
logger.info('File successfully uploaded to '+ FTPADDR)
except Exception as e:
logger.error('Failed to upload to ftp: '+ str(e))
Предыдущие сообщения верны. Используйте ROW_NUMBER при использовании Microsoft SQL Server 2005 или выше.
Однако ваши теги не указывают, что вы используете MSSQL, поэтому вот решение, которое должно работать в большинстве реализаций СУБД. По сути, используйте коррелированный подзапрос, чтобы определить количество строк в том же наборе, которые меньше текущей строки, на основе значений предложения ORDER внешнего запроса. Примерно так:
SELECT T1.id,
T1.[name],
(SELECT COUNT(*)
FROM table T2
WHERE T2.[name] < T1.[name]) + 1 AS rowpos
FROM table T1
ORDER BY T1.[name]
Вы не указываете, какую СУБД вы используете, но если вы используете SQL Server 2005 или выше, вы можете использовать функцию ROW_NUMBER () - например:
SELECT id, name, ROW_NUMBER() OVER (ORDER BY name) AS RowNumber
FROM MyTable
Затем , чтобы получить заданную строку, вы можете использовать производную таблицу или общее табличное выражение - например, это:
;WITH NumberedRows
AS
(SELECT id, name, ROW_NUMBER() OVER (ORDER BY name) AS RowNumber
FROM MyTable)
SELECT RowNumber FROM NumberedRows WHERE id = 47
Чтобы отсортировать, «на какой странице» находится запись, вам нужно будет разделить номер строки на количество записей на страницу и округлить до ближайшего целого числа.
Ответ зависит от того, какую версию SQL вы используете.
Если вы используете MSSQL 2005, вы можете использовать новую аналитическую функцию ROW_NUMBER (), которая генерирует порядковые номера в том порядке, в котором мы определяем в порядке по пункту. Синтаксис функции ROW_NUMBER ():
ROW_NUMBER () OVER (ORDER BY)
или
ROW_NUMBER () OVER (PARTITION BY)
Если вы используете старую версию SQL Server, вы можете создайте временную таблицу со столбцом идентификаторов и выберите из нее результаты.