![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IBStoredProc проблемы с обновлением параметров [D6, IB6.x]
slaga © (2004-11-23 12:48:00)У меня проблема с динамически обновлением параметров в IBStoredProc.
Такая ситуация:
Есть IBStoredProc, он подключен к процедуре Proc, это процедура во время выполнения программы меняет количество и качество своих параметров. Проблема в том что моя IBStoredProc незамечает изменения этих самых параметров.
А мне это очень-очень надо :(
Что делать ?
slaga (2004-11-23 15:19:00) [1]Все равно эта ошибка :(
slaga (2004-11-23 15:15:00) [2]Все равно эта ошибка :(
Johnmen (2004-11-23 15:01:00) [3]DM.IBStoredProc.Params.Clear; после Unprepare.
slaga (2004-11-23 14:49:00) [4]Dynamic SQL Error
parameter mismatch for procedure INSERT_OR_UPDATE
при смене поцедуры и вызове DM.IBStoredProc.Prepare;
Johnmen (2004-11-23 13:52:00) [5]1. А саспенд зачем ???
2. Unprepare; меняем IBStoredProc; Prepare;
stud (2004-11-23 13:29:00) [6]а если
> stud © (23.11.04 13:24) [4][Ответить]
slaga (2004-11-23 13:27:00) [7]Параметры и таблици с которыми происходят действия меняются !
stud (2004-11-23 13:24:00) [8]и почему нельзя получить нужное значение code_group_warez на клиента и там в зависимости от значения выполнить нужный запрос? смысл этой процедуры и заданного вопроса не совсем понятен.
stud (2004-11-23 13:22:00) [9]и где и как она меняет свои параметры? и зачем тут suspend?
slaga (2004-11-23 13:15:00) [10]Ну если ты мне подскажешь как мне сделать вот это запросом, буду очень прзнателен:
CREATE PROCEDURE INSERT_OR_UPDATE (
NAME VARCHAR(70),
SIGN_ACTIVITY INTEGER,
CODE_PARENT_GROUP_WARES INTEGER,
CODE_GROUP_WARES INTEGER)
AS
DECLARE VARIABLE V_EXIST INTEGER;
BEGIN
SELECT CODE_GROUP_WARES
FROM GROUP_WARES
WHERE CODE_GROUP_WARES = :CODE_GROUP_WARES
INTO :V_EXIST;
IF (:V_EXIST IS NULL) THEN
INSERT INTO GROUP_WARES ( NAME, SIGN_ACTIVITY, CODE_PARENT_GROUP_WARES, CODE_GROUP_WARES)
VALUES (:NAME,:SIGN_ACTIVITY,:CODE_PARENT_GROUP_WARES,:CODE_GROUP_WARES);
ELSE
BEGIN
UPDATE GROUP_WARES
SET NAME = : NAME,
SIGN_ACTIVITY = : SIGN_ACTIVITY,
CODE_PARENT_GROUP_WARES = : CODE_PARENT_GROUP_WARES, CODE_GROUP_WARES = : CODE_GROUP_WARES
WHERE CODE_GROUP_WARES = :CODE_GROUP_WARES;
END
SUSPEND;
END
stud (2004-11-23 13:01:00) [11]а зачем такие сложности? может всетаки запрос поможет? как будет решаться эта поблема в случае многопользовательской работы?