Allora .....

ho prima provato così:

<%
'///////////////////////////////////////////////////////////////////////////////////
'connection string

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=msdaora; Data Source=DataBase; User Id=system ; Password=morpheus ;"



create or replace
TRIGGER TriggerGIACENZE
AFTER INSERT
ON TB_TRANS_ARTICLES
FOR EACH ROW

DECLARE
ART TB_POS_GIACENZE%ROWTYPE;

BEGIN

SELECT * INTO ART
FROM TB_POS_GIACENZE
WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID;
IF :NEW.DELETE_OPERATOR_ID IS NULL THEN
UPDATE TB_POS_GIACENZE
SET QTA = QTA + :NEW.QTY_WEIGHT,
PRICE = PRICE + :NEW.PRICE
WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
IF :NEW.DELETE_OPERATOR_ID IS NULL THEN
INSERT INTO TB_POS_GIACENZE ( ARTICLE_ID, CASHREG_ID, QTA, PRICE )
VALUES ( :NEW.ARTICLE_ID, :NEW.POS_ID, :NEW.QTY_WEIGHT, :NEW.PRICE );
END IF;
END;
Conn.execute(Sql)
%>



e mi viene (giustamente) fuori questo errore:

Microsoft VBScript compilation error '800a0409'
Unterminated string constant
CreateTrigger2.asp, line 13
Sql = " create or replace
------------------------------^



ho provato in quest'altro modo:

<%
'///////////////////////////////////////////////////////////////////////////////////
'connection string

Set Conn=Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=msdaora; Data Source=DataBase; User Id=system ; Password=morpheus ;"

Sql = " create or replace " &_
"TRIGGER TriggerGIACENZE " &_
"AFTER INSERT " &_
" ON TB_TRANS_ARTICLES " &_
" FOR EACH ROW " &_
"DECLARE " &_
" ART TB_POS_GIACENZE%ROWTYPE; " &_
"BEGIN " &_
" SELECT * INTO ART " &_
" FROM TB_POS_GIACENZE " &_
" WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID; " &_
" IF :NEW.DELETE_OPERATOR_ID IS NULL THEN " &_
" UPDATE TB_POS_GIACENZE " &_
" SET QTA = QTA + :NEW.QTY_WEIGHT, " &_
" PRICE = PRICE + :NEW.PRICE " &_
" WHERE ARTICLE_ID = :NEW.ARTICLE_ID AND CASHREG_ID = :NEW.POS_ID; " &_
" END IF; " &_
"EXCEPTION " &_
" WHEN NO_DATA_FOUND THEN " &_
" IF :NEW.DELETE_OPERATOR_ID IS NULL THEN " &_
" INSERT INTO TB_POS_GIACENZE ( ARTICLE_ID, CASHREG_ID, QTA, PRICE ) " &_
" VALUES ( :NEW.ARTICLE_ID, :NEW.POS_ID, :NEW.QTY_WEIGHT, :NEW.PRICE ); " &_
" END IF; " &_
"END;"
Conn.execute(Sql)


%>

e mi da questo errore:


Microsoft OLE DB Provider for Oracle error '80040e37'
ORA-00942: table or view does not exist
CreateTrigger.asp, line 37


ma le tabelle esistono !!

l'unica stringa che potrebbe secondo me dare errore è questa:
TB_POS_GIACENZE%ROWTYPE

mi sapete aiutare ?