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

IBProvider v3.5. Поддержка Firebird v2.5.1. Улучшена генерация SQL-запросов. Поддержка параметров в SQL-скриптах

Поддержка параметров в SQL-скриптах

В новой версии IBProvider реализована поддержка параметров в тексте команды, содержащей несколько SQL-запросов. При использовании этой возможности, необходимо учитывать существующие ограничения реализации:

  • Поддерживаются только именованные параметры
  • Пользователь должен самостоятельно установить описания параметров
dim cmd
set cmd=createobject("ADODB.Command")

cmd.NamedParameters=true

cmd.ActiveConnection=cn

rem enable interface for the RecordCount support
cmd.Properties("IRowsetScroll").value=true

cmd.CommandText = _
 "select first_name,last_name" & vbCrLf & _
 " from employee" & vbCrLf & _
 " where emp_no=:emp_no;" & vbCrLf & _
 "select p.proj_id,p.proj_name,p.proj_desc" & vbCrLf & _
 " from project p join employee_project ep on p.proj_id=ep.proj_id" & vbCrLf & _
 " where ep.emp_no=:emp_no;"

rem Pete Fisher
call cmd.Parameters.Append _
 (cmd.CreateParameter("emp_no",adVariant,adParamInput,-1,24))

dim rs
set rs=cmd.Execute()

rem output: 1
wscript.echo "rs1 size:"&rs.RecordCount

set rs=rs.NextRecordset

rem output: 2
wscript.echo "rs2 size:"&rs.RecordCount

В случае возникновения проблем рекомендуем изучить сообщения об ошибках для каждого запроса скрипта. IBProvider формирует подробное описание текста ошибки.

Автоматическая генерация SQL-запросов INSERT, DELETE, UPDATE на основе команды SELECT

Данная функциональность реализована для расширения возможностей работы с обновляемыми множествами, а так же для автоматического создания команд.

В предыдущих выпусках определение колонок первичного ключа и генерация запросов для обратной записи изменений в базу данных поддерживалась только для тривиального запроса вида «select * from MY_TABLE». В новой версии эта тема была радикально улучшена. Теперь провайдер предоставляет расширенную поддержку для SQL-запросов:

  • С перечислением колонок: «select col1, col2 t_col2, col3 as t_col3, t.col4, t.col5 t_col5, t.col6 as t_col6 from my_table as t». Имя колонки можно заключать в круглые скобки.
  • C выборкой всех колонок таблицы : «select t.* from my_table t»
  • С секцией WHERE: «select <columns> from my_table t where <conditions>»
  • С секциями PLAN, ORDER BY, FOR UPDATE, ROWS

Существующие ограничения:

  • Запрос должен возвращать данные только из одной таблицы
  • Список возвращаемых колонок множества может содержать только базовые колонки таблицы и не должен содержать повторения.
  • Не поддерживается объединение запросов: «select t1.* from my_table t1 union select t2.* from my_table t2». Однако UNION можно использовать в подзапросе секции WHERE.
  • Результирующее множество должно содержать ВСЕ колонки первичного ключа таблицы
dim cmd
set cmd=createobject("ADODB.Command")

cmd.NamedParameters=true

cmd.ActiveConnection=cn

rem enable interface for the updatable recordset
cmd.Properties("IRowsetUpdate").value=true

cmd.CommandText = _
 "select emp_no,first_name,last_name from employee where emp_no=:x"

rem Pete Fisher
cmd("x")=24

dim rs
set rs=cmd.Execute()

wscript.echo "FIRST_NAME :"&rs("first_name").value
wscript.echo "LAST_NAME  :"&rs("last_name").value

rs("first_name").value =ucase(rs("first_name").value)
rs("last_name").value  =ucase(rs("last_name").value)

call rs.UpdateBatch()

set rs=nothing

rem ----
wscript. echo "-------------------- [re-execute]"

set rs=cmd.execute()

wscript.echo "FIRST_NAME :"&rs("first_name").value
wscript.echo "LAST_NAME  :"&rs("last_name").value

rem OUTPUT: FIRST_NAME :Pete
rem OUTPUT: LAST_NAME  :Fisher
rem OUTPUT: -------------------- [re-execute]
rem OUTPUT: FIRST_NAME :PETE
rem OUTPUT: LAST_NAME  :FISHER

Добавлена поддержка Firebird 2.5.1

Теперь Firebird 2.5.1 используется в качестве основного тестового сервера провайдера. И в новой версии IBProvider-а учитываются его изменения.

Новая версия IBProvider за счет пакетного выполнения SQL-запросов и автоматической генерации команд, позволяет писать еще меньше кода для работы с базой данных. Помимо этого новый IBProvider поддерживает самые последние версии баз данных InterBase XE (2010) и Firebird 2.5.1


Хотите создавать БЫСТРЫЕ и компактные 32-х и 64-х битные приложения,
используя ВОЗМОЖНОСТИ самых последних версий Firebird и InterBase?


Выбирайте IBProvider Professional ver.3.5




Помимо новейшего драйвера, вы ГАРАНТИРОВАНО получите
все последующие версии в течение года абсолютно БЕСПЛАТНО!

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