powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBX + FireBird несколько таблиц в запросе
6 сообщений из 56, страница 3 из 3
IBX + FireBird несколько таблиц в запросе
    #39936941
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock
Лучше на этапе разработки отказаться от CommitRetaining, чем судорожно

Тогда уж от IBX сразу отказаться.
...
Рейтинг: 0 / 0
IBX + FireBird несколько таблиц в запросе
    #39936976
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antox
Vlad F
antox,

Понял. Тебе надо этот параметр в качестве дополнительного искусственного поля вытащить в селективной части SelectSQL.


Да, я тоже это понял почитав о невозможности использовать параметры селекта в рефреше, но что-то пока не могу реализовать

Так не работает:
Код: sql
1.
select t.*, :uids



так тоже...

Код: sql
1.
select t.*, (:uids) as uids



"Не работает", хм. Ты бы хоть ошибку написал, с какой не работает.

Хотя так работает

Код: sql
1.
select t.*, ('value') as virtField



Как же мне вывести значение параметра в виде поля?
Пробуй так:

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, если они там у тебя статические.
...
Рейтинг: 0 / 0
IBX + FireBird несколько таблиц в запросе
    #39937268
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
antox
пропущено...


CommitRetaining
Лучше на этапе разработки отказаться от CommitRetaining, чем судорожно переделывать потом, когда у клиентов база станет раком.
Редактировать надо, пока открыта readonly транзакция, и только чтобы изменения в базу слить - открывать на мгновение пишущую и сразу закрывать.
Как этого добиться - путей много, гугл в помощь.
Ваш нынешний путь - обречен, это точно, 100%.


Как отказаться, если мне надо править данные прямо в сетке? Не везде, но где-то надо. Где не надо, там отдельным запросом меняю данные по commit
...
Рейтинг: 0 / 0
IBX + FireBird несколько таблиц в запросе
    #39937269
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
antox
Короче, похоже, все зря

Если в Refresh даже указать

Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
	t.*
	, (5) as sumt2
from 
	tab t
where
	t.id = :id




То все равно sumt2 = null, а не 5 после post

1. Не :id, а :old_id, уже 2 раза говорили.
2. Если не поможет - значит из-за того, что у тебя "*". Напиши нормальный список полей, как положено.
3. Не верю, чоо в refreshsql нельзя подзапрос. "Ошибка"? Так ее нужно исправить.


Сам не верю, мож запутался. На выходных сделаю все заново и проверю
...
Рейтинг: 0 / 0
IBX + FireBird несколько таблиц в запросе
    #39937302
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
YuRock
Лучше на этапе разработки отказаться от CommitRetaining, чем судорожно

Тогда уж от IBX сразу отказаться.
IBX к Retain никаким боком.
Другое дело, и я не спорю, что другие библиотеки позволяют меньшей кровью решить проблему "редактирования гридов" без долгой пишущей транзакции.
Но лично я считаю, что само по себе "редактирование грида" - это ужасно. Хотя и это решается средствами стандартного IBX без использования Retain, но это просто не нужно изначально.
...
Рейтинг: 0 / 0
IBX + FireBird несколько таблиц в запросе
    #39937335
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
antox
если мне надо править данные прямо в сетке

Fib+ с гитхаба скачай и используй, вместо. Там искаропки модифицирующие запросы датасета в отдельной транзакции.
...
Рейтинг: 0 / 0
6 сообщений из 56, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / IBX + FireBird несколько таблиц в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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