![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
почему обновления только в одной строке? [D6, IB6.x, FireBird]
Roki © (2003-03-11 14:41:00)Мастера, помогите.
Такая вот процедура:
CREATE PROCEDURE GET_DATA
AS
declare variable phone_n integer;
declare variable fio_n varchar(255);
declare variable id_n integer;
declare variable d_prop_n date;
BEGIN
for
select phone, fio, id, d_prop
from ntu
into :phone_n, :fio_n, :id_n, :d_prop_n
do
begin
update name_lg
set fio=:fio_n, id=:id_n, d_prop=:d_prop_n
where phone=:phone_n;
suspend;
end
END
Как сделать чтобы все нужные строки обноляла?
zacho (2003-03-11 20:53:00) [1]Suspend тут нафиг не нужен, т.ч. или баг в твоей сборке FB (кстати, написал бы конкретно, с каким клоном/сборкой IB/FB работаешь), либо ты чего-то не сказал:)
Silver_ (2003-03-11 16:11:00) [2]
update name_lg t1, ntu t2
set t1.fio=t2.fio
where t1.phone=t2.phone
попробуй так
Roki (2003-03-11 15:53:00) [3]
> Smashich © (11.03.03 15:41
я пробовал и без suspend - не работает, я правда запускаю ее в IBMAnegere... Может он глючит?
Silver_ (2003-03-11 15:44:00) [4]
> update name_lg t1
> set t1.fio=(select t2.fio from ntu t2 where t1.phone=t2.phone)
добавь
whereи условие типа t1.phone=t2.phone (чтоб update проходил тока по нужным записям)
вот над условием помозгуй сам не особо всматривался в код :))
Smashich (2003-03-11 15:42:00) [5]a suspend нужен для вывода данных....и не рекомендуеться к использование в процедурах не возвращающих ничего
Smashich (2003-03-11 15:41:00) [6]Create PROCEDURE Temp
AS
DECLARE VARIABLE ID INTEGER;
DECLARE VARIABLE Str1 char (25);
BEGIN
FOR SELECT ID,Str1 FROM MyTable
INTO :ID,:Str1 DO
BEGIN
UPDATE MyTable SET
Str2=:Str1
WHERE ID=:ID;
END
END
работает
Roki (2003-03-11 15:36:00) [7]Как тогда можно сделать? Может есть какие-то другие способы?
Roki (2003-03-11 15:25:00) [8]самое интересное, что если выполнить такой запрос, то
update name_lg t1
set t1.fio=(select t2.fio from ntu t2 where t1.phone=t2.phone)
все обновления делаются, но для все полей fio - там где телефон не совпал, там NULL :((((
Roki (2003-03-11 15:20:00) [9]ну что никогда никто не сталкивался с одновлением данных из процедуры?
Roki (2003-03-11 14:56:00) [10]
> suspend;
без этого вообще ничего не обновляет, мастера как быть?