Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2015, 14:19   #1
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
Вопрос Парсинг SQl запроса

Добрый день . Есть запрос
Код:
EXECUTE msdb.dbo.sp_help_alert @order_by = N'event_id DESC', @legacy_format = 1
Надо выдернуть параметры и их значения. т.е например legacy_format и его значение 1.
интенсивно гуглю прежде чем задать вопрос
Gregor вне форума Ответить с цитированием
Старый 24.06.2015, 14:59   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

так тут четкие метки прослеживаются
pos, posex, copy вам в руки
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 25.06.2015, 22:28   #3
SQLPowerUser
Форумчанин
 
Аватар для SQLPowerUser
 
Регистрация: 19.01.2015
Сообщений: 158
Смех Как вариант...

Можно через TStringList
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, p: integer;
  s: string;
  lst: TStringList;
begin
  s := 'EXECUTE msdb.dbo.sp_help_alert @f   =   N''field2 asc'',   @idx   =  2,   @someParam  =  22';

  lst := TStringList.Create;
  try
    lst.Delimiter := ',';
    lst.QuoteChar := #39;
    p := Pos('@', s);
    if p < 1 then exit;

    s := Copy(s,p,length(s));
    s := StringReplace(s, 'N''', #39, [rfReplaceAll]);
    lst.DelimitedText := s;

    for i := 0 to lst.Count - 1 do
    begin
      s := lst[i];
      if (i mod 3 = 0) then
      begin
        StringGrid1.RowCount := StringGrid1.RowCount + 1;
        StringGrid1.Cells[0,StringGrid1.RowCount-1] := Copy(s,2,length(s));
      end;
      if (i mod 3 = 2) then StringGrid1.Cells[1,StringGrid1.RowCount-1] := s;
    end;

    StringGrid1.Cells[0,0] := 'Параметр'; StringGrid1.Cells[1,0] := 'Значение';
    StringGrid1.FixedRows := 1;
  finally
    lst.Free;
  end;
end;
SQLPowerUser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг после POST запроса neong Общие вопросы Delphi 9 08.11.2013 01:03
парсинг HTTP запроса (дэлфи 2009) dyonysos Общие вопросы Delphi 2 30.09.2011 22:41
Поиск ошибки в Python-коде [парсинг запроса и генерация ответа WebSocket] russian-stalker Python 0 03.06.2011 12:34
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15