понедельник, 31 октября 2011 г.

О MSEIDE. Параметры в tmsesqlscript.

Что такое вообще так называемые "параметры" с точки зрения компонент, связанных с работой с СУБД? Это переменные в SQL скрипте. Т.е. перед моментом исполнения скрипта, на место переменной в скрипте поставляется конкретное текстовое или численное значение и скрипт отправляется СУБД на исполнение.
Синтаксис параметров в скрипте такой:
:VAR_NAME
Пример использования:
SELECT PASS, MAIL FROM MEMBERS WHERE MAIL = :pEMAIL;
:pEMAIL в данном случае - параметр.
Параметры добавляются в сам компонент скрипта (во всяком случае я так делал и это работало). Как всегда способа добавления два: "run-time"и графический.


В графическом:
  • Выделяем нужный компонент скрипта;
  • В инспекторе объектов ищем свойство params.coumt и задаем нужное количество параметров;
  • Раскрываем (слева плюсик появляется), перед нами появляется список параметров, которые можно спокойно редактировать. 
Поле name - имя параметра в SQL скрипте (тот же pEMAIL), двоеточие указывать не надо. Имена параметрам принято давать заглавными буквами с префиксом "p".
Поле DataType - тип данных.
Поле Size - размер параметра (поля value).


В "run-time" на мой взгляд все гораздо проще:
var VAR:TYPE;NAME:STRING;
...
script.params[0].AsTYPE:=VAR;
script.params[0].Name:=NAME;
Например:
var email:string;
...
query.SQL.SetText:=SELECT PASS, MAIL FROM MEMBERS WHERE MAIL = :pEMAIL;
query.params[0].AsString:=EMAIL;
query.params[0].Name:='pEMAIL';

Все! MSEIDE автоматически создает поля параметров при разборе sql-оператора. К ним обращается по номеру. Номер параметра - его номер от начала скрипта. При помощи AsType мы указываем тип параметра и задаем его значение. Так же можно обращаться к параметру по его имени.
Всегда сначала идет "AsType", а затем заполняются поля параметра.
Параметры есть и в tMseSqlScript и в tMseSqlQuery и во многих других компонентах, где нужно писать SQL-скрипты. Но об этом, и в частности о query, в следующей статье.

Комментариев нет:

Отправить комментарий