> ÓÏÂÓÔ×ÅÎÎÏ ËÁË × InterBase 7.5 ÐÏÌÕÞÉÔØ ÔÅËÕÝÉÊ CONNECTION_ID(ÁÎÁÌÏÇ
> CURRENT_CONNECTION × FireBird)
> ÔÏ ÅÓÔØ ÔÏ, ÞÔÏ ÈÒÁÎÉÔÓÑ × ÔÁÂÌÉÃÅ TMP$ATTACHMENTS × ÐÏÌÅ
TMP$ATTACHMENT_ID
> ÄÌÑ ÉÍÅÎÎÏ ÔÅËÕÝÅÇÏ ÓÏÅÄÉÎÅÎÉÑ.
ÉÔÁË, ÏÐÙÔÎÙÍ ÐÕÔÅÍ ÎÁÊÄÅÎ ÓÐÏÓÏÂ ÐÏÌÕÞÉÔØ ÔÅËÕÝÉÊ ATTACHMENT_ID:
select ta.tmp$attachment_id
from tmp$attachments ta
where ta.tmp$state='ACTIVE'
ÉÌÉ ÐÒÏÃÅÄÕÒÏÊ ÔÁË:
CREATE PROCEDURE GET_ATTACHMENT_ID
RETURNS (
ATTACHMENT_ID INTEGER)
AS
begin
attachment_id=0;
for select ta.tmp$attachment_id
from tmp$attachments ta
where ta.tmp$state='ACTIVE'
into :attachment_id do begin
suspend;
exit;
end
suspend;
end
× ÏÂÝÅÍ, ÐÏÈÏÖÅ, ÞÔÏ × ÔÁÂÌÉÃÅ TMP$ATTACHMENTS ÐÏÌÅ TMP$STATE ÄÌÑ ÔÅËÕÝÅÇÏ
ÓÏÅÄÉÎÅÎÉÑ ÐÏÍÅÞÁÅÔÓÑ ËÁË 'ACTIVE'.
ÈÏÔÑ ÍÏÑ ÐÒÏÂÌÅÍÁ ÕÖÅ ÍÏÖÎÏ ÓËÁÚÁÔØ ÒÅÛÅÎÁ, ×ÏÐÒÏÓ ÐÏ ÐÒÅÖÎÅÍÕ ÏÓÔÁÅÔÓÑ
ÁËÔÕÁÌÅÎ Ó ÁËÁÄÅÍÉÞÅÓËÏÊ ÃÅÌØÀ:
ÍÏÖÎÏ ÌÉ ÐÏÌÕÞÉÔØ CONNECTION_ID(CURRENT_CONNECTION) ÉÌÉ ATTACHMENT_ID
ÐÏÓÒÅÄÓÔ×ÏÍ keyword, ËÁË ÎÁÐÒÉÍÅÒ USER.
ÐÒÏÓÔÏ ÜÔÏ ÒÅÁÌØÎÏ ÕÄÏÂÎÅÅ ÉÓÐÏÌØÚÏ×ÁÔØ × ÎÕÖÎÙÈ ÍÅÓÔÁÈ, ÞÅÍ [SELECT ...],
ÄÁ É ÒÁÂÏÔÁÔØ, ÐÏÌÁÇÁÀ, ÐÏÂÙÓÔÒÅÅ ÂÕÄÅÔ... ÎÁÐÒÉÍÅÒ × ËÏÎÔÅËÓÔÅ ×ÙÚÏ×Á
ÃÅÐÏÞËÉ(ÓÔÅËÁ) SP, ËÁÖÄÁÑ ÉÚ ËÏÔÏÒÙÈ ÄÁÎÎÕÀ ÈÒÅÎØ ÐÒÏ×ÅÒÑÅÔ.