firebird_parameters::firebird_parameters(const shared_statement_ptr &stmt_in)
    : stmt(stmt_in)
{
    isqlda = dynamic_cast<firebird_statement *>(stmt_in.get())->access_sqlda_in();

    guarded_execute([this](ISC_STATUS *status){isc_dsql_describe_bind(status, get_statement_handle(), xsqlda::version, static_cast<XSQLDA*>(*isqlda));}, true);

    if (isqlda->resize_to_fit())
        guarded_execute([this](ISC_STATUS *status){isc_dsql_describe_bind(status, get_statement_handle(), xsqlda::version, static_cast<XSQLDA*>(*isqlda));}, true);

    isqlda->allocate_vars();
}
// Called by describeInput()
void
IB_Statement::dsqlDescribeBind ()
{
  if (isc_dsql_describe_bind (status_->vector(),
			      &stmtHandle_,
// CJL-IB6 add support for SQLDialect, obsolete sqldaVersion__
				   connection_->attachmentSQLDialect_, 
//			 sqldaVersion__, 
// CJL-IB6 end
			      sqldaIn_))
    throw new IB_SQLException (IB_SQLException::engine__default_0__, status_);
}