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 ---&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