Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.10;
Скачать: CL | DM;

Вниз

Помогите с IBTable данных IBX   Найти похожие ветки 

 
DimaF ©   (2004-01-20 05:27) [0]

Работал раньше с BDE решил перейти на InterBase
Проблемма в том что мне надо вносить до 1500 записей в базу данных программно, ели есть запись то обновить если нет то Insert с TTable было все просто Locate и по условию вставляеш или обновляеш
как КОРЕКТНО ЭТО СДЕЛАТЬ В IBX
я понимаю что можно воспользоватся IBTable но это както не коректно и еше с ней не тригеры не шетчики не работают она принудительно сама все поля заполняет.
КАК ПОСТУПИТЬ ПОМОГИТЕ !


 
Deniz ©   (2004-01-20 06:50) [1]

> вносить до 1500 записей в базу данных программно

Да без проблем. Лучше воспользоваться не IBTable а IBStoredProc.
А процедуру написать (или сгенерить) в IBExpert"е, должно получиться что-то вроде:

CREATE PROCEDURE DOKIN_IU (
IDDOKIN INTEGER,
NDOK INTEGER,
DDOK DATE,
INTYPE INTEGER)
AS
BEGIN
IF (EXISTS(SELECT IDDOKIN FROM DOKIN WHERE (IDDOKIN = :IDDOKIN))) THEN
UPDATE DOKIN
SET NDOK = :NDOK,
DDOK = :DDOK,
INTYPE = :INTYPE
WHERE (IDDOKIN = :IDDOKIN);
ELSE
INSERT INTO DOKIN (
IDDOKIN,
NDOK,
DDOK,
INTYPE)
VALUES (
:gen_id(<генератор>, 1),
:NDOK,
:DDOK,
:INTYPE);
END

Подразумевается что IDDOKIN - это первичный ключ, и по нему идет определение существования записи! О как!
В программе:

try
IBStoredProc1.StoredProcName:="DOKIN_IU";
IBStoredProc1.Prepare;
IBStoredProc1.ParamByName("NDOK").AsInteger:=...;
...
IBStoredProc1.ExecProc;
Application.ProcessMessages;
except
...
end;

Вот и все.


 
DimaF ©   (2004-01-20 06:58) [2]

Большое спосибо Deniz !



Страницы: 1 вся ветка

Текущий архив: 2004.02.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
6-29508
zioza
2003-12-04 09:28
2004.02.10
Помогите разобраться в кодировке при получении письма


9-29190
lokid7
2003-07-30 07:07
2004.02.10
Mesh


6-29497
Kinder
2003-10-27 19:26
2004.02.10
Как посчитать трафик текукщего соединения с инетом


14-29591
Jew_lo
2004-01-19 16:30
2004.02.10
Вот так мамаша


1-29403
Islander
2004-02-01 00:09
2004.02.10
Как проверить свернуто ли приложение или нет?