powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC, try except и ошибка при Post
25 сообщений из 28, страница 1 из 2
FireDAC, try except и ошибка при Post
    #39813484
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеем Д7 + FireDAC примерно 2013г.

Вот такой простой код в рунтайме все равно выкидывает на экран эксепшн
Код: pascal
1.
2.
3.
4.
5.
6.
7.
qExec.insert;
....
    try
      qExec.Post;
    except
      inc(Errors);
    end;l

"Нарушение уникальности ключа при вставке".
Допустим так надо. Но хочется полностью проигнорировать ошибку и продолжить работу.
Внутрь except оно заходит.

Манипуляции с обработчиком OnPostError и TDataAction у датасета ничего не дали.

Задача - проимпортировать только новые (по значению ключа) записи у произвольной таблицы.
Как подавить сообщение ?
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813516
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoКак подавить сообщение ?Запустить без отладчика
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813527
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_L_argoКак подавить сообщение ?Запустить без отладчикаЧистый рунтайм. Без среды и отладчика.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813531
Фотография Kast2K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoЗадача - проимпортировать только новые (по значению ключа) записи у произвольной таблицы.


Код: sql
1.
2.
3.
4.
5.
6.
7.
if not (select null from tbl where a=aa) 
 begin
insert into tblMain
(a,b,c)
values
(aa,bb,cc)
  end
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813581
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kast2KL_argoЗадача - проимпортировать только новые (по значению ключа) записи у произвольной таблицы.


Код: sql
1.
2.
3.
4.
5.
6.
7.
if not (select null from tbl where a=aa) 
 begin
insert into tblMain
(a,b,c)
values
(aa,bb,cc)
  end

Не годится. Нужно много телодвижений для получения валидного SQL. Проще уж делать подзапрос на существование ключа.
И то, состав полей ключа еще нужно получить. Не то, чтобы сложно, но опять таки телодвижения.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813583
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
merge там есть?

Быстрее залить всё без индексов во временную таблицу и дернуть его, чем дро дергать каждую строчку в ожидании чуда.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813618
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoЧистый рунтайм. Без среды и отладчика.Не верю. Приведенный вами код никакого сообщения без отладчика показывать не должен
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813631
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_, это если нет явного или неявного обработчика к-й это делает
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813739
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кароч сделал заливку во времянку и вставку в пост. таблицу по not exists()

Попутно оказалось, что выполнить ExecSQL

select * into #MyTmp from ......

не так просто. :)
ФайрДАК понимает его как селект-запрос. Команда тупо игнорилась.
Добавил впереди IF 1=1 и заработало :)

Тема эксепшена не раскрыта, но цель достигнута: импорт новых строк работает.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813824
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoselect * into #MyTmp from ......
MS SQL? Там есть merge.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813847
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanL_argoselect * into #MyTmp from ......
MS SQL? Там есть merge.
Там много чего есть, в том числе и Хранимые процедуры и Транзакции и Try...Catch...
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813848
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoКароч сделал заливку во времянку и вставку в пост. таблицу по not exists()

Попутно оказалось, что выполнить ExecSQL

select * into #MyTmp from ......

не так просто. :)
ФайрДАК понимает его как селект-запрос. Команда тупо игнорилась.
Добавил впереди IF 1=1 и заработало :)

Тема эксепшена не раскрыта, но цель достигнута: импорт новых строк работает.
Зачем это делать через клиента?!
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813854
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GerasimenkoЗачем это делать через клиента?!1. Не понял вопроса.
2. Потому что все равно выйдет Динамический SQL.
3. Все нужно сделать внутри приложения без применения сторонних средств и для максимально низкой версии МССКЛ. Хотя бы с 2005.

Задача: из произвольной базы извлечь некие срезы данных и накатить их одним файлом в другую такую же базу. Например отобрать новые карточки товара и залить их в другую пустую иди непустую БД.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813873
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoGerasimenkoЗачем это делать через клиента?!1. Не понял вопроса.
2. Потому что все равно выйдет Динамический SQL.
3. Все нужно сделать внутри приложения без применения сторонних средств и для максимально низкой версии МССКЛ. Хотя бы с 2005.

Задача: из произвольной базы извлечь некие срезы данных и накатить их одним файлом в другую такую же базу. Например отобрать новые карточки товара и залить их в другую пустую иди непустую БД.
Это был намек на dts/ssis - на встроенные средства, которые надежнее и быстрее.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813977
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanЭто был намек на dts/ssis - на встроенные средства, которые надежнее и быстрее.Встроенные куда ? В комп клиента ?
Эти встроенности - говно. Что они умеют ? Подсунь туда дату чуть не в том формате и оно адово зафейлит.

Недавно пробовал импортировать CSV. Пока настроил - запарился. :)

А как работать CSV для таблиц с БЛОБами/binary() ?
Как-то не сталкивался, но думаю, что там тоже будет АДъ. :)
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39813987
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoВ комп клиента ?
dts/ssis это часть ms sql-сервера. Клиенту вообще должно быть всё равно на это.
С блобами нет проблем.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814005
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argowadmanЭто был намек на dts/ssis - на встроенные средства, которые надежнее и быстрее.Встроенные куда ? В комп клиента ?
Эти встроенности - говно. Что они умеют ? Подсунь туда дату чуть не в том формате и оно адово зафейлит.

Недавно пробовал импортировать CSV. Пока настроил - запарился. :)

А как работать CSV для таблиц с БЛОБами/binary() ?
Как-то не сталкивался, но думаю, что там тоже будет АДъ. :)
авторЭти встроенности - говно. Что они умеют ? Подсунь туда дату чуть не в том формате и оно адово зафейлит.
Все, что нужно знать о ТС-е, пытающимся оказать помощь...
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814038
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanL_argoВ комп клиента ?
dts/ssis это часть ms sql-сервера. Клиенту вообще должно быть всё равно на это.
С блобами нет проблем.Так уж нет... Ога...
Открываем ССМС. Запускаем мастер экспорта (в нестуктурированный файл) выбираем таблицу с БЛОБом и.....
SSMSСообщения
Ошибка 0xc0208030: Задача потока данных 1: входной столбец "ObjFileBody" (81) имеет тип данных DT_IMAGE, который не поддерживается. Используйте вместо него DT_TEXT или DT_NTEXT, выполняйте преобразования данных в тип DT_IMAGE или из него при помощи компонента преобразования данных.
(Мастер импорта и экспорта SQL Server)Т.е. при наличии готового мастера нельзя сделать простую операцию. :)
И это экспорт, который казалось бы можно сделать однозначно просто.
Что уж про импорт говорить....
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814058
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoТ.е. при наличии готового мастера нельзя сделать простую операцию. :)
И это экспорт, который казалось бы можно сделать однозначно просто.
Что уж про импорт говорить....
"Тут нужен программист". (с)
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814161
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanL_argoТ.е. при наличии готового мастера нельзя сделать простую операцию. :)
И это экспорт, который казалось бы можно сделать однозначно просто.
Что уж про импорт говорить....
"Тут нужен программист". (с)Ога... Один программист тут советует клиенту наставить "стандартные" SSMS/SSIS/SSDT и с помощью них импортировать произвольную инфу неподготовленному юзеру.
Из Вашего меседжа непонятно, как решить задачу произвольного экспорта/импорта при условии, что это должен делать юзер без подготовки и без установки доп. софта.

Мой импорт ориентирован на неподготовленного юзера. Который выделил строчки, сохранил в файл, отправил коллеге, а коллега втянул файл в другую БД одним кликом. Никакого стороннего софта.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814380
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoОдин программист тут советует клиенту наставить "стандартные" SSMS/SSIS/SSDT и с помощью них импортировать произвольную инфу неподготовленному юзеру.

Это:
1. Бардак, что импортом чего угодно занимается "юзер".
2. Ставить ничего не нужно "юзеру", это компоненты сервера.

В прочем, какая разница...
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814454
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman1. Бардак, что импортом чего угодно занимается "юзер".
2. Ставить ничего не нужно "юзеру", это компоненты сервера.1. А кто должен этим заниматься ? Программист ? :)
2. Исполнителю передали файл для импорта. Как это выглядит для того, кто будет осуществлять импорт ? Что и куда он должен поместить и запустить ?

зы: Юзер - пользователь инф. системы. Возможно с повышенными правами, если речь про импорт.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814471
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo1. А кто должен этим заниматься ? Программист ? :)
2. Исполнителю передали файл для импорта. Как это выглядит для того, кто будет осуществлять импорт ? Что и куда он должен поместить и запустить ?
Первое не уровень компетентности программиста, второе - не (продвинутого) пользователя.
Это орг.вопросы, которые должны решаться тимлидом/руководителем/архитектором, которого, судя по всему, не хватает.
Да и тут они выходят за рамки темы и раздела.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814576
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanL_argo1. А кто должен этим заниматься ? Программист ? :)
2. Исполнителю передали файл для импорта. Как это выглядит для того, кто будет осуществлять импорт ? Что и куда он должен поместить и запустить ?
Первое не уровень компетентности программиста, второе - не (продвинутого) пользователя.
Это орг.вопросы, которые должны решаться тимлидом/руководителем/архитектором, которого, судя по всему, не хватает.
Да и тут они выходят за рамки темы и раздела.Это не ответы на вопросы. Это бла-бла.
...
Рейтинг: 0 / 0
FireDAC, try except и ошибка при Post
    #39814580
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoИмеем Д7 + FireDAC примерно 2013г.

Вот такой простой код в рунтайме все равно выкидывает на экран эксепшн
Код: pascal
1.
2.
3.
4.
5.
6.
7.
qExec.insert;
....
    try
      qExec.Post;
    except
      inc(Errors);
    end;l

"Нарушение уникальности ключа при вставке".
Допустим так надо. Но хочется полностью проигнорировать ошибку и продолжить работу.
Внутрь except оно заходит.

Манипуляции с обработчиком OnPostError и TDataAction у датасета ничего не дали.

Задача - проимпортировать только новые (по значению ключа) записи у произвольной таблицы.
Как подавить сообщение ?
Посмотреть на исходники?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FireDAC, try except и ошибка при Post
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]