|
|
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Есть желание выполнять произвольные фрагменты SQL-кода. Обычный FDQuery выполняет только один оператор. FDScript нормально выполняет несколько операторов. Но.. Непонятно, как получить кол-во RowAffected. Spool выводит только значение последнего оператора, а хотелось бы отдельно по всем операторам. Непонятно, как получать SQL-код каждого шага. Можно ли для этого заюзать FDScriptParser ? Хотелось бы по каждому выполненному оператору получать что-то типа: update ..... (affected 10 rows, 20ms) delete from ..... (affected 2 rows, 10ms) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 11:03 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ Он выполняет сразу все операторы. Т.е. выполняется аналогично ExecuteAll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 11:27 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
02.03.2021 11:27, L_argo пишет: > Я не понял, как он работает. > Он выполняет сразу все операторы. > Т.е. выполняется аналогично ExecuteAll. а ты терминатор настроил? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 11:52 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий 02.03.2021 11:27, L_argo пишет: > Я не понял, как он работает. > Он выполняет сразу все операторы. > Т.е. выполняется аналогично ExecuteAll. а ты терминатор настроил? Документация у Эмбы вааще идиотская. Как получить текущий фрагмент выполняемого SQL-кода (тот самый Step) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 11:57 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
02.03.2021 11:57, L_argo пишет: > Как получить текущий фрагмент выполняемого SQL-кода (тот самый Step) ? жди, пока объявится родитель всего этого. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 11:59 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
L_argo Он выполняет сразу все операторы. Т.е. выполняется аналогично ExecuteAll. L_argo Как получить текущий фрагмент выполняемого SQL-кода (тот самый Step) ? Код: pascal 1. Весь код должен быть таким Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 12:06 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
L_argo, Может у вас в скрипте ошибка? Если он не большой, то сбросьте сюда под кат. Если большой, то сбросьте первые и последние 10 строк скрипта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 12:09 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ L_argo, Может у вас в скрипте ошибка? Если он не большой, то сбросьте сюда под кат. Если большой, то сбросьте первые и последние 10 строк скрипта. Проблема в возможности вывести инфу про выполнение каждого оператора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 14:19 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
L_argo В скрипте ошибки нет. L_argo Он крайне прост и нормально выполняется. L_argo Проблема в возможности вывести инфу про выполнение каждого оператора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 14:22 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Ну так покажите егоОК. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. помогло ? :) Как получить по этому скрипту такой результат: affected 1 row affected 1 row affected 1 row ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 18:57 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
И FDScript.Position := 0 нельзя вот так присвоить. т.к. это TPoint; SQL-код попадает в FDScript так (из TMemo) : scRun.SQLScripts.Add.SQL.text := mem.SelText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:10 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
http://docwiki.embarcadero.com/Libraries/Sydney/en/FireDAC.Comp.Script.TFDScriptOptions.FeedbackCommands Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:11 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Разумеется стоит True. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:16 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Ну так осталась сущая мелочь: там же посмотреть как этот feedback ловить. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:18 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Ну так осталась сущая мелочь: там же посмотреть как этот feedback ловить. Куда именно смотреть ? У меня 3 оператора отрабатывают за один step. И в ответе по OnSpoolPut все три оператора вместе. И кол-во строк (affected) указано одно от последнего оператора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:38 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
а эта часть документации не поможет? Getting Feedback To create an execution log, you can enable spooling as from Delphi code, by using the SpoolOutput and SpoolFileName options, as from a SQL script using the <code>SPOol <name></code> or <code>OUTput <name></code> commands. The content of the spool output is controlled by the EchoCommands, FeedbackCommands, AutoPrintParams, FeedbackScript, IgnoreError, Timing, ColumnHeadings, PageSize, ServerOutput options. You can use the TFDGUIxScriptDialog component to allow a script execution engine to communicate with an end-user using a dialog. To interact with the end-user TFDScript, use events such as OnConsoleGet, OnConsolePut, OnGetText, OnPause, etc. this dialog provides a standard implementation for these events. To show an execution progress, TFDScript needs to know the total length of all scripts to be executed. For that, call the ValidateAll method before starting a script execution. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 19:50 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
энди а эта часть документации не поможет? Getting Feedback To create an execution log, you can enable spooling as from Delphi code, by using the SpoolOutput and SpoolFileName options, as from a SQL script using the <code>SPOol <name></code> or <code>OUTput <name></code> commands. The content of the spool output is controlled by the EchoCommands, FeedbackCommands, AutoPrintParams, FeedbackScript, IgnoreError, Timing, ColumnHeadings, PageSize, ServerOutput options. You can use the TFDGUIxScriptDialog component to allow a script execution engine to communicate with an end-user using a dialog. To interact with the end-user TFDScript, use events such as OnConsoleGet, OnConsolePut, OnGetText, OnPause, etc. this dialog provides a standard implementation for these events. To show an execution progress, TFDScript needs to know the total length of all scripts to be executed. For that, call the ValidateAll method before starting a script execution. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 20:08 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
L_argo, Так и что возвращается в событии OnSpoolPut ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2021, 22:31 |
|
||
|
FireDAC. Работа с FDScript
|
|||
|---|---|---|---|
|
#18+
Cobalt747 L_argo, Так и что возвращается в событии OnSpoolPut ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2021, 10:59 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=25&tid=2037556]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 410ms |

| 0 / 0 |
