![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi 5.0 InterBase 6.0
mad0max © (2002-05-14 04:49:00)Народ!!! Help please!!
Тупой вопрос.
Имеется база - в базе табличка и три процедуры: на добавление, изменение, удаление записи.
В Delphi беру компонент TIBQuery заполняю пропертя как надо + ложу IBUpdateSQL. Прописываю в в скриптах на добавление, обновление, удаление - вызов процедур. Схема до тупого проста.
Запускаю приложение, независимо от того какие действия произвожу(изменение, добавление, удаление) - делаю сохрание а прога мне дает обшибку Update Failed, хотя все изменение в таблице сохраняются
Что за маразм? Мож кто знает?
Если использовать Delphi ADO MS SQL Server - все проходит на ура и никаких проблем
mad0max (2002-05-16 07:03:00) [1]to Johnmen Fareader
Вы будете смеяться (зато как я поматерился)
Помните я писал
>>Ну как пишу например IBDataSet.InsertSQL
>>EXECUTE PROCEDURE Element_Insert(:Name, :Number)
Ну кто же мог подумать, что названия полей надо писать большими буквами!!!
EXECUTE PROCEDURE Element_Insert(:NAME, :NUMBER)
Короче полез в сырцы IBUpdateSQL, IBDataSet, IBQuery - там багов немеряно!!! Я даже не захотел ничего делать - опустились руки.
Решил поработать IBDataSet, пишу название полей большими буквами :( , блин, вот так
Johnmen (2002-05-14 16:12:00) [2]1.Объекты и потомки в IB ??? Ты не путаешь ее с Oracle8 ?
2.А ты почему думаешь, что множественные вызовы ХП работают быстрее триггеров ? :)))
Fareader (2002-05-14 16:12:00) [3]А зачем тебе 4-5 тригеров на одну операцию?
mad0max (2002-05-14 16:05:00) [4]to Fareader
База реализована в виде объектов. Есть начальный объект от которого наследуются потомки. Так вот надо сохранять и родителя и потомка
to Johnmen
Почему ты думаешь, что на скорость не повлияет количесво триггегов? А если их 4-5 на одну операцию?
Johnmen (2002-05-14 15:55:00) [5]>mad0max (14.05.02 15:52)
>1.
это верно...
>2.
это неверно...
>3.
это верно...
Fareader (2002-05-14 15:52:00) [6]А тебе нужно одну и туже запись в разных таблицах и править и вставлять и удалять? Может БД спроектирована неверно? А программа более развернутое сообщение не дает кроме Update failed?
mad0max (2002-05-14 15:52:00) [7]to Johnmen Fareader
Не скажите друзья мои!!! Конечно несложно но
1. Писать лишний раз компонент - трата времени
2. Триггера - увеличивается время обработки данных
3. Куча одинаковых компонентов на форме(Датамодуле) - рябит в глазах, пока найдешь, что надо
Вот так-то! Из всех зол надо выбрать меньшее и однако меньшее это написать свой компонент.
Спасибо что откликнулись, не буду занимать вашего времени
Fareader (2002-05-14 15:43:00) [8]2Johnmen - полностью согласен.
Johnmen (2002-05-14 15:35:00) [9]Все описанные геморрои - надуманны....
mad0max (2002-05-14 15:24:00) [10]Бардак в базе!!
Уж лучше компонент написать, в котором 3 IBStoredProc и все проблемы, прописать каждой процедуре свое дейсвие и все.
Но блин как геморойно!!! Я понимаю MS - must die но тут ребята постарались как надо, работать просто класс, но где взять столько денег на движок?
Fareader (2002-05-14 15:14:00) [11]Это почему? тогда не будет вот этого:
>>А если у меня штук 10 объектов? 30 IBStoredProc!! БРРРР
mad0max (2002-05-14 14:52:00) [12]to Fareader
Можно но ядумаю это не есть гут
Fareader (2002-05-14 14:45:00) [13]Можно было конечно написать и одну ХП (для вставки, удаления, изменения), описать нужные запросы, а потом передав определенный флаг - выполнить нужные действия
mad0max (2002-05-14 14:10:00) [14]to Johnmen
>>схема с SQL ыукмукда схема как надо :)))
На самом деле действительно там все работает.
А вот IBStoredProc я использовать не хочу!
А если у меня штук 10 объектов? 30 IBStoredProc!! БРРРР
Можно динамически менять имя процедуры, но енто я думаю маразм!
Придется свой iBUpdateSQL писать
Johnmen (2002-05-14 14:04:00) [15]Придется тебе подрихтовать идеологию...
Используй IBStoredProc...
Не думаю, что схема с SQL ыукмук была такой же :))
mad0max (2002-05-14 13:41:00) [16]to Johnmen
Потому что запись добавляется сразу в несколько таблиц.
Триггера вешать не хочется.
Работал по такой схеме с SQL ыукмук, все ок а тут вот не получается
Johnmen (2002-05-14 13:29:00) [17]А можно поинтересоваться, зачем именно так ?
mad0max (2002-05-14 13:22:00) [18]
Да не хочу я через insert! Я через процедуры хочу
В этом -то и прикол! Через обычные INSERT, UPDATE, DELETE все получается но мне надо не это, а изменение через хранимые процедуры
Johnmen (2002-05-14 13:10:00) [19]IBDataSet.InsertSQL :
INSERT INTO ... (Name,Number) VALUES(:Name,:Number)
mad0max (2002-05-14 12:57:00) [20]to Johnmen
Ну как пишу например IBDataSet.InsertSQL
EXECUTE PROCEDURE Element_Insert(:Name, :Number)
Конечно же Name и Number - поля НД который возвращается в IBDataSet