|
|
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Инструменты: win7 64, python 3.3.4 x86, Excel 2010, Firebird 2.5.2 x64, fdb 1.4 Общая задача: открыть файл Excel и записать из него данные в БД FB. Особенности - файл из офиса 2003 (7 листов по 65000 элементов, итого примерно 450 000 элементов) код Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. при выполнении из cmd.exe дает такую ошибку ('Error while executing SQL statement:\n- SQLCODE: -413\n- conversion error from string “КАСАТКИНА АЛЕНА”\n- conversion error from string “КАСАТКИНА АЛЕНА”\n- conversion error from string “КАСАТКИНА АЛЕНА”', -413, 335544334) и при изменении запроса на явное приведение к типу r"INSERT INTO gpk_input (lat_name,name,to_date) VALUES (?,CAST(? AS VARCHAR(50)),?)" - эта же ошибка Такая же ошибка (с другим текстом в кавычках) при инсерте чисто латинской строки, т.е получается вопрос не в кодировке кирилицы (сперва про нее думал) Помогите плз идеями. Может трабл с ДЛЛ ФБ - на сервере 2003 86, у меня на хосте 7*64 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 13:47:04 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160rus_name.encode('utf-8') не вижу, что указан чарсет коннекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 13:55:04 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Скорее всего попутаны параметры и строка пытается вставиться в дату. Включай трассировку на сервере и смотри куда приходят какие значения. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 13:58:04 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Как минимум - kdv прав - не указан чарсет коннекта, соответственно fdb коннектится с чарсетом none. Кроме того, я бы смотрел вывод запроса вместе с параметрами непосредственно перед fb_cur.execute. И отдельно - не работал третьим пайтоном, но вроде как кастовать к UTF-8 в нем уже не надо. Или еще надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 14:35:27 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Переделал: 1. Код: python 1. 2. Код: python 1. 3. Код: python 1. т.е упростил запрос до минимума, установил рекомендуемые параметры в коннект. ошибка сохранилась в таком же виде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 14:51:28 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
miwaonline, я не сильный спец в питоне. Вроде это не каст в утф, а ВЫкаст из утф ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 14:53:51 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, в ошибке вроде явно указано conversion error from string “КАСАТКИНА АЛЕНА” т.е "на глаз" строка входит верная. Но что-то не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 14:57:42 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160установил рекомендуемые параметры в коннект.А кто рекомендовал ставить win1251 ? В любом случае - проверить utf8 гораздо быстрее, чем писать на форум... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:02:28 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160"на глаз" строка входит верная А ты абсолютно уверен, что она входит туда, куда ты думаешь?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:03:01 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
не работает даже в простом виде Код: python 1. ошибка та же, изменилась входная строка. пойду сравнивать ДЛЛки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:03:58 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
hvlad, база создана в кодировке вин1251, поэтому ее и указал в коннекте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:06:25 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160база создана в кодировке вин1251, поэтому ее и указал в коннектеВ коннекте нужно указывать кодировку, в которой работает клиент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:07:11 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
сменил коннект на УТФ Код: python 1. ошибка та же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:08:31 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, 1 нет, не уверен на 100. как и во всем прочем, что касается ИТ 2 как проверить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:22:22 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, Ну а метаданные для целевой таблицы привести можешь? Может там не varchar(), а что-то другое затесалось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:32:17 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
DarkMaster, CREATE TABLE GPK_INPUT ( ID BIGINT NOT NULL, LAT_NAME VARCHAR(50), NAME VARCHAR(50), TO_DATE TIMESTAMP, SEX SMALLINT, SEX_NAME CHAR(7), C_PASP_TYPE SMALLINT, PASP_TYPE_NAME VARCHAR(40), PASP_NUM VARCHAR(20), IDENTIF VARCHAR(20), REG_DATE TIMESTAMP, C_DIRECTION SMALLINT, DIRECTION_NAME CHAR(5), C_COUNTRY SMALLINT, COUNTRY_NAME VARCHAR(100), INS_DT TIMESTAMP DEFAULT CURRENT_TIMESTAMP(3) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:37:41 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, А что будет, если просто выполнить: fb_cur.execute("INSERT INTO table(NAME) VALUE ('АННА')")? Т.е. без всяких параметров, а тупо скормить текст запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 15:44:36 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s6791601 нет, не уверен на 100. как и во всем прочем, что касается ИТ 2 как проверить ? 1. Это правильно. 2. Как уже сказал: включить трассировку и посмотреть что точно приходит на сервер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 16:49:08 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, п.2 не понял о чем. Значит не знаю пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:23:12 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
DarkMaster, заремил sql_prep=fb_cur.prep - чтобы исключить ранний препар выполнение fb_cur.execute("INSERT INTO gpk_input(NAME) VALUES ('asdv')") ошибка та же. капец SQLCODE: -413 conversion error from string "asdv" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:29:23 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160п.2 не понял о чем. Значит не знаю пока RTFM %FIREBIRD%/doc/README.trace_services.txt Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:31:27 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, триггер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:36:03 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
kdvs679160, триггер? единственный, на поле ID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 17:58:30 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, tracelog 2014-03-19T16:59:24.7350 (664:01F5D19C) TRACE_INIT SESSION_1 my_trace 2014-03-19T16:59:24.7350 (664:01F5D19C) ATTACH_DATABASE D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 2014-03-19T16:59:34.6240 (664:01F5D19C) START_TRANSACTION D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 (TRA_1210, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE) 2014-03-19T16:59:34.6400 (664:01F5D19C) PREPARE_STATEMENT D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 (TRA_1210, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE) Statement 38: ------------------------------------------------------------------------------- INSERT INTO gpk_input(NAME) VALUES ('asdv') 6 ms 2014-03-19T16:59:34.6400 (664:01F5D19C) EXECUTE_STATEMENT_START D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 (TRA_1210, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE) Statement 38: ------------------------------------------------------------------------------- INSERT INTO gpk_input(NAME) VALUES ('asdv') 2014-03-19T16:59:34.6400 (664:01F5D19C) EXECUTE_TRIGGER_START D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 (TRA_1210, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE) GPK_INPUT_BI FOR GPK_INPUT (BEFORE INSERT) 2014-03-19T16:59:34.6400 (664:01F5D19C) ERROR AT jrd8_execute D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 335544334 : conversion error from string "asdv" 335544334 : conversion error from string "asdv" 2014-03-19T16:59:34.6560 (664:01F5D19C) ROLLBACK_TRANSACTION D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 (TRA_1210, READ_COMMITTED | REC_VERSION | WAIT | READ_WRITE) 7 ms, 6 write(s), 1 fetch(es), 1 mark(s) 2014-03-19T16:59:34.6560 (664:01F5D19C) FREE_STATEMENT D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 Statement 38: ------------------------------------------------------------------------------- INSERT INTO gpk_input(NAME) VALUES ('asdv') 2014-03-19T16:59:34.6560 (664:01F5D19C) DETACH_DATABASE D:\pgr.FDB (ATT_255, SYSDBA:NONE, ASCII, TCPv4:10.*.*.*) D:\Python v3.3\python.exe:5552 2014-03-19T16:59:34.6560 (664:01F5D19C) TRACE_FINI SESSION_1 my_trace ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 18:09:53 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160tracelog Из которого следуют две вещи: 1) Нихрена ты не поменял кодировку подключения. 2) Ошибка в триггере GPK_INPUT_BI. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 18:25:17 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, 1 сейчас коннект в режиме ASCII. ПРобовал 'UTF8' и 'WIN1251' 2 триггер и генератор удалил 3 тип поля ID сделал обычным Integer однофигственно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 18:36:00 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Капец. Дурка какая-то. Удалил индексы - заработало Вернул триггер и генератор - работает Вернул тип ИД в бигинт - работает. Из коннекта убрал чарсет и диалект - работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 18:52:06 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160 Код: python 1. s6791602014-03-19T16:59:24.7350 (664:01F5D19C) ATTACH_DATABASE D:\pgr.FDBТак pg n или pr g ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2014, 19:04:48 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Всё господа, благодарствую кто отозвался! ЗажилО Каким-то боком мешали индексы. Удалил их и всё шпиливили Рабочий вариант - без чарсета в коннекте, без диалекта, без декодирования строк и выковыривания дат. Не во всем "кошерно", но фунциклирует Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 448 162 записи обрабатывало 04:04:32, скорость ~30,5 зап/сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 12:00:52 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160448 162 записи обрабатывало 04:04:32, скорость ~30,5 зап/сек А чего так медленно? Насколько часто возникает такая задача? Если раз в месяц/квартал то заливка из CSV может быть сильно шустре. Это при условии, что тормозит не в FB (триггеры/железо...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 13:40:05 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
afgmА чего так медленно? Это же питон. Читающий из экселя. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 13:51:52 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160Рабочий вариант - без чарсета в коннекте это нерабочий вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 14:24:55 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovafgmА чего так медленно? Это же питон. Читающий из экселя. Ну я подозреваю что проблема именно в чтении из экселя, потому как вставка питоном работает нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 14:44:28 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
kdv, я ж грю - рабочий. но не во всем красивый изменены имена БД, исходного файла и аккаунта юзера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 16:12:35 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, поскольку сразу не получилось работать с ФБ, то пробовал из екселя в csv тем же питоном. время то же - 3,5..4 часа в зависимости от нагрузки на ПК ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 16:13:59 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
afgms679160448 162 записи обрабатывало 04:04:32, скорость ~30,5 зап/сек А чего так медленно? Насколько часто возникает такая задача? Если раз в месяц/квартал то заливка из CSV может быть сильно шустре. Это при условии, что тормозит не в FB (триггеры/железо...). задача не реалтайм, будет работать раз в 3-6 мес. железо = обычный "писюк". триггер - единственный для работы генератора. имхо ботлнек в данном случае = эксель, ибо переписывание этих же данных из екселя в csv занимает примерно столько же времени. Технологичность самой затеи лучше не обсуждать )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2014, 16:18:13 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160ботлнек в данном случае = эксельМожно выкинуть его, и читать из файла не используя сервер автоматизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 16:12:23 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, я вот тоже подумал, ведь можно вызвать метод экселя, сохраняющий данные в csv, и уже так их обработать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2014, 16:43:10 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
kdv, Можно и так. Бедт время - попробую. Но как обычно есть "бубен". 1. Многолистовой файл (xls) можно сохранить только отдельными файлами листам (CSV). 2. MS насколько я знаю в этой операции не позволяет принудительно установить символ-разделитель; по дефолту это запятая, а не точка-с-запятой, как у нормального софта Можно еще пересохранить в книгу 2010, со всех листов перенести данные на первый и потом уже попробовать работу именно с книгой 2010 и с CSV Всё равно придется что-то писАть, дабы компенсировать корявость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 11:02:31 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s6791602. MS насколько я знаю в этой операции не позволяет принудительно установить символ-разделитель; по дефолту это запятая, а не точка-с-запятой, как у нормального софта У тебя Питон, а у него формат экселя указать можно при парсинге csv. С одной стороны стоит разделить задачи: извлекать данные в csv одним модулем, а загружать - другим. С другой стороны вряд ли будет заметный выигрыш в производительности от этого. А вот работу с листом надо бы переделать: во-первых, у экселя можно получить рабочую область листа, и не проходить все строки. Во-вторых, получение экселевского range в виде массива намного быстрее обращения к отдельным ячейкам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 11:21:47 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Roman IgnatievВо-вторых, получение экселевского range в виде массива намного быстрее обращения к отдельным ячейкам. Я бы сказал на порядок быстрее ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2014, 11:28:07 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. в таком виде разбор одного листа занимает не 40 мин, а 28. Не на порядок, но порядочно, -30% :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 14:49:02 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160, Код: python 1. Это построчно? Разговор был о том, чтобы весь лист загнать в массив, а потом в цикле залить в базу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:30:44 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Это ты одну строку взял. Вообще говоря, должно быть Sheet.Range(Sheet.Cells(y, 1), Sheet.Cells(y,14)) .Value , вроде бы это возвращает кортеж строки. Как я уже говорил, есть свойство UsedRange, которое возвращает использованный диапазон. Не хочешь - просто бери через range весь лист и бегай по кортежам вложенными циклами, памяти завались сейчас. Кажется, Sheet.Range(Sheet.Cells(2, 1), Sheet.Cells(65002,14)).Value даст тебе что нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:32:18 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160for y in range(2,65002) а окончание диапазона никак нельзя в листе узнать, "до цикла"? Зачем шерстить 65к строк, если в листе может быть всего 100 строк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 16:35:56 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
kdv, Согласен, "жесткий" цикл есть некрасиво. Но на фоне таких данных ИМХо не играет глобальной роли. Лист1...Лист6 = 65 000 Лист7 = 58 000 Я ж грю - исходный файл из офиса 2003, где гораздо большие ограничения на количество строк. А логически это всё составляет одну БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 17:02:48 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
kdvs679160for y in range(2,65002) а окончание диапазона никак нельзя в листе узнать, "до цикла"? Зачем шерстить 65к строк, если в листе может быть всего 100 строк? Можно. Это метод экселя. В данном случае должно быть что-то типа Sheet.UsedRange.Rows.Count ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 17:48:54 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
stelvic, Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. Эффект есть, но не глобальный. Строка arr= [str(c) for c in Sheet.Range(Sheet.Cells(2, 1), Sheet.Cells(65000,14))] выполняется 18 мин для каждого листа. Реально не для Екселя такие работы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 18:11:24 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160Эффект есть, но не глобальный. Строка arr= [str(c) for c in Sheet.Range(Sheet.Cells(2, 1), Sheet.Cells(65000,14))] выполняется 18 мин для каждого листа. Реально не для Екселя такие работы Это ответ скорее Dnico , чем мне. Я же посоветовал как ограничить диапазон строк. Впрочем, если ты уверен, что на листе всегда используется 65000 строк этот совет тоже не сильно поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 10:34:25 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
s679160Эффект есть, но не глобальный. Строка arr= [str(c) for c in Sheet.Range(Sheet.Cells(2, 1), Sheet.Cells(65000,14))] выполняется 18 мин для каждого листа. Реально не для Екселя такие работы И вдогонку. Ты этой строчкой мало, что изменил. Замерь время выполнения вот этой сточки: Код: python 1. а еще лучше этой: Код: python 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 16:27:25 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Sheet.UsedRange .Value - выдает кортеж. Без взятия Value Питон идет по IEnumVariant похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 17:29:57 |
|
||
|
не получается вставить строку в БД FB из Python
|
|||
|---|---|---|---|
|
#18+
Вот не поленился: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Разница между Range vs Range.Value довольно отчетлива... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 17:41:10 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563778]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
106ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 557ms |

| 0 / 0 |
