Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Как изменить запись в наборе сформированном через 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
1-54723
Вадим
2003-04-04 23:16
2003.04.17
TRichEdit


7-54908
[Bio]z
2003-02-26 00:57
2003.04.17
Как установить системную дату?


1-54550
Freeze
2003-04-04 12:06
2003.04.17
TRichEdit


1-54739
oleg_SYS
2003-04-02 22:57
2003.04.17
Файлы со смешанными данными


14-54832
Dimodim
2003-03-29 08:51
2003.04.17
Как вычислить в Дельфи интеграл?