powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
5 сообщений из 5, страница 1 из 1
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
    #38953292
SJenek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Мне нужно изменять выборочно отдельные ячейки таблицы. FDQuery как я понял может это сделать в связке с FDUpdateSQL, но как это реализовать не пойму. Примеры в документации FireDac скудны.
Я делаю
MainForm->FDUpdateSQL1->ModifySQL->Add(UPDATE !Table SET !Attribute = :NEW_AttributeOpen WHERE !ID = :OLD_ID);
MainForm->FDUpdateSQL1->Commands[arUpdate]->MacroByName("Table")->AsRaw = "dbo.TableBarrier";
MainForm->FDUpdateSQL1->Commands[arUpdate]->MacroByName("Attribute")->AsRaw = "AttributeOpen";
MainForm->FDUpdateSQL1->Commands[arUpdate]->MacroByName("ID")->AsRaw = "ID";
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("NEW_AttributeOpen")->ParamType = ftInteger;
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("NEW_AttributeOpen")->DataType = ptInput;
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("OLD_ID")->ParamType = ftInteger;
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("OLD_ID")->DataType = ptInput;
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("NEW_AttributeOpen")->AsInteger = 1;
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("OLD_ID")->AsInteger = 1;
Как теперь это передать в FDQuery и выполнить непонятно!
Буду благодарен за любую помощь.
...
Рейтинг: 0 / 0
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
    #39031577
RenVold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SJenek,
Мне кстати, тоже не понятно.

Бросил компоненты FDQuery + FDUpdateSQL, вроде с помощью встроенного редактора FDUpdateSQL сгенерировал скрипт. А как его теперь использовать через FDQuery - не пойму.

Есть примеры их связывания?
...
Рейтинг: 0 / 0
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
    #39031595
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 SJenek:

Нафига тебе макрос с именем таблицы если оно не меняется? Нафига заполнять это в run-time?

Применить - так:
Код: plaintext
1.
2.
3.
FDQuery1->Edit();
FDQuery1["AttributeOpen"] = 1;
FDQuery1->Post();
...
Рейтинг: 0 / 0
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
    #39031598
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот это пропустил:
MainForm->FDUpdateSQL1->Commands[arUpdate]->ParamByName("OLD_ID")->AsInteger = 1;

Вот так, перед Edit():

FDQuery1->Locate("ID", 1, []);
...
Рейтинг: 0 / 0
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
    #39032077
RenVold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оказывается, из справки.... http://docwiki.embarcadero.com/RADStudio/XE5/en/Editing_Questions_(FireDAC)

Код: plaintext
1.
2.
3.
4.
5.
 Q1: When is it necessary to use TFDUpdateSQL? 

A: FireDAC generates updating SQL commands automatically, when the original SQL command is a simple SELECT or a SELECT with JOIN, where a single table preserves the primary key fields. So, the TFDUpdateSQL usage is optional. TFDUpdateSQL is required when:
The original SQL command is not a SELECT command (for example, stored procedure returning result sets).
The original SELECT command does not preserve the primary key (for example, join several tables, have DISTINCT or GROUP BY clauses).
An application needs non-standard update SQL command (for example, the application posts updates using stored procedure calls).

Из вольного перевода я понял так, что не всегда компонент целесообразно использовать в проекте. Использовать только тогда, когда надо внести изменения в полученном результирующем наборе данных, в результате очень сложных запросов из многих таблиц и или вьюшек, и в последствии их потом закоммитить (изменения)

Т.е. если этот компонент использовать для простейших SELECT, UPADATE, INSERT - это расстрел из пушек по воробью.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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