Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FireBird - dbExpress: ошибка при вызове RefreshRecord, FetchBlobs


Прогер ©   (2004-06-22 14:22:00) 

При вызове этих методов датасет генерирует внутри запрос, где она получает эту запись.
Примерно так:
Если у меня есть таблица с записями картинок (картинки - блобы).
select * from MyTable
То когда я вызываю FetchBlobs (также при RefreshRecord, UpdateRecord), то она генерирует след. запрос:
select id, name, pic from MyTable where id=? and name=?
Тут все понятно, имя таблицы она видимо вытаскивает из тескта запроса и задает параметры.
Но есть у меня процедура, которая по параметру выдает только часть данных из таблицы - MyProc(:prm)
select * from MyProc(:prm)
Когда тут я вызываю те методы, то она почему-то теряет параметр процедуры и получается:
select id, name, pic from MyProc(NULL) where id=? and name=?
Конечно так она ту запись не найдет и выходит ошибка.
Нельзя как-то указать ему (TSQLClientDataSet) что данные берутся из процедуры и она должна брать еще его параметр?


Прогер   (2004-06-23 06:26:00) [1]

я бы ручками сам прописал, но это же стандартный юнит
provider.pas, там процедура
TSQLResolver.GenSelectSQL
ее менять мне кажется нецлесобразно.
просто выборка данных идет из процедуры и проблема из-за этого,
я думал может кто сталкивался.
остальные я думаю тоже используют такую же технологию при повторном обращении к записи.


Соловьев   (2004-06-22 14:33:00) [2]

Пиши ручками CommandText
А вообще лучше использовать нормальные компоненты под ФБ - IBX, FIBPlus


Johnmen   (2004-06-22 14:32:00) [3]

>датасет генерирует внутри запрос

Так пропиши сам, руками...:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо