![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как совместить Insert и Update [D7, IB6.x]
weRUs © (2004-01-09 11:52:00)
Господа Мастаки помогите!
В гриде пользователь вводит данные (после нажатия кнопки Вставить) при этом если захочет изменить существующую запись, то всегда пожалуйста. Но тогда получается Insert и Update, а как это реализовать :=(((. Можно проверить конечно ID = :ID и тогда Ins или Update.
Но меня интересует более простой способ :-,)
Заранее спасибо...!
Vlad (2004-01-09 13:04:00) [1]
> Vemer © (09.01.04 13:00) [16]
Я имею ввиду то, что не всегда разумно кэшировать данные.
Причем здесь CancelUpdates ? Он просто чистит кэш, с RollBack это никак не связано.
Vemer (2004-01-09 13:00:00) [2]
Насчет CachedUpdate ты не прав - это удобно - всегда можно сделать .CancelUpdate без лишних .RollBack + ApplyUpdates скидывает все разом. А насчет компонентов - каждый пользует то, что нравиться. Я IBX самотыком изучал, поэтому IBDataSet не освоил.
Vlad (2004-01-09 12:55:00) [3]
> Vemer © (09.01.04 12:50) [14]
Вобще, в IBX эта возможность была оставлена для БДЕ-шников, т.е. чтобы переводить проекты с БДЕ под IBX было удобнее. Об этом вроде сами авторы IB говорили.
Плюс, насколько я помню, для такой связки необходим CachedUpdates в IBQuery. А это не всегда удобно.
Vemer (2004-01-09 12:50:00) [4]
Я согласен, что IBDataSet это круче, но для начинающего мой вариант проще. особенно при разработке, когда SQL менять приходиться иногда.
weRUs (2004-01-09 12:49:00) [5]
>IBQuery+IBUpdateSQL пользоваться одним IBDataSet
Это интересно, попробую.
Vlad (2004-01-09 12:45:00) [6]
> weRUs (09.01.04 12:43) [11]
Востриков и Ковязин "Мир Interbase"
Кстати, умные люди советуют вместо IBQuery+IBUpdateSQL пользоваться одним IBDataSet
weRUs (2004-01-09 12:43:00) [7]
"Мир InterBase" А кто автор?
weRUs (2004-01-09 12:41:00) [8]
Наверное ВЫ правы...
попробую.
Спасибо.
Vemer (2004-01-09 12:31:00) [9]
Чтобы не мучаться с запросами в IBDataSet попробуй IBSQL+IBUpdateSQL. Не так современно, зато есть кнопка Generate SQL в IBUpdateSQL.
Евген (2004-01-09 12:26:00) [10]
> weRUs
Есть компонент IBDataSet. У него есть SelectSQL, InsertSQL, DeliteSQL, ModyfySQL и RefreshSQL. C их помощью формируется "Живой" запрс, т.е. то что тебе нужно. Это я не умничаю, а только что вычитал в книге "Мир InterBase", т.к. IB я сам только осваиваю. Попробуй почитать - довольно неплохо описано, только у самого тоже возникли вопросы (см. форум).
Nerv (2004-01-09 12:21:00) [11]
ApplyUpdates?
Vlad (2004-01-09 12:20:00) [12]
Ну и в чем проблема. Берешь IBDataSet, подключаешь к нему грид.
У IBDataSet в свойствах SelectSQL, InsertSql,UpdateSQL, DeleteSQL прописываешь нужные запросы, и все изменения которые ты будешь делать в гриде автоматически будут заноситься в базу при вызове метода IBDataSet.Post
weRUs (2004-01-09 12:16:00) [13]
Стандартные средства IBX
Vlad (2004-01-09 12:12:00) [14]
Какими компонентами доступа к IB пользуешься ?
weRUs (2004-01-09 12:09:00) [15]
Прошу прощения за головоломку. :)
Грид это DevExpr...
А суть в том, что используется кеширование и при этом сразу могут существовать и новая запись и модифицированная. И это все надо сразу сохранить в базу.
Vlad (2004-01-09 12:00:00) [16]
Ничего не понял.
Если нужен Insert, то DataSet.Insert, если Update, то DataSet.Edit; В чем проблема то ?
Vemer (2004-01-09 12:00:00) [17]
DBGrid - зеркало DataSet. А о нем ни слова (чем формируеться). Зачем кнопка Вставить, из DBGrid можно и так вставлять (или форма применяеться отдельная). В общем ясно, что ничего не ясно.