Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery? / 5 сообщений из 5, страница 1 из 1
07.05.2015, 10:19:29
    #38953292
SJenek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
Добрый день!
Мне нужно изменять выборочно отдельные ячейки таблицы. 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
18.08.2015, 13:46:49
    #39031577
RenVold
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
SJenek,
Мне кстати, тоже не понятно.

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

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

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

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

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

FDQuery1->Locate("ID", 1, []);
...
Рейтинг: 0 / 0
19.08.2015, 09:50:35
    #39032077
RenVold
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery?
Оказывается, из справки.... 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
Форумы / C++ [игнор отключен] [закрыт для гостей] / FireDAC компонент FDUpdateSQL как использовать в связке с FDQuery? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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