Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

а зачем такие сложности? может всетаки запрос поможет? как будет решаться эта поблема в случае многопользовательской работы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо