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

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

Параметры, InsertSQL в IBDataSet [D6, IB6.x]


Jaxtor ©   (2003-04-17 11:22:00) 

Мастаки, скажите, пожалуйста, а есть ли какие-то особенности работы с параметрами в запросе на вставку в IBDataSet?
У меня, вот, ошибка появляется:
Field SaveProdID not found


with qrPrihNaklInsert do begin

with InsertSQL do
Add("insert into SAVEPR_ATR(SAVEPRODID, COUNTRYID) values (:SaveProdID,1)");

ParamByName("SaveProdID").AsVariant:=45;
end;//with qrPrihNaklInsert


Jaxtor   (2003-04-17 12:43:00) [1]

А какая разница вообще?
Ошибка-то одна!


Johnmen   (2003-04-17 12:25:00) [2]

...и, видимо, на этом не остановится...:)


Соловьев   (2003-04-17 12:22:00) [3]


> Я просто привел пример другого куска программы

прыкалывается парень.... :)))))))


Jaxtor   (2003-04-17 12:20:00) [4]

Да все уже, вопрос исчерпан:)
У меня все работает пока.
Я просто привел пример другого куска программы.


Johnmen   (2003-04-17 12:14:00) [5]

1. Почему инсерт делается в SAVEPR_ATR ???
2. Что есть ID ? Если домен, то почему NOT NULL не внесен в него ?


Jaxtor   (2003-04-17 12:02:00) [6]


/* Table: SAVEPROD */

CREATE TABLE SAVEPROD (
SAVEPRODID ID NOT NULL,
PRODID ID NOT NULL,
PN STR,
PRODUCT LONG_STR,
WARANTYID ID NOT NULL,
UNITID ID NOT NULL,
NDS COEF);

/* Primary keys definition */

ALTER TABLE SAVEPROD ADD CONSTRAINT PK_SAVEPROD PRIMARY KEY (SAVEPRODID);

/* Foreign keys definition */

ALTER TABLE SAVEPROD ADD CONSTRAINT FK_SAVEPROD_PRODUCTS FOREIGN KEY (PRODID) REFERENCES PRODUCTS (PRODID) ON UPDATE CASCADE;
ALTER TABLE SAVEPROD ADD CONSTRAINT FK_SAVEPROD_UNITS FOREIGN KEY (UNITID) REFERENCES UNITS (UNITID) ON UPDATE CASCADE;
ALTER TABLE SAVEPROD ADD CONSTRAINT FK_SAVEPROD_WARANTY FOREIGN KEY (WARANTYID) REFERENCES WARANTY (WARANTYID) ON UPDATE CASCADE;

SET TERM ^ ;

/* Triggers definition */

/* Trigger: SAVEPROD_BI */
CREATE TRIGGER SAVEPROD_BI FOR SAVEPROD
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.SAVEPRODID IS NULL) THEN
NEW.SAVEPRODID = GEN_ID(NEWSAVEPRODID,1);
END
^
SET TERM ; ^


Johnmen   (2003-04-17 11:49:00) [7]

И для полноты картины, структура табл. SaveProd ?


Соловьев   (2003-04-17 11:49:00) [8]

наверное диалект 3...


Jaxtor   (2003-04-17 11:43:00) [9]

Да, да SelectSQL тоже здесь влияет.
Вот он:

with SelectSQL do begin
Clear;
Add("select SaveProdID from SaveProd where ProdId=:ProdId");
end;//with SelectSQL
ParamByName("ProdID").AsInteger:=102877;
Open;

Если я делаю SelectSQL.Clear, то возникает другая ошибка.
Итак, параметр ProdID не равен SaveProdID >>ошибка.


Johnmen   (2003-04-17 11:43:00) [10]

>А из-за чего ошибка возникает?

Field SaveProdID not found

А какой SelectSQL ?


Jaxtor   (2003-04-17 11:34:00) [11]

А из-за чего ошибка возникает?


Johnmen   (2003-04-17 11:28:00) [12]

А какой SelectSQL ?


Соловьев   (2003-04-17 11:27:00) [13]


> ParamByName("SaveProdID").AsVariant:=45;

привяжы к компонетам для редактирования БД и этот параметр будет автоматически заполнятся. С параметрами в IBDayaSet можно работать в Select.


Наверх

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