powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка текста с апострофом
80 сообщений из 80, показаны все 4 страниц
Вставка текста с апострофом
    #37315525
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как выполнить такую вставку
INSERT INTO NAMEU (ID,NAMEP) values (8002982,'Общество с ограниченной ответственностью "Город' Ок"')
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315538
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если через ISQL - удвоить апостроф. Через DSQL - использовать параметры.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315552
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
программа на Delphi написана, компоненты IBX (TIBQuery).
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315567
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит - параметры!!!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315605
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для особо не желающих пользоваться параметрами можно применить символ ` вместо кавычки, тот который на кнопке с "ё". ;)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315625
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyДля особо не желающих пользоваться параметрами можно применить символ ` вместо кавычки, тот который на кнопке с "ё". ;)
Работает :)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315778
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Двойная кавычка и в дельфях работает, есичо. Но лучше параметры.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37315999
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSeryДвойная кавычка и в дельфях работает, есичо. Но лучше параметры.
'Город+"'"+Ок'
Вот так что ли?

Параметры в смысле INSERT INTO NAMEU (ID,NAMEP) values (8002982, :NAMEP) ?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37316370
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grav'Город+"'"+Ок'
Вот так что ли?'Город''Ок'.
(Два апострофа, не двойная кавычка).

gravПараметры в смысле INSERT INTO NAMEU (ID,NAMEP) values (8002982, :NAMEP) ?Да.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37323004
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WildSery,

не помогло использование параметров :(
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37323016
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gravWildSery,

не помогло использование параметров :( Точно-точно?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #37323038
grav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_Pisarevsky,

не точно, рано завопил :) извиняюсь
аналогичная ошибка в другой таблице, поправил
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вставка текста с апострофом
    #39402169
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не создавать новую тему, пишу сюда.
Столкнулся с тем, что в IBExpert команда insert выполняется, а в отладчике в делфи вижу ошибку.

Код: sql
1.
2.
3.
4.
5.
6.
7.
insert into sporg (id, CENA_SER3, KS, NDS_RS, NUMORG, FIO, NAMPOL, CENA_SER1, CENA_SER2, 
CENA_ZOL, NAC_OTHER, DOGOVOR_M, KONTAKT, MARK, DOGOVOR, OKPO, TIP, CODORG, PRZ, PINDEX, 
NAMUSER, DIRECTOR, TELEFON, BUX, DOM, POST_ADDR, BANK, RS, NAMORG, UL, EMAIL, GOROD, MFO, 
NSVID, NALOGN, DATCREATE, DATMOD) 
values (554, 0, '', 0, 618, '', '', 0, 0, 0, 0, '', '', 0, '', '', '', 554, 0, '', 'Дима 10.02.2017 10:43:12', '', '', '', '', '',
'Доп.офис `Лесной `ПАО `Банк `Санкт-Петербург`', '', 'Маркет', '', '', '', '', '', '', '2017-02-02 17:32:30.0000',
'2017-02-10 10:44:30.0000')



Опытным путем выяснил, что дело в том, что если в текстовом поле встречается НЕЧЕТНОЕ количество апострофов:

Доп.офис `Лесной `ПАО `Банк `Санкт-Петербург` - 5 штук

то выскакивает ошибка "XSQLDA index out of range", а если четное количество апострофов:

Доп.офис `Лесной ПАО `Банк `Санкт-Петербург` - 4 штуки,

то все работает без ошибок.
При этом, IBExpert'у все равно, сколько там у меня апострофов - все работает.
Что делать?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402177
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

т.е параметры использовать не хотим принципиально?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402221
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там все сложно с параметрами. Дело в том, что это скрипт генерит другой скрипт для запуска его в самописном компиляторе в программе для экспорта/импорта данных между серверами
И в этом сгенеренном скрипте INSERT уже с реальными значениями полей для вставки новой записи.
А использование параметров для SQL в скрипте не предусмотрено
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402246
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз не желаешь "традиционной любви" с параметрами, занимайся "альтернативной" с экранированием кавычек.

насколько я понимаю проблема распарсить скрипт?, чтобы потом скормить его серверу, тогда как у эксперта с этим же скриптом проблем нет?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402248
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Timujin!
You wrote on 10 февраля 2017 г. 12:50:12:

Timujin> При этом, IBExpert'у все равно, сколько там у меня апострофов - все работает.
> Что делать?использовать другие компоненты доступа вместо тех которые сейчас.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402262
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

Да, все верно. Сейчас этим и занимаюсь. Меняю апострофы/одинарные кавычки/двойные кавычки на сдвоенные одинарные кавычки. Вроде должно заработать. Отпишусь, вдруг поможет кому ;)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402268
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SysUtils.QuotedStr()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402270
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Спасибо. Я в курсе. Ну тут немного по-другому. В скипте меняю кавычки, не в делфи
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402290
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Timujin!
You wrote on 10 февраля 2017 г. 13:54:38:

Timujin> В скипте меняю кавычкичем?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402292
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

встроенной функцией скрипта
А она при выполнении скрипта вызывает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function RePlace(S:string;F:string;R:string): string;
var
  Tmp : integer;
begin
  Tmp := Pos(F,S);
  while Tmp > 0 do begin
    S := copy(S,1,Tmp-1)+R+copy(S,Tmp+Length(F),Length(S));
    Tmp := Pos(F, S);
  end;
  Result := S;
end;
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402316
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем, все решилось заменой в текстовых полях кавычек на сдвоенные кавычки.
Но прикольно, получается, если в тексте присутствует НЕЧЕТНОЕ количество кавычек или апострофов, то пи попытке вставить это поле командой INSERT выскакивает ошибка XSQLDA index out of range
Баг?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402328
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

нет
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402336
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

А как могут влиять апострофы внутри текстового поля? А если там символы & - это тоже может как-то влиять на восприятие текста не как текста?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402345
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

На Делфи написан движок для выполнения скриптов. Это не камильфо?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402455
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinНе сам, конечно, а работая на IT фирме.
Если ты до сих пор не знал фишку с нечётным числом апострофов, то твоё увольнение было
благом для этой фирмы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402458
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Просто я уже давно отошел от программирования, и никто меня не увольнял )))
На своих предприятиях веду учет в своих же программах, поэтому иногда приходится что-то дописывать.
И если эта "фишка" с нечетным числом апострофов всем известна, то почему это не баг, а "фишка"?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402462
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinИ если эта "фишка" с нечетным числом апострофов всем известна, то почему это не баг, а
"фишка"?

Потому что это основы любого языка программирования, изложенные в любом букваре по
этому языку: что делать с литералами, включающими в себя терминатор этих самых литералов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402463
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Вы видимо невнимательно читали мое первое сообщение. Апостроф там не терминатор, а часть текста внутри кавычек. Как часть текста (если это не кавычка) может влиять на принятие или непринятие этого текста для записи его в текстовое поле?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402466
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinАпостроф там не терминатор, а часть текста внутри кавычек.
Каких кавычек? У тебя там везде апострофы.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402467
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

insert into sporg (id, CENA_SER3, KS, NDS_RS, NUMORG, FIO, NAMPOL, CENA_SER1, CENA_SER2,
CENA_ZOL, NAC_OTHER, DOGOVOR_M, KONTAKT, MARK, DOGOVOR, OKPO, TIP, CODORG, PRZ, PINDEX,
NAMUSER, DIRECTOR, TELEFON, BUX, DOM, POST_ADDR, BANK, RS, NAMORG, UL, EMAIL, GOROD, MFO,
NSVID, NALOGN, DATCREATE, DATMOD)
values (554, 0, '', 0, 618, '', '', 0, 0, 0, 0, '', '', 0, '', '', '', 554, 0, '', 'Дима 10.02.2017 10:43:12', '', '', '', '', '',
'Доп.офис `Лесной `ПАО `Банк `Санкт-Петербург`', '', 'Маркет', '', '', '', '', '', '', '2017-02-02 17:32:30.0000',
'2017-02-10 10:44:30.0000')
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402468
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Причем, если вот так:

insert into sporg (id, CENA_SER3, KS, NDS_RS, NUMORG, FIO, NAMPOL, CENA_SER1, CENA_SER2,
CENA_ZOL, NAC_OTHER, DOGOVOR_M, KONTAKT, MARK, DOGOVOR, OKPO, TIP, CODORG, PRZ, PINDEX,
NAMUSER, DIRECTOR, TELEFON, BUX, DOM, POST_ADDR, BANK, RS, NAMORG, UL, EMAIL, GOROD, MFO,
NSVID, NALOGN, DATCREATE, DATMOD)
values (554, 0, '', 0, 618, '', '', 0, 0, 0, 0, '', '', 0, '', '', '', 554, 0, '', 'Дима 10.02.2017 10:43:12', '', '', '', '', '',
'Доп.офис `Лесной ПАО `Банк `Санкт-Петербург`', '', 'Маркет', '', '', '', '', '', '', '2017-02-02 17:32:30.0000',
'2017-02-10 10:44:30.0000')

то все работает.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402470
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin, тебя в ГуглЯндексах забанили?
Послали жеж конкретно 20201764 .
Чего не понятно?
Или тебе надо расжувать и вовнутрь протолкнуть?
Типа сам ты ни фига осилить не можешь.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402471
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

Мне непонятно следующее: для обозначения текста в синтаксисе FB используется одинарная кавычка, так?
Символ "апостроф" как терминатор для разделения текста не работает, так? Тогда почему наличие апострофов внутри текста как-то влияет на выполнение скрипта, который я привел (insert)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402472
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinМне непонятно следующее:
Тебе не понятно - ты и ищи ответ. А не жди маны небесной.
Это описано в литературе. А значит есть в доке.
Тока не надо пищать "Форумы для того что бы помогать!"...
Напряги извилины и заюзай поиск по фору и Интернету, что четко соотвествует 1066863 .
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402474
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinТогда почему наличие апострофов внутри текста как-то влияет на выполнение скрипта, который
я привел (insert)

Потому что проблема не в Firebird, а твоём кривом парсере. В IBExpert этот запрос, ты
сказал, работает. А в isql?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402479
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Причем тут мой парсер???

Вот часть кода из делфи:
Код: 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.
procedure pfExecSQL(P: TParamList; var FError: Boolean); far;
var
  StrSQL : String;
  IBTransactionMain : TIBTransaction;
  Cursor : TIBQuery;
  IDT : integer;
begin
  StrSQL := P.GStrI(0);
  if StrSQL <> '' then begin
     Cursor := TIBQuery.Create(nil);
     Cursor.Database    := CommandsDataModule.IBDataBase1;
     IBTransactionMain := TIBTransaction.Create(Cursor);
     IBTransactionMain.DefaultDataBase:= CommandsDataModule.IBDataBase1;
     IDT := CommandsDataModule.IBDataBase1.AddTransaction(IBTransactionMain);
     Cursor.Transaction := IBTransactionMain;
     Cursor.SQL.Add(StrSQL);
      try
        Cursor.ExecSQL;
        Cursor.Transaction.Commit;
        Cursor.Database.RemoveTransaction(IDT);
        Cursor.Free;
      except
        on E: Exception do begin
          Cursor.Transaction.Rollback;
          Cursor.Database.RemoveTransaction(IDT);
          Cursor.Free;
          MessageDlg(E.Message, mtError, [mbOk], E.HelpContext);
        end;
      end;
  end; // if
end;



В переменную StrSQL приходит именно тот insert, который я написал выше. И что с ним не так?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402484
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

авторНу сделай заявку на трэкер Firebird, чтобы в 4.0 добавили возможность передавать в SQL без параметров строковые константы, обрамленные кавычкой, включающие в себя кавычки, особенно нечетное их кол-во :)

Еще раз повторяю: у меня внутри строковой константы НЕТ кавычек! Внутри строковой константы символ ` (на клавиатуре в русской раскладке буква Ё)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402491
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovTimujinТогда почему наличие апострофов внутри текста как-то влияет на выполнение скрипта, который
я привел (insert)

В IBExpert этот запрос, ты сказал, работает. А в isql?


в isql тоже работает. блин. не понимаю...
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402492
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinЯ пока слышу только одного ;)
Ага. Который тыркает, уже 2-ю страницу, своим бредокодом, который нафех ни кому не нужен.
А остальные - откровенно болт забили на сие невежество.

Timujin
Код: pascal
1.
2.
3.
4.
5.
6.
  StrSQL := P.GStrI(0);
  if StrSQL <> '' then begin
     ....
     Cursor.SQL.Add(StrSQL);
     ....
     end;



Бест_каментов...
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402493
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И у меня работает. Меняю в строке количество символов ` (ASCII-код 96, не путать с одинарной кавычкой) - не работает.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402495
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinВ делфи приходит строка с инсертом, описанная выше. Причем тут мой парсер?
Строка в Дельфю откуда берется?
Приводить в нормализованный вид бредоконтент кто должен?
FB - тут не приделах. Точка.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402506
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujinв isql тоже работает. блин. не понимаю...
Вооот... В двух парсерах, написанных не тобой, скрипт работает. Какой отсюда вывод?..

TimujinИ что с ним не так?
Практически всё. Главное - отсутствие "ParamCheck := false;"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39402541
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovПрактически всё. Главное - отсутствие "ParamCheck := false;"
До этого можно было автору и отладчиком дойти простым вообще-то.

Кстати, я больше от этого кайфанул:
Код: pascal
1.
2.
3.
     Cursor := TIBQuery.Create(nil);
     Cursor.Database    := CommandsDataModule.IBDataBase1;
     IBTransactionMain := TIBTransaction.Create(Cursor);
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403181
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockDimitry SibiryakovПрактически всё. Главное - отсутствие "ParamCheck := false;"
До этого можно было автору и отладчиком дойти простым вообще-то.

Кстати, я больше от этого кайфанул:
Код: pascal
1.
2.
3.
     Cursor := TIBQuery.Create(nil);
     Cursor.Database    := CommandsDataModule.IBDataBase1;
     IBTransactionMain := TIBTransaction.Create(Cursor);



А чо таково? Помнится IBConcole в таком же стиле был написан.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403513
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ближе к делу.

Накидал тестик для поверки догадки на счет ParamCheck := False;

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create table T (
ID integer not null primary key,
NAME varchar(200)
);

-- генератор ID и соответствующий триггер опускаю

insert into t(name) values('Доп.офис `Лесной `ПАО `Банк `Санкт-Петербург`');
insert into t(name) values('Доп.офис  Лесной `ПАО `Банк `Санкт-Петербург`');



Firebird-2.5.1
D7
FIBPlus.6.9.9
IBX какой был в D7, хотя может быть и патчил когда-то давно.

Код: 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.
type
  TForm2 = class(TForm)
    Database: TpFIBDatabase;
    Trans: TpFIBTransaction;
    QIns: TpFIBQuery;
    BtnFIB: TButton;
    MemoSQL: TMemo;
    IBDatabase: TIBDatabase;
    IBTransaction1: TIBTransaction;
    IBSQL1: TIBSQL;
    BtnIBX: TButton;
    procedure BtnFIBClick(Sender: TObject);
    procedure BtnIBXClick(Sender: TObject);
  end;

procedure TForm2.BtnFIBClick(Sender: TObject);
begin
  Database.Open;
  QIns.SQL.Clear;
  QIns.SQL := MemoSQL.Lines;
  QIns.ExecQuery;
  Trans.Commit;
  Database.Close;
  ShowMessage('Ok');
end;

procedure TForm2.BtnIBXClick(Sender: TObject);
begin
  IBDatabase.Open;
  IBSQL1.SQL.Clear;
  IBSQL1.SQL := MemoSQL.Lines;
  IBTransaction1.StartTransaction;
  IBSQL1.ExecQuery;
  IBTransaction1.Commit;
  IBDatabase.Close;
  ShowMessage('Ok');
end;

// в дизайнере установлено по умолчанию:
//QIns.ParamCheck := True;
//IBSQL1.ParamCheck := True;



Работает без ошибок при строке и с 4 и с 5 обратными апострофами.
И в IBX и в FIB.
С включенной проверкой параметров.

Может быть у меня патченый IBX как раз на эту тему, а может
Код: plaintext
ParamCheck
вообще ни при чем.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403547
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык ты запросы в дизайн-тайм забил, наверное?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403548
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отладчиком надо пройтись. ТС'у. Это решит вопрос.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403561
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fraks,

люди пишут про ошибку с четностью кавычек в insert еще тут - 14105957 , в 2013 году.
в 2005 году та же фигня - http://delphimaster.net/view/3-1117241713
Про paramcheck:=False - это если в данных есть "закавыченные двоеточия".
В общем, х.з., надо сравнивать разные версии ibx.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403573
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В win1251, к примеру, кавычек больше, чем кажется на экране.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403583
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уфф...

Я не знаю, почему вы в принципе до IBX и парамчека доколупались.
Не поленился (ну, почти - вместо инсерта сделал select), проверил
его вышеприведённые запросы - работают оба, как по отдельности,
так и вместе, как с парамчеком, так и без.

Ну ведь очевидно же, что чувак напутал там в своём
парсере-скриптере с кавычками и функцией Replace и пр.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403584
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Проверял на стандартной версии IBX из D7
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403638
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvfraks,

люди пишут про ошибку с четностью кавычек в insert еще тут - 14105957 , в 2013 году.
в 2005 году та же фигня - http://delphimaster.net/view/3-1117241713
Про paramcheck:=False - это если в данных есть "закавыченные двоеточия".
В общем, х.з., надо сравнивать разные версии ibx.

Всем доброго дня!
Честно говоря, был расстроен таким шквалом "это все говнокод" и т.д., так как зарегистрирован на форуме с 2003 или с 2004 года, но с 2005 года почти не обращался к форуму, потому что отошел от программирования по причине создания своих собственных предприятий. Но тут оказалось, что зря я решил, что форум стал не тот, как говорится, спроси на русском форуме что-то и тебе объяснят, почему ты му**к )). Исходники на Делфи писались еще в 2000 годах, еще и в основном не мной, я занимался комплектом ХП под наши задачи, с тех пор исходники мало менялись, поэтому я совершенно спокойно отношусь к крикам про говнокод ))) Дело было давно и вполне возможно там и был "говнокод", но он работает на куче предприятий, поэтому не совсем он и "говнокод" ;)
Сегодня был приятно удивлен положительной активности форумчан. Но это все лирика.

По сути:
Процитированные ссылки я нашел и прочел еще до обращения на форум
Версия FB у меня 1.5, Делфи 7
По поводу "перепутал апострофы с одинарной кавычкой" - я из отладчика в делфи копировал в IBE строку, которая в IBE выполнялась, а в делфи при попытке Cursor.ExecSQL; выскакивала ошибка.
Я не говорю, что ошибка в FB, просто хотел докопаться до сути, тем более, что я не первый наступаю на эти грабли.
Это правильно заметил fraks , за что ему спасибо. Еще раз повторю, что проблему я решил заменой всех апострофов/одинарных кавычек/двойных кавычек на сдвоенные одинарные кавычки.
Как говорится, проблему решил, но не разобрался ))
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403643
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin> я из отладчика в делфи копировал в IBE строку,
Timujin> которая в IBE выполнялась, а в делфи при попытке
Timujin> Cursor.ExecSQL; выскакивала ошибка.

Какую строку (вышеприведенные?) и какая ошибка?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403650
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Строку с Инсертом, которую я приводил выше. Ошибка - XSQLDA index out of range
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403655
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

интересно, а почему для выполнения SQL который не возвращает данные вы выбрали TIBQuery, а не TIBSQL?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403659
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Не могу ответить на этот вопрос. Дело было 17 лет назад ))
Но ведь и TIBQuery должен отработать эту ситуацию?
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403661
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Топик проредил, постарался оставить только относящееся к делу.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403665
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Timujin!
You wrote on 13 февраля 2017 г. 17:21:26:

Timujin> Но ведь и TIBQuery должен отработать эту ситуацию?исходники оного входят в поставку Delphi.
включай отладчик и трассируй.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403668
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin> Строку с Инсертом, которую я приводил выше.

Ну я только что проверил её, с инсертом. Работает. D7. И?

Timujin> Ошибка - XSQLDA index out of range

Наверняка, умная функция в умном скрипте напутала с
кавычками и один из параметров/констант съелся/лишний.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403673
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Пусть будет так ))))
Но я умею считать до пяти (апострофов в строке)
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403682
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimujinНо я умею считать до пяти...
Про суслика...
У всех, кому надо, работает и они не считают апострофы пальцем.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403688
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin> Но я умею считать до пяти (апострофов в строке)

Поздравляю. Но вот ведь беда - не имеет
значения, сколько их, если они экранированы.

P.S. Жаль, Володя не видит, из-за кого такую бучу затеял.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403690
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,

авторлюди пишут про ошибку с четностью кавычек в insert еще тут - 14105957, в 2013 году.
в 2005 году та же фигня - http://delphimaster.net/view/3-1117241713
Про paramcheck:=False - это если в данных есть "закавыченные двоеточия".
В общем, х.з., надо сравнивать разные версии ibx.

Интересно, у них тоже был такой же самый кусок кода в Делфи как и у меня? ;)
Сегодня если доберусь, попробую заменить TIBQuery на TIBSQL и также попробую с парамчеком.
Если эта проблема только у меня (тогда кто эти люди по ссылкам выше?) то давайте считать тему закрытой.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403692
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамTimujin> Но я умею считать до пяти (апострофов в строке)

Поздравляю. Но вот ведь беда - не имеет
значения, сколько их, если они экранированы.

P.S. Жаль, Володя не видит, из-за кого такую бучу затеял.


Капец какие все обидчивые )))
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403695
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обидчивых нет, этого ещё не хватало. :)
Просто когда с пятого раза не понимают
и талдычат одно и то же - раздражает.

P.S. Проблема не в замене IBSQL на IBQuery, разумеется.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403696
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

проблему вообще не выявили. Надо отладчиком лезть. Если надо то и внутрь компонент
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403697
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

Так мне тоже сказали, что главное - это отсутствие Парамчек = фалс, а тут ты говоришь, что он в данном случае не причем.
Если я всем надоел, то давайте считать тему закрытой. (я тоже не из обидчивых, просто не хочу доставать всех тупыми вопросами))), если кому-то интересно, в чем может быть проблема (все-таки ж не только у меня это случилось с нечетным количеством апострофов - НЕ КАВЫЧЕК), то я потом отпишусь, что получилось
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403701
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

теперь даже уже интересно стало. Если докопаешься до сути сообщи
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403705
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 13 февраля 2017 г. 18:16:52:

Симонов Денис> теперь даже уже интересно стало. Если докопаешься до сути сообщине взлетит.
тут программист нужен.
(с)

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403706
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Допинг защитан ))
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403713
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

исходя из кода 20201853 мне не очень понятно, почему делается вывод о тексте запроса там, сям, если в самом начале запрос конструируется полностью
Код: pascal
1.
 StrSQL := P.GStrI(0);


и ошибка про xsqlda вылазит вот на этой строке?
Код: pascal
1.
        Cursor.ExecSQL;


и в Cursor.SQL прям вот insert со странными и нечетными кавычками?

я может за количеством сообщений несколько утерял центральную мысль топика. Но - если ExecSQL выдает ошибку, то нужно смотреть текст запроса (тут же, в отладчике). Если так оно и есть, берем этот же запрос, тут же, из отладчика, и пуляем в ИБЭксперт. Ошибки нет? Значит дело в компонентах, используемых в конкретной дельфе.

TimujinВерсия FB у меня 1.5, Делфи 7
ключевой вопрос - IBX 7.11 для Delphi 7 SP1 ?
http://www.ibase.ru/components/

нашел readme от 7.04 и 7.08, от 7.11 нету. А в 7.08 столько изменений, что для работающего проекта страшновато ставить.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403717
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Kdv!
You wrote on 13 февраля 2017 г. 18:50:39:

Kdv> нашел readme от 7.04 и 7.08, от 7.11 нету. А в 7.08 столько изменений, что для работающего проекта страшновато ставить.
а на непатченной вообще 6.Х
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403729
Timujin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

авторНо - если ExecSQL выдает ошибку, то нужно смотреть текст запроса (тут же, в отладчике). Если так оно и есть, берем этот же запрос, тут же, из отладчика, и пуляем в ИБЭксперт. Ошибки нет? Значит дело в компонентах, используемых в конкретной дельфе.
Да, именно так.
const IBX_Version = 6.0;
Дело в том, что к проекту покупался Fastreport для отчетов и его исходники правили под проект. А новый IBX с ним работать не хочет, тут или покупать новый Fastreport и допиливать те изменения, которые были в нем сделаны или ковырять старый, чтобы он работал с новым IBX
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403732
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin,

проще в одном месте допилить ибх, чем ковырять fr.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403751
Фотография LocksmithPC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и не понял в чем проблема. Все работает даже на 1-й дельфе
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403859
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамTimujin> Но я умею считать до пяти (апострофов в строке)

Поздравляю. Но вот ведь беда - не имеет
значения, сколько их, если они экранированы.

P.S. Жаль, Володя не видит, из-за кого такую бучу затеял.


Я вижу. И мое мнение не изменилось. Ни по поводу вопрошающего, ни по поводу того как нужно общаться в приличном обществе.
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39403876
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timujin> если кому-то интересно, в чем может быть проблема,
Timujin> то я потом отпишусь, что получилось

Конечно, интересно. Там отладки-то на пару минут, давно бы уже сделал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Вставка текста с апострофом
    #39404011
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Fraks!
You wrote on 14 февраля 2017 г. 11:56:03:

Fraks> Я вижу. И мое мнение не изменилось. Ни по поводу вопрошающего, ни по поводу того как нужно общаться в приличном обществе.зануда.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вставка текста с апострофом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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