Дата публикации: 04.06.2012

IBProvider 3.11.1. Внутренние изменения

Исправление ошибки.

Устранено переполнение стека при обработке запросов с очень большой длиной.

Тестовый пример:

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

Дата публикации: 04.06.2012. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.