Dynamic SQL Statement generation limit error: eror code = -204 Implementation
limit exceeded block size exceeds implementation restriction
------------------------------------------------------------------------------------------------------------------------------------------
Key: DNET-721
URL: http://tracker.firebirdsql.org/browse/DNET-721
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 20 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/firebird-net-provider