/    Sign up×
Community /Pin to ProfileBookmark

Is it possible to execute a trigger like this from php?

[SQL]
CREATE trigger INSERT_CUSTOMER_ORDER on CUSTOMER_ORDER for INSERT as

DECLARE

@nRcd INT,

@ID VARCHAR(15),

@TOTAL_AMT_ORDERED DEC(15,2),

@TOTAL_AMT_SHIPPED DEC(15,2),

@ORDER_DATE DATETIME,

@DESIRED_SHIP_DATE DATETIME,

@EDI_RELEASE_NO VARCHAR(15),

@EDI_ACCUM_SHIP_QTY DEC(14,4),

@EDI_ACCUM_AUTH_QTY DEC(14,4),

@EDI_ACCUM_BUY_QTY DEC(14,4),

@EDI_ACCUM_SHIP_ADJ DEC(14,4),

@EDI_ACCUM_ORD_ADJ DEC(14,4),

@EDI_LAST_SHIPDATE DATETIME,

@CUSTOMER_ID VARCHAR(15),

@STATUS CHAR(1),

@REVISION_ID VARCHAR(8)

SET NOCOUNT ON

SET DATEFORMAT mdy

SELECT @nRcd = 0

DECLARE CUSTOMER_ORDER_INS CURSOR LOCAL FOR

select

id, isnull(total_amt_ordered,0), isnull(total_amt_shipped,0),

order_date, desired_ship_date, edi_release_no, edi_accum_ship_qty, edi_accum_auth_qty,

edi_accum_buy_qty, edi_accum_ship_adj, edi_accum_ord_adj, edi_last_shipdate,

CUSTOMER_ID, STATUS, REVISION_ID

from inserted

OPEN CUSTOMER_ORDER_INS

FETCH CUSTOMER_ORDER_INS INTO

@ID, @TOTAL_AMT_ORDERED, @TOTAL_AMT_SHIPPED, @ORDER_DATE, @DESIRED_SHIP_DATE,

@EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY, @EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ,

@EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, @CUSTOMER_ID, @STATUS, @REVISION_ID

WHILE (@nRcd = 0 and @@fetch_status <> -1)

BEGIN

If @TOTAL_AMT_ORDERED != 0 OR @TOTAL_AMT_SHIPPED != 0

SELECT @nRcd = 30791

EXEC EXE_DETECT_EVENT ‘C’, @ID, NULL, NULL, ‘I’

insert into CUSTOMER_BOOKINGS (

CUST_ORDER_ID, BOOK_DATE, ORDER_DATE, DESIRED_SHIP_DATE, EDI_RELEASE_NO, EDI_ACCUM_SHIP_QTY,

EDI_ACCUM_AUTH_QTY, EDI_ACCUM_BUY_QTY, EDI_ACCUM_SHIP_ADJ, EDI_ACCUM_ORD_ADJ, EDI_LAST_SHIPDATE, CREATE_DATE, USER_ID, REVISION_ID

) values (

@ID, GetDate(), @ORDER_DATE, @DESIRED_SHIP_DATE, @EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY,

@EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ, @EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, GetDate(), SYSTEM_USER, @REVISION_ID

)

update CUSTOMER set last_order_date = @ORDER_DATE where id = @CUSTOMER_ID

FETCH CUSTOMER_ORDER_INS INTO

@ID, @TOTAL_AMT_ORDERED, @TOTAL_AMT_SHIPPED, @ORDER_DATE, @DESIRED_SHIP_DATE,

@EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY, @EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ,

@EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, @CUSTOMER_ID, @STATUS, @REVISION_ID

END

DEALLOCATE CUSTOMER_ORDER_INS

IF (@nRcd <> 0) RAISERROR(‘VMFG-%d error in trigger INSERT_CUSTOMER_ORDER’, 16, -1, @nRcd)

IF (@nRcd <> 0 Or @@ERROR <> 0) ROLLBACK TRANSACTION
[/SQL]

Thanks in advance

to post a comment
PHP

1 Comments(s)

Copy linkTweet thisAlerts:
@DJsACMar 16.2005 — I'm not sure if it will work, but I suppose if you put everything between "quotation marks" and then insert that into a mysql_query(); it would work:

[code=php]
$query = "CREATE trigger INSERT_CUSTOMER_ORDER on CUSTOMER_ORDER for INSERT as

DECLARE

@nRcd INT,

@ID VARCHAR(15),

@TOTAL_AMT_ORDERED DEC(15,2),

@TOTAL_AMT_SHIPPED DEC(15,2),

@ORDER_DATE DATETIME,

@DESIRED_SHIP_DATE DATETIME,

@EDI_RELEASE_NO VARCHAR(15),

@EDI_ACCUM_SHIP_QTY DEC(14,4),

@EDI_ACCUM_AUTH_QTY DEC(14,4),

@EDI_ACCUM_BUY_QTY DEC(14,4),

@EDI_ACCUM_SHIP_ADJ DEC(14,4),

@EDI_ACCUM_ORD_ADJ DEC(14,4),

@EDI_LAST_SHIPDATE DATETIME,

@CUSTOMER_ID VARCHAR(15),

@STATUS CHAR(1),

@REVISION_ID VARCHAR(8)



SET NOCOUNT ON

SET DATEFORMAT mdy

SELECT @nRcd = 0

DECLARE CUSTOMER_ORDER_INS CURSOR LOCAL FOR

select

id, isnull(total_amt_ordered,0), isnull(total_amt_shipped,0),

order_date, desired_ship_date, edi_release_no, edi_accum_ship_qty, edi_accum_auth_qty,

edi_accum_buy_qty, edi_accum_ship_adj, edi_accum_ord_adj, edi_last_shipdate,

CUSTOMER_ID, STATUS, REVISION_ID

from inserted

OPEN CUSTOMER_ORDER_INS

FETCH CUSTOMER_ORDER_INS INTO

@ID, @TOTAL_AMT_ORDERED, @TOTAL_AMT_SHIPPED, @ORDER_DATE, @DESIRED_SHIP_DATE,

@EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY, @EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ,

@EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, @CUSTOMER_ID, @STATUS, @REVISION_ID

WHILE (@nRcd = 0 and @@fetch_status <> -1)

BEGIN

If @TOTAL_AMT_ORDERED != 0 OR @TOTAL_AMT_SHIPPED != 0

SELECT @nRcd = 30791



EXEC EXE_DETECT_EVENT 'C', @ID, NULL, NULL, 'I'



insert into CUSTOMER_BOOKINGS (

CUST_ORDER_ID, BOOK_DATE, ORDER_DATE, DESIRED_SHIP_DATE, EDI_RELEASE_NO, EDI_ACCUM_SHIP_QTY,

EDI_ACCUM_AUTH_QTY, EDI_ACCUM_BUY_QTY, EDI_ACCUM_SHIP_ADJ, EDI_ACCUM_ORD_ADJ, EDI_LAST_SHIPDATE, CREATE_DATE, USER_ID, REVISION_ID

) values (

@ID, GetDate(), @ORDER_DATE, @DESIRED_SHIP_DATE, @EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY,

@EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ, @EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, GetDate(), SYSTEM_USER, @REVISION_ID

)



update CUSTOMER set last_order_date = @ORDER_DATE where id = @CUSTOMER_ID



FETCH CUSTOMER_ORDER_INS INTO

@ID, @TOTAL_AMT_ORDERED, @TOTAL_AMT_SHIPPED, @ORDER_DATE, @DESIRED_SHIP_DATE,

@EDI_RELEASE_NO, @EDI_ACCUM_SHIP_QTY, @EDI_ACCUM_AUTH_QTY, @EDI_ACCUM_BUY_QTY, @EDI_ACCUM_SHIP_ADJ,

@EDI_ACCUM_ORD_ADJ, @EDI_LAST_SHIPDATE, @CUSTOMER_ID, @STATUS, @REVISION_ID



END

DEALLOCATE CUSTOMER_ORDER_INS

IF (@nRcd <> 0) RAISERROR('VMFG-%d error in trigger INSERT_CUSTOMER_ORDER', 16, -1, @nRcd)

IF (@nRcd <> 0 Or @@ERROR <> 0) ROLLBACK TRANSACTION";


$results = mysql_query($query) or die(mysql_error());
echo $results."<br />";[/code]


You might have to split it up into multiple smaller query's though...
×

Success!

Help @Edwardp spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.19,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...