| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Базы данных > Компонента IBDataSet |
| Автор: shmel 25.5.2006, 19:52 |
| Здравствуйте. Споткнулся о стандартную ситуацию, но по неопытности не удается ее перешагнуть. Не хватает какого-то нюанса. Суть вопроса в следующем: При работе с базой данных (InterBase, Builder C++) использую IBDataSet у которых имеются свойства SelectSQL и InsertSQL. Эти запросы используют параметры (:param), причем наборы параметров в этих SQL запросах различаются. С SelectSQL проблем не возникает - послушно работает, а вот когда пытаюсь присвоить значение для параметров из InsertSQL, вылазит сообщение, что такой параметр не известен. Что-то ещё нужно подкрутить? Где-то нужно указать, что скоро будет использоваться InsertSQL и сделать его "активным"? Верен ли следующий алгоритм вставки: 1.IBDataSet.InsertSQL = ".. :param .. " - записали запрос 2.IBDataSet.Prepare() - проверили правильность запроса 3.IBDataSet.ParamByName("param") = ... 4.IBDataSet.Open 5.IBDataSet.Insert. И еще. У IBDataSet есть поле GeneratorField, в котором заданный генератор привязывается к указанному полю по различным событиям, в том числе и по добавлению новых строчек. Эта связка нужна для того, чтобы не заморачиваться при вставке новых записей на задание параметра по указанию значения ключевого поля? Т.е. в InsertSQL не нужно указывать поле к которому привязан генератор? Спасибо. |