|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
FB 2.5.1 IBExpert 2015.11.17.1 Win XP Pro 32 MS Access любой версии -------------------------------------- Хочу понять можно-ли в IBEBlock (IBEScript) проходить по таблицам базы FB и вставлять их данные в целевые таблицы MS Access? Судя по коду, который нашел на ibexpert.net , надежда есть: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Так как опыта написания блоков у меня нет, то подобные задачи раньше я решал через создание клиента в Delphi, который перекидывал данные из одной базы в другую. Через IDE конечно решение можно сделать гибким и с кучей примочек и кнопок. Но в данном случае, если это конечно возможно, я бы хотел попробовать решить эту задачу средствами IBExpert, так как перед выгрузкой данных на стороне FB нужно запустить много запросов для кэширования итоговых таблиц. Вдруг кто решал уже успешно подобную задачу и есть пример успешно работающего кода IBEBlock? Буду признателен за пример, а то велосипед изобретать не очень хочется. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 02:17 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
Все. Сам разобрался. Вот пример: Код: sql 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.
Правда появились новые вопросы! 1. Как запускать IBEBlock с кириллическими именами полей таблиц Access? Если из окна отладчика (в режиме отладки) - все хорошо. Если из списка блоков по F9 - ругается на абракадабру в которую превращаются имена после принудительного преобразования в UTF-8: 2. Как в поля Access типа Date запихивать значение null? Я временно(надеюсь что существует более прямое решение) эту задачу решил так: сохраняю данные из FB в строковой переменной, проверяя в читающем запросе дату на FireBird'овское значение null: Код: sql 1. 2. 3. 4. 5. 6. 7.
а в пишущем запросе проверяю уже строку и вставляю либо Access'овский вариант NULL, либо отформатированную под дату строку: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 06:57 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
nofate2009, 1. Похоже на баг. 2. Тебе лучше знать, как засовывать NULL в Access. Присылай тестовые базы, fb и access, тогда смогу проверить и, возможно, поправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 07:16 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
С кодировкой кириллических имен вроде бы победилось. Пошаманил копипастом из Notepad++ с преобразованием текста в нем. И заметил, что при копировании текста с включенной русской раскладкой клавиатуры и последующей его вставкой в целевой редактор, кириллические имена сохраняются корректно. Или наоборот... В общем ничего нового - просто хореография с бубном ) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 07:31 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
IBExpert, Вот простой пример: Код: sql 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.
Вот тестовая база Access к этому примеру. У меня итог работы блока выглядит так: Модератор: Тема перенесена из форума "Firebird, InterBase". ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 07:56 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
nofate2009, С null'ами вроде разобрался. Проверь в свежем билде. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 09:39 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
IBExpert, да вы просто волшебник!!! Все работает теперь без костылей ))) --------------------------------------------- Может быть тогда получится и с кодировкой в блоках разобраться? Вот код тестового блока: Код: sql 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.
Вот тестовая база Access для него. Если запускать блок из контекстного меню блоков любой FB-Базы (Вкладка IBExpert "Базы"), то все замечательно: Но, если создать блок ровно с таким же кодом на вкладке IBExpert "Блоки", то при запуске его из контекстного меню (или по F9), вижу следующую картинку: ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 11:15 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
IBExpert, поторопился я вас хвалить ) С null вроде бы решилось. Но завалилось все остальное! IBEBlock теперь вместо строковых и целочисленных значений забивает поля базы Access нулями! Это видно даже на последнем тестовом примере с кириллическими именами объектов базы Access. Вот итог "успешной" работы блока: - Везде "0", вместо "любой текст". Думаю такой билд нужно срочно откатить! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 11:58 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
nofate2009Думаю такой билд нужно срочно откатить! Да прям, эти фичи полтора пользователя используют. Пойду погуляю, потом разберусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 12:25 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
nofate2009- Везде "0", вместо "любой текст". Вообще, там только обработка пустых значений изменилась, все остальное осталось как прежде. Предыдущая версия разве как-то иначе тот же блок отрабатывает, если значение не пустое? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 12:28 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
IBExpert, да, до этого я полностью написал блок, который заливал селект из FB в Access. Почти 30 полей и 3000 записей. Раз 20 успешно его прокатал. После обновы блок стал падать на первой-же записи при попытках забить поля нулями. Сейчас доеду до дома и попробую на другом компе запустить этот блок. Вдруг дело в клиентской машине. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 13:05 |
|
Insert в mdb-файл (MS Access) данных из FireBird средствами IBExpert
|
|||
---|---|---|---|
#18+
Мой косяк был. Исправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2015, 13:57 |
|
|
start [/forum/topic.php?fid=42&msg=39107333&tid=1599420]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
81ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 181ms |
0 / 0 |