Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Procedure Yardım
#1
SET TERM ^ ;

CREATE PROCEDURE COPY_FOLDER(
  FOLDER_ID BIGINT NOT NULL,
  NEW_PARENT_ID BIGINT NOT NULL)
AS
DECLARE VARIABLE fID BIGINT;
DECLARE VARIABLE FNAME VARCHAR(255) COLLATE PXW_TURK;
DECLARE VARIABLE NEW_ID BIGINT;
BEGIN

  SELECT coalesce(ID,0),F_NAME FROM  FOLDER where ID =:FOLDER_ID  into :FID, :FNAME;
  if (FID <> 0) then
  begin
  EXECUTE PROCEDURE C_FOLDER1( :NEW_PARENT_ID, :FNAME)  returning_values( :NEW_ID );
  EXECUTE PROCEDURE COPY_FILE_ALL( :FOLDER_ID, :NEW_ID);
  COMMIT
  
    for SELECT ID,F_NAME FROM  FOLDER where PRN_ID =:FOLDER_ID  into :FID, :FNAME  do
    begin
    EXECUTE PROCEDURE COPY_FOLDER( :FID, :NEW_ID);
    end  
   
  end
  
END^

SET TERM ; ^
DB de bulunan klasör yapısını kopyalamak için bir procedure yazmaya çalışıyorum fakat

Too many concurrent executions of the same request.
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At procedure 'COPY_FOLDER' line: 18, col: 5
At proce...

SQL Code: -693
IB Error Number: 335544663


Procedure çalıştırdığım zaman
hatası ile karşılaşıyorum.
Bilgisi olan varmı acaba ?
Cevapla
#2
Selamlar,

Emin değilim ama for SELECT ID,F_NAME FROM FOLDER kullandığınız yerde sanırım STATIC bir select çekmeniz gerekiyor olabilir. Yani siz COPY_FOLDER fonksiyonunu Recursive çağırdığınız için her bir yeni eklenen Klasör (ki kendi kendini çağırıp duruyor) eğer doğru kayıtları alamıyorsanız sonsuz döngüye sokarsınız. Bu arada Firebird'de Recursive kullanımında da belli bir sınır var. Muhtemelen siz de o sınırıa takılıyor olabilirsiniz.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  stored procedure ile arama yapma canbir 6 320 20-04-2018, Saat: 16:51
Son Yorum: canbir
  Firebird CariBakiye Hesaplama Stored Procedure masteryoda 4 1.038 08-02-2017, Saat: 17:11
Son Yorum: masteryoda



Konuyu Okuyanlar: 1 Ziyaretçi