powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как скопировать текст скрипта firebird в delphi
27 сообщений из 27, показаны все 2 страниц
Как скопировать текст скрипта firebird в delphi
    #40026703
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть длиннющая ХП в firebird и мне ее текст нужно скопировать из IBExpert в delphi.
Руками проставлять для каждой строчки кавычки и перенос строки не очень. Есть какое-то решение?

Например в PLSQL Developer есть special copy и несколько ЯП. а в IBExpert есть похожее?
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026713
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
у меня есть длиннющая ХП в firebird и мне ее текст нужно скопировать из IBExpert в delphi.
Руками проставлять для каждой строчки кавычки и перенос строки не очень. Есть какое-то решение?


В дельфи есть Ctrl-Shift-R, Ctrl-Shift-P. Для одной строки сделать вручную с переходом на следующую строчку, остальные просто спамом Ctrl-Shift-P.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026719
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче, в notepad++ сделал макрос
1. замена ' на две ''
2. замена \n на \n'
3. замена \r на '+#13#10+\r


пока лучше не нашел выхода
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026725
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы подключил файл как есть ресурсом RCDATA. Потому что длинные литералы сложны в поддержке.
Как вариант, можно в TQuery засунуть. Где-то мелькал еще компонент для хранения строк по такому же принципу, но без db-aware привязки, но у тебя все равно db приложение, поэтому ничего лишнего не добавится
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026727
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal, я бы тоже, но это не моя блаж
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026748
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cptngrb
у меня есть длиннющая ХП в firebird и мне ее текст нужно скопировать из IBExpert в delphi.
Руками проставлять для каждой строчки кавычки и перенос строки не очень. Есть какое-то решение?

Например в PLSQL Developer есть special copy и несколько ЯП. а в IBExpert есть похожее?

Напиши эксперт для IDE, полторы строчки.
Или поищи здесь: ~раз в год кто-то задается тем же вопросом и либо пишет, либо использует готовый.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026765
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb,

ApexSQLRefactor, раньше был бесплатным.
Правда он для SMSS
Получается такой результат:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
  sql: string;
begin
  sql := 'SELECT ''Hello Wrold!''' + #10
       + 'UNION ALL' + #10
       + 'SELECT ''Hello Again!''';
end;
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026800
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для таких целей использую функцию:


Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
procedure TSQLtoPascalForm.btnConvertClick(Sender: TObject);
var
  L1: TStringList;
  I: Integer;
  MaxLen: Integer;
  fc, FirstChar: Integer;
  s: string;

  function GetFirstCharPos(s: string): Integer;
  var
    I: Integer;
  begin
    Result := 0;
    for I := 1 to Length(s) do
      if (s[I] <> ' ') then
      begin
        Result := I;
        Exit;
      end;

  end;
begin
  MaxLen := 0;
  FirstChar := MaxInt;
  L1 := TStringList.Create;
  try
    L1.Text := memSQL.Text;

    // Удаляем начальные пробелы
    for I := 0 to L1.Count - 1 do
    begin
      if Trim(L1[I]) = '' then
        L1[I] := ''
      else
      begin
        fc := GetFirstCharPos(L1[I]);
        if fc > 0 then
          if fc < FirstChar then
            FirstChar := fc;
      end;
    end;

    if (FirstChar > 1) and (FirstChar < 100) then
    begin
      for I := 0 to L1.Count - 1 do
      begin
        s := L1[I];
        if s <> '' then
        begin
          if Length(s) > FirstChar then
          begin
            Delete(s, 1, FirstChar - 1);
            L1[I] := s;
          end;
        end;
      end;
    end;

    for I := 0 to L1.Count - 1 do
    begin
      s := L1[I];
      if s <> '' then
      begin
        if (Pos('--', Trim(s)) = 1) or (Pos('/*', Trim(s)) = 1) then // Отдельно обрабатываются комментарии
        begin
          fc := GetFirstCharPos(s);
          if fc >= 3 then
          begin
            s[1] := '/';
            s[2] := '/';
          end else
            s := '// ' + s;
          L1[I] := ' ' + s;
        end
        else
        begin
          L1[I] := QuotedStr(s);
          if Length(L1[I]) > MaxLen then
            MaxLen := Length(L1[I]);
        end;
      end;
    end;

    Inc(MaxLen);

    // Добавием конечные пробелы и вставляем sLineBreak
    for I := 0 to L1.Count - 1 do
    begin
      s := L1[I];
      if s <> '' then
      begin
        if I < L1.Count - 1 then
        begin
          if (Pos('//', Trim(s)) <> 1) then
            L1[I] := StrRPad(s, MaxLen) + '+sLineBreak+';
        end else
          L1[I] := L1[I] + ';';
      end;
    end;

    memPascal.Lines.Assign(L1);

  finally
    L1.Free;
  end;
end;




Достаточно симпатичный код получается на выходе.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026807
maratvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb,

в самом эксперте был такой плагин DelphiCopyPaste.
У меня что-то завалялось, не знаю, оригинальный или правленный. В любом случае исходники есть, можете сделать под себя.

Устанавливается в папку ibexpert/Plugins.
В редакторе запросов в popupmenu появится пункт Delphi Copy/Paste
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026812
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrb
Есть какое-то решение?

http://docwiki.embarcadero.com/RADStudio/Sydney/en/MultiPaste
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026827
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем спасибо за ответы
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026865
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Длиннющие процедуры как раз пишут в хп в бд
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026867
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.12.2020 10:01, cptngrb пишет:
> у меня есть длиннющая ХП в firebird и мне ее текст нужно скопировать из IBExpert в delphi.

нахрена это хранить в коде?
почему не в ресурсах?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026885
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий
11.12.2020 10:01, cptngrb пишет:
> у меня есть длиннющая ХП в firebird и мне ее текст нужно скопировать из IBExpert в delphi.

нахрена это хранить в коде?
почему не в ресурсах?
в бд ещё лучше
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026888
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.12.2020 15:39, andreymx пишет:
>
> в бд ещё лучше
>

а если он СОЗДАЁТ этот объект в БД?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026896
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот в Delphi были бы raw - строки 21995460 - этой хуёни бы не обсуждали.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026898
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийа если он СОЗДАЁТ этот объект в БД?
пусть тогда читает текст процедуры из скрипта или просто текстового файла.
Сопровождение кода процедуры, обрамленной кавычками в коде - это же кабздец.
А её при изменении всё равно надо проверять целиком, хоть в IBE, хоть в ISQL.

Сначала он затрахается переносить текст процедуры в код Дельфи, а потом будет трахаться при переносе этой процедуры в текстовый файл.
При этом, сюрприз, свойство SQL практически у всех компонент это TStrings, у которого, в свою очередь, есть методы LoadFromFile/SaveToFile.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026909
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv,

не совсем понятно, для чего текст ХП в "компоненты" пхать.

Для создании/обновлении структуры FB есть замечательная IBEScript.dll.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026914
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

есть такой бзик у писателей программ, что "базу данных надо создавать из приложения". Нафиг это надо, почему нельзя болванку БД таскать вместе с exe - науке это неизвестно. А геморрой он как энтропия, сиречь бесполезность рассеивания энергии и увеличения хаоса.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026915
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
А вот в Delphi были бы raw - строки 21995460 - этой хуёни бы не обсуждали.

Вот как раз эту, весьма специфическую, фуету и не нужно тащить в язык общего назначения. Сделали вам мультипаст - пользуйтесь. Не нравится, сделайте себе визуальный стринглист и храните свои текстовые портянки там.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026920
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kazantsev Alexey
ъъъъъ
А вот в Delphi были бы raw - строки 21995460 - этой хуёни бы не обсуждали.

Вот как раз эту, весьма специфическую, фуету и не нужно тащить в язык общего назначения. Сделали вам мультипаст - пользуйтесь. Не нравится, сделайте себе визуальный стринглист и храните свои текстовые портянки там.


Не нравится - сделай себе визуальный стринглист, нравится - используй "специфическую фуету".
В C++ (например) можно и так, и сяк.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026926
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
11.12.2020 16:15, Kazantsev Alexey пишет:
> сделайте себе визуальный стринглист и храните свои текстовые портянки там.

оно всё одно будет в ресурсе лежать.
так нахрена ещё и посредник в лице визуального компонента,
который для решения основной задачи не используется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026928
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
нравится - используй "специфическую фуету"

Проблема в том, что потом этот код кому то поддерживать придётся...
ъъъъъ
В C++ (например) можно и так, и сяк.

У этих извращенцев ещё и скобки вместо begin/end, тоже мне пример для подражания...
Мимопроходящий
так нахрена ещё и посредник в лице визуального компонента

Удобнее искать, открывать и редактировать чем файл в ресурсах.
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026939
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вас надо скормить нашим ИБшникам
Они вам расскажут про дбо-права, как правильно Родину любить и нужны ли разрабы на проде даже для чтения
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026972
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пипл, ТС же сказал, что осознает кривость, но это не его решение. Чего копья ломать.
Если нужно на постоянку, то в GExperts / cnPack должны быть такие средства

Кстати, можно еще один вариант: в нужном юните сделать {$I 'query.inc'} и добавить скрипт/программку в Build events > Pre-build, которая будет из sql файла перегонять в query.inc. Или, в зависимости от требований, вставлять непосредственно в нужный юнит, главная идея - в Pre-build команде
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026985
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
kdv
ъъъъъ,

есть такой бзик у писателей программ, что "базу данных надо создавать из приложения". Нафиг это надо, почему нельзя болванку БД таскать вместе с exe - науке это неизвестно. А геморрой он как энтропия, сиречь бесполезность рассеивания энергии и увеличения хаоса.


прямо даже интересно, как в случае Oracle ты будешь таскать "болванку БД"
...
Рейтинг: 0 / 0
Как скопировать текст скрипта firebird в delphi
    #40026993
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Мимопроходящийа если он СОЗДАЁТ этот объект в БД?

пусть тогда читает текст процедуры из скрипта или просто текстового файла.
Сопровождение кода процедуры, обрамленной кавычками в коде - это же кабздец.
А её при изменении всё равно надо проверять целиком, хоть в IBE, хоть в ISQL.

Сначала он затрахается переносить текст процедуры в код Дельфи, а потом будет трахаться при переносе этой процедуры в текстовый файл.
При этом, сюрприз, свойство SQL практически у всех компонент это TStrings, у которого, в свою очередь, есть методы LoadFromFile/SaveToFile.на позапрошлой неделе переводили стартим-2006 на Оракле-11
Валил, гад, ошибку

Нашел ошибку в пакете, перекомпилировал. Ошибка та же. И так пять раз, сцуко
Порылся на сервере, нашёл папку с скл-текстами всех процедур для трех видов субд
Поправил исходники пакета, две недели работает стабильно, тестируем

Хотя везде пишут, что Оракле10 это предел
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как скопировать текст скрипта firebird в delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]