К основному контенту

Firebird get words

Задался вопросом сохранения настроек через запятую в одном поле с последующим разбором этой строки в самом Firebird'е.
Вот что получилось. Меня устраивает. Может кому поможет.

create or alter procedure GET_WORDS (
    INSTR varchar(30000),
    DELIMITER varchar(200) = ' ')
returns (
    NUMBER integer,
    WORD varchar(30000))
as
declare variable I integer;
declare variable J integer;
begin
  NUMBER = 1;
  I = 1;
  J = position(:DELIMITER, INSTR, I);
  if (J > I) then
  begin
    WORD = substring(INSTR from I for J - I);
    while (WORD is not null) do
    begin
      if (char_length(trim(WORD)) > 0) then
      begin
        WORD = trim(WORD);
        suspend;
        NUMBER = NUMBER + 1;
      end
      I = J + char_length(DELIMITER);
      J = position(:DELIMITER, INSTR, I);
      if (J = 0) then
      begin
        J = char_length(INSTR);
        if (I < J) then
          WORD = substring(INSTR from I for J);
        else
          WORD = null;
      end
      else
        WORD = substring(INSTR from I for J - I);
    end
  end
end

Комментарии

Популярные сообщения из этого блога

Библиотека Firebird для моих программ

Часто ставлю свои программы, используемые Firebird, без установки официального клиента. Для нормальной работы программы нужна библиотека fbclient.dll, лучше взятая с сервера, где лежит база Для Windows XP ещё надо Microsoft C/C ++ Runtime Libraries Microsoft.VC80.CRT.manifest msvcp80.dll msvcr80.dll Всё это надо поместить в c:\Windows\System32 или прямо в папку с программой.

Парсинг URL'а средствами Indy

Очень просто uses IdURI; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var URI: TIdURI; begin URI := TIdURI.Create('http://login:password@somehost.somedomain.com:8080/some_path/something_else.html?param1=val&param2=val'); try Memo1.lines.add(URI.Protocol); Memo1.lines.add(URI.Username); Memo1.lines.add(URI.Password); Memo1.lines.add(URI.Host); Memo1.lines.add(URI.Port); Memo1.lines.add(URI.Path); Memo1.lines.add(URI.Document); Memo1.lines.add(URI.Params); finally URI.Free; end; end;

Почему от кофе иногда может хотеться спать?

Кофе принято считать бодрящим напитком, который дает заряд бодрости и энергии, а также поднимает настроение. Связано это с большим содержанием кофеина в кофейных зернах. Поэтому для многих людей кофе является любимый напитком для утреннего пробуждения. Однако в некоторых случаях вместо ожидаемого прилива сил после выпитой его чашки люди чувствуют сонливость и упадок сил, что вызывает желание прилечь и вздремнуть. Причина такому обратному эффекту заключается вовсе не в какой-то исключительности организма. В большинстве случаев сонливость связана с особенностями воздействия самого кофеина. Кроме того, иногда желание поспать после кофе связан с проблемами со здоровьем. Почему после выпитого кофе мы обычно чувствуем прилив бодрости? Причина заключается в выбросе нескольких гормонов, одним из которых является кортизола. Его еще называют гормоном реакции “бей или беги”. То есть он, фактически, вызывает стресс и приводит организм в состоянии готовности к действию. К слову...