|
|
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Есть ibDataSet с SQL Код: sql 1. 2. 3. В DBGrid все выглядит хорошо, поначалу... Проблема в том, что после ibDataSet.Post поле sumt2 в DBGrid становится пустым. Как мне этого избежать? Никак? :) Только использовать Lookup поле? (но для этого необходимо держать рядом открытый query со всеми записями Код: sql 1. 2. 3. Писать значение прямо в поле DBGrid из, например, TDictionary, который заранее сформировать? Не делать Post у ibDataSet а менять данные ч-з ibSQL, но тогда как рефрешить эту одну запись в ibDataSet, не переоткрывать же весь запрос каждый раз при изменении одной строки? Написать другой запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 06:50 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Не знаю как в вашем датасете, но обычно полю sumt2 назначают своиства AutoGenerateValue = arDefault FieldKind = fkInternalCalc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:03 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
istrebitel Не знаю как в вашем датасете, но обычно полю sumt2 назначают своиства AutoGenerateValue = arDefault FieldKind = fkInternalCalc Попробовал, ничего не изменилось... Или надо еще что-то сделать? Если указано fkInternalCalc, тогда что-то надо указывать DefaulExpression ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:12 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
fkInternalCalc просто указывает на то, что поле расчётное и не имеет отображения на реальное поле в таблице, в бд и соответственно не должно участвовать при построении INSERT'ов и UPDATE'ов. А arDefault обычно приводит к вычитке значения после INSERT. А где нибудь нет свойства RefreshAfterUpdate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:26 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox, Свойство что-то типа RefreshSQL надо правильно заполнить. Для обновления значений одной, текущей записи набора по соответствующему ключу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:31 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Ну, это поле нельзя включать в RefreshSQL, иначе ошибка ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:36 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
istrebitel fkInternalCalc просто указывает на то, что поле расчётное и не имеет отображения на реальное поле в таблице, в бд и соответственно не должно участвовать при построении INSERT'ов и UPDATE'ов. А arDefault обычно приводит к вычитке значения после INSERT. А где нибудь нет свойства RefreshAfterUpdate? Не, такого свойства нет ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:49 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Нужно как-то перезапросить это поле с сервера и вставить, попробую вставить вручную ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 07:53 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Только сейчас обратил внимание у вас подзапрос не завязан на данные таблицы tab соответственно в колонке будет одно значение на весь столбец, вам такое поведение необходимо? Тогда можно выполнить (select sum(mycount) from tab2 where tab_id=:tid) до открытия датасета и передать значение параметром select t.*, :sumt as sumt2 from tab t order by t.nam Если и так будет глючить, то у поля sumt2 ставите тип fkCalculated и в обработчике датасета OnCalcFields заполняете это поле ранее вычисленным значением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:14 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Это я ошибся Код: sql 1. 2. 3. Завязано, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:27 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Сделал такое извращение (повесил обработчик на GetText поля), но не нравится мне такое: Код: pascal 1. 2. 3. 4. 5. getSumt2 создает TIBQuery, лезет в базу дергает данные, возвращает значение и уничтожает TIBQuery, не знаю насколько это замедлит работу. Может вообще поставить getSumt2 на кальк поле? Но тогда функция будет выполняться на все записи IBDataSet, а при GetText, только на те, по которым был Post без Код: pascal 1. Будем надеяться, что утечек памяти при выполнении getSumt2 с Код: sql 1. и последующем Код: pascal 1. не возникнет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:31 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Не поле делаешь InternalCalc а в OnCalculateFields проверяешь его на Null и если пустое то только тогда запрашиваешь из БД значение и присваиваешь этому полю. По идее должно отрабатывать один раз, но правда если Код: sql 1. вернёт NULL то, будет лишний повторный запрос. Ну чтоб избежать утечек Код: pascal 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:42 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
istrebitel, Получается, что тоже самое, что у меня на GetText , только на OnCalculateFields. Чем это лучше? Или аналогично? Я так понимаю, что GetText (если в одном поле) срабатывает один раз на строку и OnCalculateFields тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:47 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Ну чтоб избежать утечек Код: pascal 1. 2. 3. 4. 5. 6. ну, проверка понятно, а FreeAndNil прям на ноль чистит память? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 08:48 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Есть ibDataSet с SQL Код: sql 1. 2. 3. В DBGrid все выглядит хорошо, поначалу... Проблема в том, что после ibDataSet.Post поле sumt2 в DBGrid становится пустым. Как мне этого избежать? Никак? :) Только использовать Lookup поле? (но для этого необходимо держать рядом открытый query со всеми записями Код: sql 1. 2. 3. Писать значение прямо в поле DBGrid из, например, TDictionary, который заранее сформировать? Не делать Post у ibDataSet а менять данные ч-з ibSQL, но тогда как рефрешить эту одну запись в ibDataSet, не переоткрывать же весь запрос каждый раз при изменении одной строки? Написать другой запрос? Зайчик, у TIBDataSet должны быть определены SelectSQL, ModifySQL, InsertSQL и RefreshSQL. Ты, конечно же, их определил, и учел, что в RefreshSQL должна быть уточняющая where - кляуза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:00 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
GetText вызывается при каждом чтении поля, строка при скроллинге скрылась из Grid'а, скролим в обратном направлении, при появлении строки в гриде будет повторный вызов. OnCalcFields один вызов на строку, в момент фетчинга из базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:02 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Ну, это поле нельзя включать в RefreshSQL, иначе ошибка ) Чего-чего?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:06 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
P.S. RefreshSQL как раз типа для подобных надобностей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:07 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ Зайчик, у TIBDataSet должны быть определены SelectSQL, ModifySQL, InsertSQL и RefreshSQL. Ты, конечно же, их определил, и учел, что в RefreshSQL должна быть уточняющая where - кляуза. Ты не из этих? :) Я так понял, что в RefreshSQL я просто не указываю поле sumt2 и все, а что как-то можно указать в RefreshSQL, то sumt2 необходимо перезапросить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:09 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Проблема в том, что после ibDataSet.Post Все же интересно, что в InsertSQL/UpdateSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:10 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Vlad F P.S. RefreshSQL как раз типа для подобных надобностей. Напиши пример, please ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:10 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox ъъъъъ Зайчик, у TIBDataSet должны быть определены SelectSQL, ModifySQL, InsertSQL и RefreshSQL. Ты, конечно же, их определил, и учел, что в RefreshSQL должна быть уточняющая where - кляуза. Ты не из этих? :) Я так понял, что в RefreshSQL я просто не указываю поле sumt2 и все, а что как-то можно указать в RefreshSQL, то sumt2 необходимо перезапросить? Может, ты просто покажешь, что у тебя в RefreshSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:10 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox, давай, вываливай все запросы. И изменяющие, и обновляющий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:11 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ antox Проблема в том, что после ibDataSet.Post Все же интересно, что в InsertSQL/UpdateSQL. Сделал запрос: Код: sql 1. 2. 3. вызвал автогенерацию InsertSQL/UpdateSQL/RefreshSQL а потом в SelectSQL измени на Код: sql 1. 2. 3. соответственно InsertSQL/UpdateSQL/RefreshSQL ничего не знает о sumt2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:13 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Я так понял, что в RefreshSQL я просто не указываю поле sumt2 и все, а что как-то можно указать в RefreshSQL, то sumt2 необходимо перезапросить? А не задумывались, что проблема с тем, что после Post у вас в поле с суммой становится пустым, как раз из-за того, что вы в refreshsql его не указали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:14 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox вызвал автогенерацию InsertSQL/UpdateSQL/RefreshSQL Ну так покажи, что у тебя там сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:15 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
RefreshSQL скорее всего должен быть Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:15 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ antox, давай, вываливай все запросы. И изменяющие, и обновляющий. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Код: sql 1. 2. 3. 4. Код: sql 1. 2. 3. Refresh Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:18 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
goldmi45 antox Я так понял, что в RefreshSQL я просто не указываю поле sumt2 и все, а что как-то можно указать в RefreshSQL, то sumt2 необходимо перезапросить? А не задумывались, что проблема с тем, что после Post у вас в поле с суммой становится пустым, как раз из-за того, что вы в refreshsql его не указали? Думал, что никак низя это прописать в Refresh ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:18 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox ... Refresh Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Ну, и где тут sum()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:19 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Сделал запрос: Код: sql 1. 2. 3. вызвал автогенерацию InsertSQL/UpdateSQL/RefreshSQL а потом в SelectSQL измени на Код: sql 1. 2. 3. соответственно InsertSQL/UpdateSQL/RefreshSQL ничего не знает о sumt2 Пиши сразу полный SQL в основное SQL Property Код: sql 1. 2. 3. 4. 5. 6. 7. А поле sumt2 поставь свойство InternalCalc, оно исключится из автогенерации команд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:20 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox, а что у тебя с управлением транзакциями при изменении данных? Используешь модифицированный IBX, или CommitRetaining или транзакция тупо висит "до особого распоряжения"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:21 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ antox, а что у тебя с управлением транзакциями при изменении данных? Используешь модифицированный IBX, или CommitRetaining или транзакция тупо висит "до особого распоряжения"? CommitRetaining ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:22 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ antox ... Refresh Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Ну, и где тут sum()? Неоткуда ему взяться ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:23 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
istrebitel antox Сделал запрос: Код: sql 1. 2. 3. вызвал автогенерацию InsertSQL/UpdateSQL/RefreshSQL а потом в SelectSQL измени на Код: sql 1. 2. 3. соответственно InsertSQL/UpdateSQL/RefreshSQL ничего не знает о sumt2 Пиши сразу полный SQL в основное SQL Property Код: sql 1. 2. 3. 4. 5. 6. 7. А поле sumt2 поставь свойство InternalCalc, оно исключится из автогенерации команд. Сейчас попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:24 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Vlad F P.S. RefreshSQL как раз типа для подобных надобностей. Напиши пример, please См сюда 22097351 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:25 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
istrebitel RefreshSQL скорее всего должен быть Код: sql 1. 2. 3. 4. 5. 6. 7. Прописал, работает, но значение :uids не ставится в Refresh, т.е. при Код: pascal 1. отлично, а при Код: sql 1. 0 Как передать параметр повторно при перед Refresh или мож его с каким префиксом надо, типа он из Select? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:42 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Если жестко написать Код: sql 1. работает На BeforePefresh повторная передача параметра результата не дает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:59 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox, Попробуй and uids=:old_uids ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 09:59 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Vlad F antox, Попробуй and uids=:old_uids Попробую ( Но пишут, что параметры из селекта в рефреш не передать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 12:41 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox, Понял. Тебе надо этот параметр в качестве дополнительного искусственного поля вытащить в селективной части SelectSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 13:00 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox ъъъъъ Зайчик, у TIBDataSet должны быть определены SelectSQL, ModifySQL, InsertSQL и RefreshSQL. Ты, конечно же, их определил, и учел, что в RefreshSQL должна быть уточняющая where - кляуза. Ты не из этих? :) Я так понял, что в RefreshSQL я просто не указываю поле sumt2 и все, а что как-то можно указать в RefreshSQL, то sumt2 необходимо перезапросить? Насколько помню, у меня в RefreshSQL обычно был тот же запрос, что в select, только еще указание на текущую запись Код: sql 1. 2. P.S. Глянул, ну еще без order by, потому что только одна запись возвращается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2020, 13:06 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Vlad F antox, Понял. Тебе надо этот параметр в качестве дополнительного искусственного поля вытащить в селективной части SelectSQL. Да, я тоже это понял почитав о невозможности использовать параметры селекта в рефреше, но что-то пока не могу реализовать Так не работает: Код: sql 1. так тоже... Код: sql 1. Хотя так работает Код: sql 1. Как же мне вывести значение параметра в виде поля? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 03:51 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Видимо придется передавать готовым значением на этапе SelectSQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 05:04 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Короче, похоже, все зря Если в Refresh даже указать Код: sql 1. 2. 3. 4. 5. 6. 7. То все равно sumt2 = null, а не 5 после post ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 05:07 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
Пока буду ч-з OnCalcFields на другое поле Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 05:12 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
:) по ходу дела возник вопрос по событиям, но это уже тема другого чата... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 05:22 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Ну чтоб избежать утечек Код: pascal 1. 2. 3. 4. 5. 6. ну, проверка понятно, а FreeAndNil прям на ноль чистит память? не память, а указатель на память. чистит на ноль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 09:17 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Короче, похоже, все зря Если в Refresh даже указать Код: sql 1. 2. 3. 4. 5. 6. 7. То все равно sumt2 = null, а не 5 после post 1. Не :id, а :old_id, уже 2 раза говорили. 2. Если не поможет - значит из-за того, что у тебя "*". Напиши нормальный список полей, как положено. 3. Не верю, чоо в refreshsql нельзя подзапрос. "Ошибка"? Так ее нужно исправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 10:12 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox ъъъъъ antox, а что у тебя с управлением транзакциями при изменении данных? Используешь модифицированный IBX, или CommitRetaining или транзакция тупо висит "до особого распоряжения"? CommitRetaining Редактировать надо, пока открыта readonly транзакция, и только чтобы изменения в базу слить - открывать на мгновение пишущую и сразу закрывать. Как этого добиться - путей много, гугл в помощь. Ваш нынешний путь - обречен, это точно, 100%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 10:18 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
YuRock Лучше на этапе разработки отказаться от CommitRetaining, чем судорожно Тогда уж от IBX сразу отказаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 10:21 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
antox Vlad F antox, Понял. Тебе надо этот параметр в качестве дополнительного искусственного поля вытащить в селективной части SelectSQL. Да, я тоже это понял почитав о невозможности использовать параметры селекта в рефреше, но что-то пока не могу реализовать Так не работает: Код: sql 1. так тоже... Код: sql 1. "Не работает", хм. Ты бы хоть ошибку написал, с какой не работает. Хотя так работает Код: sql 1. Как же мне вывести значение параметра в виде поля? Пробуй так: select t.*, (select sum(mycount) from tab2 where tab_id=t.id and uids=:uids) as sumt2, cast(:uids as type of column tab2.uids) as uids from tab t Плюс к этому надо будет добавить это новое фиктивное поля в коллекцию полей твоего IBDataSet, если они там у тебя статические. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 11:26 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
YuRock antox пропущено... CommitRetaining Редактировать надо, пока открыта readonly транзакция, и только чтобы изменения в базу слить - открывать на мгновение пишущую и сразу закрывать. Как этого добиться - путей много, гугл в помощь. Ваш нынешний путь - обречен, это точно, 100%. Как отказаться, если мне надо править данные прямо в сетке? Не везде, но где-то надо. Где не надо, там отдельным запросом меняю данные по commit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 19:17 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
YuRock antox Короче, похоже, все зря Если в Refresh даже указать Код: sql 1. 2. 3. 4. 5. 6. 7. То все равно sumt2 = null, а не 5 после post 1. Не :id, а :old_id, уже 2 раза говорили. 2. Если не поможет - значит из-за того, что у тебя "*". Напиши нормальный список полей, как положено. 3. Не верю, чоо в refreshsql нельзя подзапрос. "Ошибка"? Так ее нужно исправить. Сам не верю, мож запутался. На выходных сделаю все заново и проверю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 19:18 |
|
||
|
IBX + FireBird несколько таблиц в запросе
|
|||
|---|---|---|---|
|
#18+
ъъъъъ YuRock Лучше на этапе разработки отказаться от CommitRetaining, чем судорожно Тогда уж от IBX сразу отказаться. Другое дело, и я не спорю, что другие библиотеки позволяют меньшей кровью решить проблему "редактирования гридов" без долгой пишущей транзакции. Но лично я считаю, что само по себе "редактирование грида" - это ужасно. Хотя и это решается средствами стандартного IBX без использования Retain, но это просто не нужно изначально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2020, 21:23 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2038492]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 429ms |

| 0 / 0 |
