Найдено 200 результатов

Akella
Чт 12 апр 2012 11:03
Форум: Universal Data Access Components
Тема: Динамическое построение WHERE-части запроса
Ответы: 5
Просмотры: 4117

спасибо, это, наверное, то что нужно :!:
Akella
Чт 12 апр 2012 11:03
Форум: Universal Data Access Components
Тема: SQL-Generator
Ответы: 3
Просмотры: 2310

Так у меня именно 4.1.6
Akella
Ср 11 апр 2012 22:00
Форум: Universal Data Access Components
Тема: FieldByName -> FBN
Ответы: 4
Просмотры: 3276

FieldByName -> FBN

Есть предложение добавить новое свойство с именем FBN. Т.е. чтобы параллельно с FieldByName можно было бы использовать FBN

Пример

Код: Выделить всё

UniQuery1.FBN('user_name').AsString := 'Вася Пупкин';
это сократит код
Akella
Ср 11 апр 2012 21:54
Форум: Universal Data Access Components
Тема: Динамическое построение WHERE-части запроса
Ответы: 5
Просмотры: 4117

Динамическое построение WHERE-части запроса

Приветствую.
Я почитал в справке про макросы, но это немного не то, как я понял.

Хочется чего-то светлого, большого такого, с помощью чего можно строить часть запроса (where) динамически (включать/отключать/добавлять/удалять секции), не заботясь о том, нужно ли добавлять/удалять само слово where, есть ли уже та или иная секция в where или нету. Может это уже реализовано, но я об этом не знаю?

Я работаю с fibplus компонентами и там есть такое понятие как conditions.

Вот пример моего кода с использованием conditions:

Код: Выделить всё

  with dm.tAds do
  begin
    close;
    Conditions.CancelApply;
    Conditions.Clear;

    Conditions.AddCondition('dt_start', sDtFilertFieldName + ' >= :date_start', (not VarIsNull(dtStart.EditValue)));
    Conditions.AddCondition('dt_end', sDtFilertFieldName + '  0);

    Conditions.Apply;

    if ParamExist('date_start', iParam) then
      ParamByName('date_start').AsDateTime := dtStart.EditValue;

    if ParamExist('date_end', iParam) then
      ParamByName('date_end').AsDateTime := dtEnd.EditValue;

    if ParamExist('AD_NUM', iParam) then
      ParamByName('AD_NUM').AsInteger := edNumAd.EditValue;

    open;
end;// with

...
как видите, я нигде не проверяю есть ли уже в запросе where или нету

есть такой функционал у TUniQuery?

спасибо
Akella
Ср 11 апр 2012 20:35
Форум: Universal Data Access Components
Тема: SQL-Generator
Ответы: 3
Просмотры: 2310

SQL-Generator

2 вопроса по SQL генератору.

1) Генератор создал Update-запрос:

Код: Выделить всё

UPDATE vid
SET
  id = :id, name = :name, deleted = :deleted
WHERE
  id = :Old_id
Разве не вот такой вот должен быть запрос?

Код: Выделить всё

UPDATE vid
SET
  name = :name, deleted = :deleted
WHERE
  id = :Old_id

********************************

2) Генератор создал refresh запрос

Код: Выделить всё

SELECT id, name, deleted FROM vid
WHERE
  id = :id
Мне кажется, что запрос должен быть с приставкой Old_

Код: Выделить всё

SELECT id, name, deleted FROM vid
WHERE
  id = :Old_id
Кто прав, я или генератор?