Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-54418
Mixa
2003-04-01 12:17
2003.04.17
Обновление LONG RAW


1-54586
Мыш
2003-04-06 02:21
2003.04.17
Параметры командной строки в BorgTv


14-54889
Delphi-Beginner
2003-04-02 11:33
2003.04.17
для чего нужен QuickReport ?


1-54662
Furyous
2003-04-03 08:18
2003.04.17
Проблема с эдитами.


3-54411
zx
2003-03-31 17:53
2003.04.17
DAO.DBEngine.35





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский