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

Akella
Чт 12 апр 2012 14:16
Форум: Universal Data Access Components
Тема: Юникод при передаче текстового параметра
Ответы: 4
Просмотры: 4542

Юникод при передаче текстового параметра

Проблема с юникодом при передаче текстового параметра.

При открытии TUniQuery:
Project raised exception class EMySqlException with message '
#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'login = 'Администратор'' at line 7'.

потом появляется такое исключение 2 раза подряд.
Project rp.exe raised exception class EMyError with message '
#42000You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'login = 'Администратор'' at line 7'.

в ConnectionOptions:
charset = utf8
UseUnicode = True

вот запрос

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

select id, login, fio, phone1, phone2, is_expert_agent from users

where
  is_deleted = 0 and
  is_blocked = 0 and
  password = :pass
  login = :login

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

    qCheckPass.ParamByName('login').AsString := edName.Text;
    qCheckPass.ParamByName('pass').AsString  := edPassword.Text;
    qCheckPass.Open;
Данные в гриде отображаются нормально, если сделать выборку.
Что не так?

UniDAC 4.1.6
Delphi XE2
Akella
Чт 12 апр 2012 11:05
Форум: Universal Data Access Components
Тема: FieldByName -> FBN
Ответы: 4
Просмотры: 4821

Но тогда я не смогу использовать компонент в дизайне?
Мне придётся создавать, уничтожать и настраивать его в коде? Это не очень удобно.
Akella
Чт 12 апр 2012 11:03
Форум: Universal Data Access Components
Тема: Динамическое построение WHERE-части запроса
Ответы: 5
Просмотры: 5978

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

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

FieldByName -> FBN

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

Пример

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

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

Динамическое построение 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
Просмотры: 3618

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
Кто прав, я или генератор?