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-а учитываются его изменения.
все последующие версии в течение года абсолютно БЕСПЛАТНО!