Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
ВнизКак изменить запись в наборе сформированном через IBQuery? Найти похожие ветки
← →
GRR (2003-03-31 14:06) [0]Подскажите плз !
Есть набор данных IBQuery (примерно, sql.text="select * from tovar where ostatok>100). Как можно редактировать данные в этом наборе? Как добавлять - через IBUpdateSQL (методом проб и ошибок въехал), хотя проще помоему добавлять через "независимый" IBSQL. А вот как можно отредактировать конкретную запись (скажем уменьшить количество) въехать не можу, сколько не тужился. А в книгах что-то скудновато про это. Поможите кто чем сможет...
← →
Alexandr (2003-03-31 14:07) [1]юзай IBDATASET.
← →
Жук (2003-03-31 14:07) [2]Используйте TIBDataSet.
← →
Жук (2003-03-31 14:08) [3]2 Alexandr
Можно желание загадывать. :-)))
← →
ЮЮ (2003-04-01 04:36) [4]>Как добавлять - через IBUpdateSQL (методом проб и ошибок въехал)
Если бы въехал правильно, то через IBUpdateSQL мог бы и исправлять, м удалять и добавлять :-)
← →
GRR (2003-04-01 09:42) [5]Всем огромнейшее спасибо.
Вот если еще с использованием параметров поможете разобраться...
В чем, собственно, проблем"с:
Есть SelectSql== select * from TOVAR where ostatok>:param1
Есть ModifySQL== UPDATE Tovar Set ostatok=ostatok-:param2
Параметр param1 задаю просто: IBDataSet.Params[0].AsInteger:=...;
А второй как? У них нумерация сквозная или как? Пробовал через
IBDataSet.ParamsyName("param2").AsInteger:=... , так пишет
что поле PARAM2 в IBDataSet не найдено.
← →
Соловьев (2003-04-01 09:46) [6]В IBDataSet нельзя обращятся к параметрам кроме как в SelectSql
← →
Соловьев (2003-04-01 09:50) [7]лучше использоват связку IBQuery+IBUpdateSQL
← →
Жук (2003-04-01 09:50) [8]
> Есть ModifySQL== UPDATE Tovar Set ostatok=ostatok-:param2
update tovar set ostatok=?new_ostatok where id=?old_id
Что-то типа такого.
← →
Johnmen (2003-04-01 10:32) [9]>GRR
Для модифицирующих запросов значения параметров подставляются автоматом из значений соответствующих поле текущей записи...
← →
GRR (2003-04-01 15:11) [10]Извините не совсем въехал...
а можно поподробнее с примерчиком? (с комментарием)
например, нужно уменьшить Ostatok товара в некоторой таблице TOVAR, у которого TovarNo=No на N шт. причем N и No формируются в программе. (Т.е. N и No я собирался передавать в запрос через параметры, оказалось нельзя)
← →
Соловьев (2003-04-01 15:21) [11]
> (Т.е. N и No я собирался передавать в запрос через параметры,
> оказалось нельзя)
можно. Никто тебе не говорил что нельзя запросом. Используй IBQuery
← →
GRR (2003-04-01 19:36) [12]Прошу прощения за свою "ненавязчивость", но так и не могу модифицировать набор (ранее никогда не работал с IBQuery, использовал для этих целей Table)
Вообщем что я имею на данный момент :
Есть IBQuery, у которого SelectSQL = select TovarId, TovarOstatok from TOVAR.
Есть IBUpdateSQL, в ModifySQL в который я собственно похоже и не могу засунуть верный модифицирующий оператор SQL.
IBQuery.UpDateObject=IBUpdateSQL (связал эти два компонента)
Набор IBQuery отображается в DDBGrid. Выбрав нужную запись в наборе нажимаем клавишу "изменить".
В обработчике события нажатия клавиши "изменить" прописано:
IBQuery.Edit;
IBQuery.FieldByName("TovarOstatok").AsFloat:=IBQuery.FieldByName("TovarOstatok").AsFloat-N; {я так понял что эта строка вообще излишняя, т.к. все равно не исполняемая, я прав?)
IBQuery.Post;
где N:real - переменная
Вопрос? Какой запрос должен быть прописан в ModifySQL, чтобы по нажатию кнопки "изменить" в поле TovarOstatok выбранной записи, (TovarId - уникальный ключ) изменилось значение на величину переменной N. Как эту переменную включить в запрос?
Может что-то еще где-то нужно прописать?
Буду еще более признателен всем отвечающим и терпящим.
← →
zacho (2003-04-01 20:16) [13]
> IBQuery.Edit;
> IBQuery.FieldByName("TovarOstatok").AsFloat:=IBQuery.FieldByName("TovarOstatok").AsFloat-N;
> IBQuery.Post;
Вот это + UPDATE TOVAR SET TOVAROSTATOK=:TOVAROSTATOK WHERE TOVARID=:TOVARID в ModifySQL
← →
GRR (2003-04-01 20:47) [14]
> zacho © (01.04.03 20:16)
>
> Вот это + UPDATE TOVAR SET TOVAROSTATOK=:TOVAROSTATOK WHERE
> TOVARID=:TOVARID в ModifySQL
Вот ведь !!!
Спасибо, премного-премного благодарен. Кажется бредом, а работает. Я бы наверное так и не догнал сам-то.
Спасибо всем, тема закрыта.
← →
zacho (2003-04-01 21:12) [15]Это не бред. Это так и задумано, на что тебе намекал еще
> Johnmen © (01.04.03 10:32)
:-)
А вообще все это было подробно расписано в документации. По крайней мере, в документации по FIBC. В хелп по IBX я практически не заглядываю, т.ч. не знаю, может там и правда все весьма мутно :-)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.04.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c