Dynamic SQL Statement generation limit error: eror code = -204 Implementation 
limit exceeded block size exceeds implementation restriction
------------------------------------------------------------------------------------------------------------------------------------------

                 Key: DNET-722
                 URL: http://tracker.firebirdsql.org/browse/DNET-722
             Project: .NET Data provider
          Issue Type: Bug
          Components: ADO.NET Provider, DDEX Provider, Entity Framework support
    Affects Versions: 5.6.0.0
         Environment: Windows 8, Visual Studio 2013 Update 5, 
Firebird-2.5.6.27020_0 (Win32), FirebirdSql.Data.FirebirdClient 5.6.0.0, 
DDEXProvider-3.0.2.0
            Reporter: Vladimir
            Assignee: Jiri Cincura


Hello, please help me with "Dynamic SQL Error: error code = -204 Implementation 
limit exceeded block size exceeds implementation restriction" error 

Project details: .NET 4.5.2 WPF-app 
nuget-packages: 
Firebird Entity Framework Provider - version 5.6.0 
Firebird ADO.NET Data Povider - version 5.6.0 
Entity Framework - version 6.1.3 

I have a number of Stored Procedures in my DB, which i use a lot. But when i 
tried to use these procedures with EntityFramework, i faced with an unsolvable 
problem. For this bug i chose two similar Stored Procedures: B_IMP_I_OGL and 
B_IMP_I_REESTR and created two projects to work with them. B_IMP_I_OGL - works 
perfectly, B_IMP_I_REESTR - returns following error during compilation: 

"FirebirdSql.Data.FirebirdClient.FbException: Dynamic SQL Error 
SQL error code = -204 
Implementation limit exceeded 
block size exceeds implementation restriction" 

B_IMP_I_REESTR has 25 input parameters, while B_IMI_I_OGL has only 7 
parameters. (Both procedures return only one parameter - integer ID) 

This is my procedure: 

create or alter procedure B_IMP_I_REESTR ( 
    IDUSER integer, 
    IMPMODE integer, 
    IDGEN integer, 
    IDPARENT integer, 
    IDTCH integer, 
    NOMER varchar(15), 
    SBORNIK integer, 
    NAME varchar(250), 
    VIX_DAN blob sub_type 0 segment size 80, 
    ISSYSTEM integer, 
    POKAZ varchar(8), 
    GOD integer, 
    RABMAT integer, 
    IDGROUP integer, 
    IDPODGROUP integer, 
    IDTYPE integer, 
    ORDERVIEW integer, 
    CREATEDATE date, 
    AUTHOR varchar(250), 
    NORM_GUID varchar(100), 
    INSTALL_GUID varchar(100), 
    INDEX_YEAR integer, 
    INDEX_MONTH integer, 
    INDEX_ORGNAME varchar(250), 
    INDTYPE varchar(50)) 
returns ( 
    ID integer) 
as 
declare variable REORDERING integer; 
declare variable AINSERTING integer; 
declare variable IDIND integer; 
declare variable ISSYSTEM_OLD integer; 
declare variable IDPARENT_OLD integer; 
BEGIN 
 ... 
 END 
  execute procedure B_IMP_U_REESTR_HIDE(:ID); 
  SUSPEND; 
END 


1) I added this Stored Procedure "B_IMP_I_REESTR" to my model.edmx file (and 
checked in Model Browser\Storage Model, that it has been added) 
2) Then i opened Model Browser again and created complex type with one integer 
field named ID (return type for import function) 
3) Then i created import function for B_IMP_I_REESTR procedure, which returns 
complex type (2) 
4) This is calling code: 
var temp_B_IMP_I_REESTR = Context.B_IMP_I_REESTR(10, 1, 19105302, 1399455, 
null, "132456", 0, "some text", null, 0, "", null, 0, 
               1, 1, 1399451, 6000000, null, "some other text", 
Guid.NewGuid().ToString(), null, null, null, "", "some random text"); 
 foreach (B_IMP_I_REESTR_ReturnType bImpReestReturnComplexType in 
temp_B_IMP_I_REESTR) 
            { 
                MessageBox.Show(bImpReestReturnComplexType.ID.ToString()); 
            } 

And then i get unresolved exception: 
 "System.Data.Entity.Core.EntityCommandExecutionException" in 
EntityFramework.dll 

Visual studio Output gives me the following statement: 

FirebirdSql.Data.FirebirdClient Information: 0 : Command: 
SELECT 
1 AS "C1", 
"A"."ID" AS "ID" 
FROM "B_IMP_I_REESTR"(CAST(@IDUSER AS INT), CAST(@IMPMODE AS INT), CAST(@IDGEN 
AS INT), CAST(@IDPARENT AS INT), CAST(@IDTCH AS INT), CAST(@NOMER AS 
VARCHAR(8191)), CAST(@SBORNIK AS INT), CAST(@NAME AS VARCHAR(8191)), 
CAST(@VIX_DAN AS BLOB SUB_TYPE BINARY), CAST(@ISSYSTEM AS INT), CAST(@POKAZ AS 
VARCHAR(8191)), CAST(@GOD AS INT), CAST(@RABMAT AS INT), CAST(@IDGROUP AS INT), 
CAST(@IDPODGROUP AS INT), CAST(@IDTYPE AS INT), CAST(@ORDERVIEW AS INT), 
CAST(@CREATEDATE AS TIMESTAMP), CAST(@AUTHOR AS VARCHAR(8191)), CAST(@NORM_GUID 
AS VARCHAR(8191)), CAST(@INSTALL_GUID AS VARCHAR(8191)), CAST(@INDEX_YEAR AS 
INT), CAST(@INDEX_MONTH AS INT), CAST(@INDEX_ORGNAME AS VARCHAR(8191)), 
CAST(@INDTYPE AS VARCHAR(8191))) AS "A" 
Parameters: 
Name:IDUSER     Type:Integer    Used Value:10 
Name:IMPMODE    Type:Integer    Used Value:1 
Name:IDGEN      Type:Integer    Used Value:19105302 
Name:IDPARENT   Type:Integer    Used Value:1399455 
Name:IDTCH      Type:Integer    Used Value:<null> 
Name:NOMER      Type:VarChar    Used Value:132456 
Name:SBORNIK    Type:Integer    Used Value:0 
Name:NAME       Type:VarChar    Used Value:some text 
Name:VIX_DAN    Type:Binary     Used Value:<null> 
Name:ISSYSTEM   Type:Integer    Used Value:0 
Name:POKAZ      Type:VarChar    Used Value: 
Name:GOD        Type:Integer    Used Value:<null> 
Name:RABMAT     Type:Integer    Used Value:0 
Name:IDGROUP    Type:Integer    Used Value:1 
Name:IDPODGROUP Type:Integer    Used Value:1 
Name:IDTYPE     Type:Integer    Used Value:1399451 
Name:ORDERVIEW  Type:Integer    Used Value:6000000 
Name:CREATEDATE Type:TimeStamp  Used Value:<null> 
Name:AUTHOR     Type:VarChar    Used Value:some other text 
Name:NORM_GUID  Type:VarChar    Used Value:da204a67-c82d-49ba-8475-945110f3c2f7 
Name:INSTALL_GUID       Type:VarChar    Used Value:<null> 
Name:INDEX_YEAR Type:Integer    Used Value:<null> 
Name:INDEX_MONTH        Type:Integer    Used Value:<null> 
Name:INDEX_ORGNAME      Type:VarChar    Used Value: 
Name:INDTYPE    Type:VarChar    Used Value:some random text 


FirebirdSql.Data.FirebirdClient.FbException: Dynamic SQL Error 
SQL error code = -204 
Implementation limit exceeded 
block size exceeds implementation restriction ---&amp;gt; 
FirebirdSql.Data.Common.IscException: Dynamic SQL Error 
SQL error code = -204 
Implementation limit exceeded 
block size exceeds implementation restriction 
   в 
FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ProcessResponse(IResponse 
response) 
   в FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadResponse() 
   в 
FirebirdSql.Data.Client.Managed.Version10.GdsDatabase.ReadGenericResponse() 
   в FirebirdSql.Data.Client.Managed.Version11.GdsStatement.Prepare(String 
commandText) 
   в FirebirdSql.Data.FirebirdClient.FbCommand.Prepare(Boolean returnsSet) 
   в FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteCommand(CommandBehavior 
behavior, Boolean returnsSet) 
   в FirebirdSql.Data.FirebirdClient.FbCommand.ExecuteReader(CommandBehavior 
behavior)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
_______________________________________________
Firebird-net-provider mailing list
Firebird-net-provider@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider

Reply via email to