|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
tanglir, Создал, ищу теперь его куда она запихнула этот DSN. ппц... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 19:16 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
tanglirПитон33, а создать файловый DSN и прочитать его, как я выше писал, попробовал? Обратить внимание на то, что OPTION в данном случае - это ЧИСЛО, попробовал? Нашёл! Но вы ни за что не догадаетесь! :) OPTION=67108864 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 19:26 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
tanglir, Ну вот теперь можно сказать один способ работает! Строка подключения будет выглядеть так: Driver=MySQL ODBC 3.51 Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT=3306;OPTION=67108864 Параметр 67108864 означает что будет MYSQL_OPTION_MULTI_STATEMENTS_ON - выполнение сразу нескольких команд. После этого подключения я успешно передал в MySQL сразу две команды разделённые ";" и добавил из фокса сразу две записи. Думаю это будет уже как минимум в два раза быстрее работать чем по одной записи! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 19:38 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
Питон33tanglirПитон33, а создать файловый DSN и прочитать его, как я выше писал, попробовал? Обратить внимание на то, что OPTION в данном случае - это ЧИСЛО, попробовал? Нашёл! Но вы ни за что не догадаетесь! :) OPTION=67108864 Когда решение найдено найти на него ссылки гораздо проще Оказывается надо было искать по ключевому слову FLAG_MULTI_STATEMENTS. Например, есть ссылки здесь http://www.sql.ru/forum/actualthread.aspx?tid=478429 67108864 = 2^26 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 19:41 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
ВладимирМ, Должен не согласиться с вами. Тема на которую вы дали ссылку слишком обобщённая. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 20:19 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
Питон33Должен не согласиться с вами. Тема на которую вы дали ссылку слишком обобщённая. Ну, в этой теме отмечены 2 момента 1. Перечислены значения OPTION для строки соединения и что они обозначают 2. Показан пример закачки таблицы в MySQL. Причем начиная с создания ее структуры и кончая формированием пакета команд на вставку многих записей. Правда, там надо поставить ограничитель на размер формируемой строки, чтобы можно было использовать и для данного случая. А так, фактически готовое решение для данной задачи. Один из вариантов решения, разумеется. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2011, 23:31 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
ВладимирМ, Там у него сложный пример, разбираться долго, а тут мы понятно всё расписали. Наверняка кому нибудь пригодится. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2011, 03:29 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
Изучать PostgreSQL начал совсем недавно. Тоже встал вопрос об импорте данных из DBF на сервер SQL. Открыл для себя следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Все вроде должно работать, кроме тех случаев когда поле типа DATETIME, DATE, TIME (FoxPro) пусты. Вот тут то возникла у меня загвоздка. Как простым методом пустую строку преобразовать в пустую дату? Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2011, 11:16 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
Черт, что-то не особо вчитывался в заголовок темы. Тут же про MYSQL )) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2011, 11:22 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
BerlogaЧерт, что-то не особо вчитывался в заголовок темы. Тут же про MYSQL )) Ну ничего, откройте в этом форуме новый топик типа VFP2PostgreSQL и поделитесь решениями с программистами. Очень даже полезное дело. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2011, 11:43 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
> Автор: Berloga > Все вроде должно работать, кроме тех случаев когда поле типа DATETIME, DATE, TIME (FoxPro) пусты. Вот тут то > возникла у меня загвоздка. Как простым методом пустую строку преобразовать в пустую дату? Скажу сразу, я не работаю с Postgree, но методы применяю одинаковые на других серверах. Во первых у меня нет "пустой строки" подразумевающей дату. Я всегда такие строки заменяю на Null И во вторых, я стараюсь не использовать "неявные" преобразования типов - в данном случае строк в дату, а всегда стараюсь писать явный cast к нужному типу данных. Из во-первых и во-вторых следует то что Null замечательно кастится к любому типу без ошибок, для отображения пользователю в самом фокспро есть например Код: plaintext
запросах, ну или функция coalesce на MSSQL и FB Насчет простого метода, я бы порекомендовал сделать Update всех записей содержащих пустую строку на Null, и изменить тип столбца на тип DATETIME. Это возможно повлечет за собой переделку приложения, но я считаю что это необходимый шаг :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2011, 11:57 |
|
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
|
|||
---|---|---|---|
#18+
Питон33tanglir, Ну вот теперь можно сказать один способ работает! Строка подключения будет выглядеть так: Driver=MySQL ODBC 3.51 Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT=3306;OPTION=67108864 Параметр 67108864 означает что будет MYSQL_OPTION_MULTI_STATEMENTS_ON - выполнение сразу нескольких команд. После этого подключения я успешно передал в MySQL сразу две команды разделённые ";" и добавил из фокса сразу две записи. Думаю это будет уже как минимум в два раза быстрее работать чем по одной записи! Для тех кому интересна данная тема могу сообщить результаты эксперимента: 1. Оптимальный запрос на выполнение INSERT SQL: Рекомендую передавать в MySQL по 10000 записей одной командой, но не больше. 2. Скорость выполнения одной такой команды: Тестировалось без Мемо полей на сервере i5 - скорость составляет 0.2-0.8 сек, т.е. доли секунды! Зависит разумеется от количества передаваемых полей. Иными словами за один раз добавляется сразу 10000 записей в MySQL. В общем я очень доволен найденным решением и скорость работы с сервером теперь на несколько порядков выше. Всем удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2011, 04:04 |
|
|
start [/forum/topic.php?fid=41&msg=37093933&tid=1584223]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 146ms |
0 / 0 |