Subject | Re: [firebird-support] Implementation limit exceeded.: block size exceeds implementation restriction. |
---|---|
Author | Helen Borrie |
Post date | 2007-09-06T10:55:05Z |
At 08:25 PM 6/09/2007, you wrote:
parameters lately, than they did before?
The total length of the statement is not the same as the total length
of your statement as you show it here (nor, indeed, as it is when it
passes through the API at prepare time, where your Delphi-style named
and colon-prefixed placeholders are replaced by questionmarks).
Figure out the potential "blowout length" of an instance of your
statement (in bytes) when you have actual VALUES assigned to those
placeholders, not forgetting to count the single-quote delimiters for
the strings....
./heLen
>This a typical "but I don't have changed anything" case. I have query,Do you have users suddenly passing larger values to their text
>which has been working for years and now I get the error:
>
>Unsuccessful execution caused by an unavailable resource.
>Implementation limit exceeded.
>block size exceeds implementation restriction.
>
>The statement is definitely not bigger than 64KB. I run FB 1.5 on
>Windows XP. Here's the statement:
>
>insert into PRODUCTS
>(PCID,PCPAID,PCMPID,PCSPID,PCGEID,PCPUID,PCUNID1,PCUNID2,
>PCRTID,PCCCID,PCMNID1,PCMNID2,PCPGID,PCNR,PCNAME1,PCUPC,PCAVAILABILITY,PCDELIVERYQUANTITY,
>PCPACKETQUANTITY,PCCOPYPROTECTION,
>PCTRANSFERPRICE,PCNETPRICE,PCLISTPRICE,PCRRP,
>PCTRANSFERPRICE_CC,PCNETPRICE_CC,PCLISTPRICE_CC,PCRRP_CC,
>PCDAYONE,PCLIFETIME,PCTARGETRELEASEDATE,PCACTUALRELEASEDATE,PCDELIVERYTIME,PCBUNDLE,
>PCDYNAMICFORECAST,PCFORECAST1,PCFORECAST2,PCFORECAST3,PCFORECAST4,PCFORECAST5,PCFORECAST6,
>PCFORECAST7,PCFORECAST8,PCFORECAST9,PCFORECAST10,PCFORECAST11,PCFORECAST12,
>PCCOMMISSION,PCCOMMISSIONYEAR,
>PCAMNESTY,PCAMNESTYYEAR,PCPRICEGROUP,
>PCUKID,PCCOMMISSION_BUNDLE,PCCOMMISSION_PERFORMANCE1,PCCOMMISSION_PERFORMANCE2,
>PCCOMMISSION_PERFORMANCE3,PCCOMMISSION_FACTOR1,PCCOMMISSION_FACTOR2,
>PCCOMMISSION_FACTOR3,PCACTIVE,PCONEFORECAST,PCSTRATEGYBONUSQUANTITY,
>PCSB_ONLY_RELEASEMONTH,PCSB_FROM_YEAR,PCSB_UNTIL_YEAR,
>PCSB_FROM_MNID,PCSB_UNTIL_MNID,PCMINSTOCKQUANTITY,PCMINORDERQUANTITY,
>PCIGNOREATFORECASTSPLITBUNDLES,PCCANCELED,PCPOID400,PCPOID500,PCPOID600,
>PCCommissionUseWidthDistr,PCCommissionMinWidthDistr,PCCommissionMinSales,
>PCCOMMISSIONWIDTHDISTRFORALLUS,PCVisible)
>values
>(:PCID ,:PCPAID ,:PCMPID ,:PCSPID ,:PCGEID ,:PCPUID ,:PCUNID1
>,:PCUNID2 ,
>:PCRTID ,:PCCCID ,:PCMNID1 ,:PCMNID2 ,:PCPGID ,:PCNR ,:PCNAME1
>,:PCUPC ,:PCAVAILABILITY ,:PCDELIVERYQUANTITY ,
>:PCPACKETQUANTITY ,:PCCOPYPROTECTION ,
>(select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCTRANSFERPRICE
>,NULL,NULL,NULL,NULL)),
>(select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCNETPRICE
>,NULL,NULL,NULL,NULL)),
>(select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCLISTPRICE
>,NULL,NULL,NULL,NULL)),
>(select RESULT1 from P_CALCULATE_CC_TO_EURO(:PCRRP ,NULL,NULL,NULL,NULL)),
>:PCTRANSFERPRICE_CC ,:PCNETPRICE_CC ,:PCLISTPRICE_CC ,:PCRRP_CC ,
>:PCDAYONE ,:PCLIFETIME ,:PCTARGETRELEASEDATE ,
>:PCACTUALRELEASEDATE ,:PCDELIVERYTIME ,:PCBUNDLE ,:PCDYNAMICFORECAST
> ,:PCFORECAST1 ,:PCFORECAST2 ,
>:PCFORECAST3 ,:PCFORECAST4 ,:PCFORECAST5 ,:PCFORECAST6 ,:PCFORECAST7
> ,:PCFORECAST8 ,:PCFORECAST9 ,
>:PCFORECAST10 ,:PCFORECAST11 ,:PCFORECAST12 ,:PCCOMMISSION
>,:PCCOMMISSIONYEAR ,
>:PCAMNESTY ,
>:PCAMNESTYYEAR ,:PCPRICEGROUP ,:PCUKID ,:PCCOMMISSION_BUNDLE ,
>:PCCOMMISSION_PERFORMANCE1 ,:PCCOMMISSION_PERFORMANCE2 ,
>:PCCOMMISSION_PERFORMANCE3 ,:PCCOMMISSION_FACTOR1
>,:PCCOMMISSION_FACTOR2 ,
>:PCCOMMISSION_FACTOR3 ,:PCACTIVE ,:PCONEFORECAST
>,:PCSTRATEGYBONUSQUANTITY ,
>:PCSB_ONLY_RELEASEMONTH ,:PCSB_FROM_YEAR ,:PCSB_UNTIL_YEAR ,
>:PCSB_FROM_MNID ,:PCSB_UNTIL_MNID ,:PCMINSTOCKQUANTITY
>,:PCMINORDERQUANTITY ,
>:PCIGNOREATFORECASTSPLITBUNDLES ,:PCCANCELED ,:PCPOID400 ,:PCPOID500
> ,:PCPOID600 ,
>:PCCommissionUseWidthDistr ,:PCCommissionMinWidthDistr
>,:PCCommissionMinSales ,
>:PCCOMMISSIONWIDTHDISTRFORALLUS ,:PCVisible )
>
>Any ideas, what can cause the error?
parameters lately, than they did before?
The total length of the statement is not the same as the total length
of your statement as you show it here (nor, indeed, as it is when it
passes through the API at prepare time, where your Delphi-style named
and colon-prefixed placeholders are replaced by questionmarks).
Figure out the potential "blowout length" of an instance of your
statement (in bytes) when you have actual VALUES assigned to those
placeholders, not forgetting to count the single-quote delimiters for
the strings....
./heLen