|
|
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Сколько не бился - никак. Код: pascal 1. 2. 3. 4. 5. Запрос выполняется, данные пишутся, но в гриде сразу их не вижу. В итоге вот такое извращение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. Соответственно в других запросах, изменяющие данные, приходится писать цикл который отлавливает изменения. ПОМОГИТЕ! Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 12:59 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Запрос выполняется, данные пишутся, но в гриде сразу их не вижу.Ну откуда им там взяться ? Грид обновится, когда его датасет будет перечитан заново. Весь или только в текущей строке. Это популярная проблема: после апдейта увидеть все возможные изменения во всех открытых датасетах. Нужен навороченный алгоритм, кот. скажет что и где надо передернуть. А где не надо. Готовых рецептов тут нет. Все решения по своему специфичны. Старайтесь не показывать одновременно много датасетов, кот. потом придется передергивать по каждому чиху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 13:51 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBY... ПОМОГИТЕ! 1) авторЗапрос выполняется, данные пишутся, но в гриде сразу их не вижу. А с какого перепугу вы их там увидите без переоткрытия? 2)авторВ итоге вот такое извращение: - автор If DTA.QL.FieldValues['SUMMA'] = StrToFloat (cxTextEdit2.Text) спасибо: поржал. От души спасибо!!! З.ы. ТС, ты определись: что у тебя есть, и что ты на выходе получить хочешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 13:58 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LSV, Ну откуда им там взяться ? Грид обновится, когда его датасет будет перечитан заново. Весь или только в текущей строке. Так я же переоткрываю запрос: DTA.QL.Active := False; DTA.QL.Active := True; Но в гриде сразу нет данных, а только через секунду-две... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:00 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, If DTA.QL.FieldValues['SUMMA'] = StrToFloat (cxTextEdit2.Text) а что с этим не так... всё ж работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:01 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Если обновить результат нужно только в одной строке датасета, то для этого у некот. умных датасетов (SDAC, FireDAC) есть соотв. методы. И тогда будет быстро. Для АДО тоже вроде как можно перечитать одну строку, но мои эксперименты с АДО как-то неоднозначно закончились. Не помню подробностей. Давно было. :) АДО - геморный ацтой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:09 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LSV, Уже столько всего перерыл - так и не нашёл решения... Дело даже не в том сколько строк перечитывать, а когда. Как узнать, что данные уже попали в таблицу после запроса на добавление/удаление/редактирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:15 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBYLSV, Уже столько всего перерыл - так и не нашёл решения... Дело даже не в том сколько строк перечитывать, а когда. Как узнать, что данные уже попали в таблицу после запроса на добавление/удаление/редактированиеВообще то данные уже там. Правда помняцца мне глюки с интербейсом (оч. давно), когда мгновенное перезачитывание на видело новых данных. Но через пару сек. уже видело. Бред конечно.... Это не ваш случай ? зы: интербейс и его форки тоже говно.... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:21 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBYGerasimenko, If DTA.QL.FieldValues['SUMMA'] = StrToFloat (cxTextEdit2.Text) а что с этим не так... всё ж работает 1) DTA.QL.FieldValues['SUMMA'] - Variant, автоматические преобразования типа в приведенном контексте к вещественному типу 2) StrToFloat (cxTextEdit2.Text) - явное преобразование строки к вещественному типу http://programmersclub.ru/strtofloat/ 3) cxTextEdit2.Text работает.... А если поменять в региональных настройках разделитель (или вы используете SysUtils.DateSeparator) или в самом cxTextEdit2.Text 4) сравнение двух вещественных типов, полученных разными способами не вызывает оптимизма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:22 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBYLSV, Уже столько всего перерыл - так и не нашёл решения... Дело даже не в том сколько строк перечитывать, а когда. Как узнать, что данные уже попали в таблицу после запроса на добавление/удаление/редактирование TDataSet.DisableControls / TDataSet.EnableControls конечно используются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:27 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBYLSV, Уже столько всего перерыл - так и не нашёл решения... Дело даже не в том сколько строк перечитывать, а когда. Как узнать, что данные уже попали в таблицу после запроса на добавление/удаление/редактирование База какая? Не MS Access случаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:36 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Noskov, 1) DTA.QL.FieldValues['SUMMA'] - Variant, автоматические преобразования типа в приведенном контексте к вещественному типу 2) StrToFloat (cxTextEdit2.Text) - явное преобразование строки к вещественному типу http://programmersclub.ru/strtofloat/ 3) cxTextEdit2.Text работает.... А если поменять в региональных настройках разделитель (или вы используете SysUtils.DateSeparator) или в самом cxTextEdit2.Text 4) сравнение двух вещественных типов, полученных разными способами не вызывает оптимизма -- С этим согласен. Но работает, и пока проблем не наблюдалось... Будет время исправлю. TDataSet.DisableControls / TDataSet.EnableControls конечно используются? -- Датасет не использую... В примере DTA.QL - это запрос TQuery через TADOConnection База какая? Не MS Access случаем? -- Именно она ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:43 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
LSV, Вообще то данные уже там. Правда помняцца мне глюки с интербейсом (оч. давно), когда мгновенное перезачитывание на видело новых данных. Но через пару сек. уже видело. Бред конечно.... Это не ваш случай ? Именно это и есть мой случай ))) Делаешь переоткрыте TQuery через 2-3 сек (кнопочкой на форме) - все данные на месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:45 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, 3) cxTextEdit2.Text работает.... А если поменять в региональных настройках разделитель (или вы используете SysUtils.DateSeparator) или в самом cxTextEdit2.Text На форме при вводе чисел обрабатываю нажатия кнопок. Точка меняется на запятую И при получении данных из таблицы в textedit пишу всегда ",", а не "." Но это всё моего вопроса не решает )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 14:47 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
FrankBYNoskov, База какая? Не MS Access случаем? -- Именно она Надо кэш обновить перед тем, как переоткрывать датасет: Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2017, 15:33 |
|
||
|
TADOQuery.ExecSQL как дождаться выполнения запроса
|
|||
|---|---|---|---|
|
#18+
Добра.. Сам искал решение и... нашел Access + Delphi дожидаемся выполнения запроса .ExecSQL; Вместо Код: pascal 1. Пишем Код: pascal 1. 2. 3. 4. 5. Вот так все оказалось просто! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2018, 02:31 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39433525&tid=2040471]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 476ms |

| 0 / 0 |
