Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
ВнизFireBird - dbExpress: ошибка при вызове RefreshRecord, FetchBlobs Найти похожие ветки
← →
Прогер (2004-06-22 14:22) [0]При вызове этих методов датасет генерирует внутри запрос, где она получает эту запись.
Примерно так:
Если у меня есть таблица с записями картинок (картинки - блобы).
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) что данные берутся из процедуры и она должна брать еще его параметр?
← →
Johnmen © (2004-06-22 14:32) [1]>датасет генерирует внутри запрос
Так пропиши сам, руками...:)
← →
Соловьев © (2004-06-22 14:33) [2]Пиши ручками CommandText
А вообще лучше использовать нормальные компоненты под ФБ - IBX, FIBPlus
← →
Прогер (2004-06-23 06:26) [3]я бы ручками сам прописал, но это же стандартный юнит
provider.pas, там процедура
TSQLResolver.GenSelectSQL
ее менять мне кажется нецлесобразно.
просто выборка данных идет из процедуры и проблема из-за этого,
я думал может кто сталкивался.
остальные я думаю тоже используют такую же технологию при повторном обращении к записи.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.036 c