Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Интерпретация строки SQL в скриптах SimpleScada  (Прочитано 1990 раз)

JibberHorse

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Здравствуйте!
К проекту привязана база данных MySQL. Данные из таблицы messages_data считываются в таблицу на экране проекта.
Строка запроса в MySQL работает (скрин во вложении), а выполнение скрипта в SimpleScada "ругается" на знак процентов (%).
Как правильно нужно написать выделенный кусок?:
var
  strQuery: string;
begin
  strQuery := 'SELECT Timestamp, Text FROM `messages_data` WHERE `Text` LIKE %admin% ORDER BY Timestamp DESC;';
  JS_Table.RunSQL(strQuery, tsAll);
end.    

pan2000

  • Постоялец
  • ***
  • Сообщений: 225
    • Просмотр профиля
Re: Интерпретация строки SQL в скриптах SimpleScada
« Ответ #1 : 04 Сентября 2019, 10:25:14 »
Здравствуйте.

Указать текстовую константу внутри строки заключением в пары одиночных кавычек:

strQuery := 'SELECT Timestamp, Text FROM `messages_data` WHERE `Text` LIKE ''%admin%'' ORDER BY Timestamp DESC;';

JibberHorse

  • Новичок
  • *
  • Сообщений: 22
    • Просмотр профиля
Re: Интерпретация строки SQL в скриптах SimpleScada
« Ответ #2 : 04 Сентября 2019, 10:51:54 »
Спасибо! сработало.
А то какие только варианты символов уже не перебирали...

Dmitry_Impuls

  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Re: Интерпретация строки SQL в скриптах SimpleScada
« Ответ #3 : 06 Сентября 2019, 11:02:57 »
Указать текстовую константу внутри строки заключением в пары одиночных кавычек:
strQuery := 'SELECT Timestamp, Text FROM `messages_data` WHERE `Text` LIKE ''%admin%'' ORDER BY Timestamp DESC;';
Более общий подход использовать QuotedStr.
Код: (delphi)
strQuery := 'SELECT Timestamp, Text FROM `messages_data` WHERE `Text` LIKE ' + QuotedStr('%admin%') + ' ORDER BY Timestamp DESC;';
P.S. Сам пользуюсь удвоением кавычек...
« Изменён: 06 Сентября 2019, 11:54:56 от Simple-Scada »