Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизМожно ли использовать запрос из нескольких таблиц, одна из Найти похожие ветки
← →
Rule © (2005-01-24 19:42) [0]которых хранимаю процедура, ну Типа:
select c.*, d.* from naklad c, pereuchettovaronnaklad(c.id) d
где pereuchettovaronnaklad(c.id) естественно хранимаю процедура, которая имеет входной параметр в виде айди наклданой ... ? так вот парсер пропускает, а при выполнении пишет чтото наподобии
"The cursor identified in the update or delete statement is not positionet on a row.
no current record for fetch operation"
Ой простите, забыл, использую фаерберд 1.5, запрос выполняю в эксперте ...
для пущего страха привожу код процедуры (чтоб вы убедились что там нет операций удаления и вставки)
CREATE PROCEDURE PEREUCHETTOVARONNAKLAD (
ID_NAKLAD INTEGER)
RETURNS (
NEW_SUMMA NUMERIC(7,2),
NEW_PRICE NUMERIC(7,2),
ID_MOVETOVAR INTEGER,
PRICEIN NUMERIC(7,2),
SUMMIN NUMERIC(7,2),
NAME VARCHAR(200),
EDIZMER VARCHAR(3),
CCOUNT NUMERIC(15,2),
PRICE NUMERIC(7,2),
SUMMA NUMERIC(7,2))
AS
DECLARE VARIABLE TID INTEGER;
begin
for SELECT c.name, d.name, b."VALUE", e.price, (b."VALUE"*e.price), c.id, b.id, g.new_price, (g.new_price*b."VALUE")
from move_naklad a, movetovar b, tovar c, edizmer d, pricetovar e, tovarpereuchet g
where a.id_naklad=:id_naklad
and a.id_movetovar=b.id
and b.id_tovar=c.id
and c.id_edizmer=d.id
and c.id=e.id_tovar
and g.id_tovar=c.id
and g.id_movetovar=b.id
and g.startend=0
and e.adatime=(select distinct max(f.adatime)
from pricetovar f where f.id_tovar=e.id_tovar and f.adatime<=b.adatime)
into :name, :edizmer, :ccount, :price, :summa, :TID, :id_movetovar, :new_price, :new_summa
do
begin
select coalesce(price,0) from gettovarpricein(:TID) into :pricein;
summin=pricein*ccount;
suspend;
end
end
посоветуйте пожалуйста кто чего может, код таблицы приводить не буду, там просто несколько полей и все ....
Заранее спасибо ...
← →
Rule © (2005-01-24 19:52) [1]ну я в принципе решил этот вопрос решается, если убрать входной параметр в процедуре и сделать чтоб процедура возвращала не только товар по нужной накладной, а по всем накладным и плюс поле номера наклданой ..., и связать их по этому полю ....
ну а как с параметрами, неужто нельзя ?
← →
TohaNik © (2005-01-24 20:02) [2]Да можно
А весь запрос увидеть?
← →
Rule © (2005-01-25 17:49) [3]TohaNik © (24.01.05 20:02) [2]
select c.*, d.* from naklad c, pereuchettovaronnaklad(c.id) d
я писал
← →
TohaNik © (2005-01-25 20:22) [4]С параметрами точно можно,иначе смысл...
может так:
select c.*, d.* from naklad c, pereuchettovaronnaklad(c.id) d
where c.id = ?c.id
или
select d.* from pereuchettovaronnaklad(c.id) d
а из процедуры данные по naklad передавать
← →
Johnmen © (2005-01-26 09:24) [5]>Rule © (25.01.05 17:49) [3]
Такое в принципе работать не будет.
см. http://www.krista.ru/ib/proc-join.html
← →
Rule © (2005-01-26 14:05) [6]TohaNik © (25.01.05 20:22) [4]
ничего не получается все равно ...
Johnmen © (26.01.05 9:24) [5]
Огромное спасибо ...
очень, очень, очень полезная ссылка ...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c