powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQLPreview и DisableBind
2 сообщений из 2, страница 1 из 1
SQLPreview и DisableBind
    #32482099
E-doc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно наверно следовало разбить на два вопроса но у меня они в связке, поэтому спрошу так.

Если установлено DisableBind (работа через ODBC - ASA 9), то в SQLPreview вместо вопросиков (?) ставятся реальные значения для полей. С помощью функции SetSQLPreview я могу заменить сгенерированное выражение на свое собственное, например вместо простого insert выполнить, например
Код: plaintext
1.
2.
3.
4.
5.
begin 
  if not exists ... 
     insert ... 
  else 
     update ... 
end

Вопрос 1: Как получать внутри SQLPreview значения полей которые мне нужны для вставки и обновления? Первое что приходит в голову - dw.Object.colname.Primary[row] - для новых значений и dw.Object.colname.Primary.Original[row] для старых. Может можно как-то иначе?

Вопрос 2: Есть ли разница в производительности при использовании DisableBind и без него? То есть, делает ли билдер Prepare запросу один раз и только подставляет потом значения вместо переменных когда не установлен DisableBind? Есть ли еще здесь какие подводные камни, например, когда есть большие varchar поля и общая длина запроса превысит какой-нибудь неописанный лимит?
...
Рейтинг: 0 / 0
SQLPreview и DisableBind
    #32482401
Komputilisto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База данных (в моём случае Oracle и MS SQL Server) сохраняет execution plan выполненного запроса, и если тот-же запрос поступает ещё раз, то она использует сохранённый plan вместо строительства нового, что, есессно, экономит время. Если вместо знаков вопроса будут значения, то запрос не будет распознан базой как уже выполненный (только если будут те же значения параметров) - ведь сравнивается текст запроса до грамматического разбора - может, грамматический разбор и не нужен и можно воспользоваться старым (ведь именно ради этого вообще нагородили огород с вопросительными знаками). Однако разрабатывать, конечно, легче если в SQLPreview видны реальные значения, так что выход - перед коннектом определить екзешка это или PB environment и установоть соответственно DisableBind в 0 (вставлять знаки вопроса) или 1 (вставлять реальные значения).
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / SQLPreview и DisableBind
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]