![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Параметры, 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.