Publish date: 2012-06-04

IBProvider 3.11.1. Internal changes

Bug fix.

Fix a stack overflow in processing of query with very long length.

Test example:

using System;
using System.Data;
using System.Data.OleDb;

class Program
{
 static void Main(string[] args)
 {
  const string c_cn_str="provider=LCPI.IBProvider.3;"
                        +"location=home2:d:\\database\\employee.fdb;"
                        +"user id=SYSDBA;"
                        +"password=masterkey;"
                        +"auto_commit=true";
  try
  {
   var cn=new OleDbConnection(c_cn_str);

   cn.Open();

   var sb=new System.Text.StringBuilder();

   sb.Append("select EMP_NO");

   for(int n=0;n!=((512*1024)-1);++n)
    sb.Append(",EMP_NO");

   sb.Append(" from EMPLOYEE");

   var cmd=new OleDbCommand(sb.ToString(),cn);

   //For IBProvider before v3.11.1
   // 1. Stack overflow in C++ destructor
   // 2. Abort of program execution
   //For IBProvider v3.11.1 and next
   // 1. Exception
   var reader=cmd.ExecuteReader(CommandBehavior.SingleResult);
  }
  catch(Exception exc)
  {
   Console.WriteLine("ERROR: {0}",exc.Message);
  }//catch
 }//Main
};//class Program

Publish date: 2012-06-04. Copyright: IBProvider. This material may be reproduced on other web sites, without written permission but link https://www.ibprovider.com/eng required.