powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5 ругается на строковую константу
16 сообщений из 16, страница 1 из 1
Firebird 2.5 ругается на строковую константу
    #39677570
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу модифицировать существующую и работающую процедуру

Код: sql
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.
begin

 for SELECT    PRICES.ID,
               PRICES.KOLVO,
               PRICES.SUMAP,
               PRICES.IDSPRTOVARA,
               PRICES.IDSPRPROIZV,
               PRICES.AP0,
               PRICES.AP1,
               PRICES.AP2,
               PRICES.AP3,
               PRICES.AP4,
               PRICES.AP5,
               PRICES.AP6,
               PRICES.AP7,
               PRICES.AP8,
               PRICES.AP9,
               PRICES.AP10,
               PRICES.AP11,
               PRICES.AP12,
               PRICES.AP13,
               PRICES.AP14,
               PRICES.AP15,
               PRICES.AP16,
               PRICES.AP17,
               PRICES.AP18,
               PRICES.AP19,
               PRICES.AP20,
               PRICES.AP21,
               PRICES.AP22,
               PRICES.AP23
    FROM PRICES
    where ((SUMAP is not null) or (SUMM is not null)) and (PROIZV = 1)
    ORDER BY NAME
    into :tmpid,:tmpkolvo, :tmpsumap,:tmpidsprtovara,:tmpidsprproizv,
    :tmpap0,:tmpap1,:tmpap2,:tmpap3,:tmpap4,:tmpap5,:tmpap6,:tmpap7,:tmpap8,:tmpap9,:tmpap10,:tmpap11,:tmpap12,:tmpap13,:tmpap14,:tmpap15,:tmpap16,:tmpap17,:tmpap18 ,:tmpap19,:tmpap20,:tmpap21,:tmpap22,:tmpap23
    do begin

        vse = 0;
        SUMMAZ = 0;
        SUMMSZAKAZA =:tmpsumap;

        /* 23.07.2018  */
        for SELECT SPRTOVARA.NAME from SPRTOVARA where SPRTOVARA.id = :tmpidsprtovara into :TMPNAMETOV
        do begin
           If (POSITION('КАНОН', :tmpnametov)> 0) then
               update prices set PRICES.IDSPRPROIZV = 1896 where prices.id = :tmpid;
        end
      /*  23.07.2018 */

        for SELECT
            RESIVEPRICE.ID,
            RESIVEPRICE.KOLVO,
            resiveprice.idsprtovara,
            RESIVEPRICE.idsprpostav
        FROM resiveprice
        where idsprtovara = :tmpidsprtovara and idsprproizv = :tmpidsprproizv and zakaz = 0
        /* 17.08.2017 */
        and ((RESIVEPRICE.idsprpostav <> 173) and (RESIVEPRICE.idsprpostav <> 180))
         /* 17.08.2017 */
        order by price, KOLVO desc
        into :tmpid_r,:tmpkolvo_r, :tovar_id, :postavshik_id
        do begin
           if (vse = 0) then begin
               if (SUMMSZAKAZA>tmpkolvo_r) then
                       begin
                       S =:tmpkolvo_r;
                       SUMMSZAKAZA = :SUMMSZAKAZA-:S;
                       end
                       else begin
                            S =:SUMMSZAKAZA;
                            end
              execute procedure inszakazipart(tmpid,tmpid_r, tovar_id, postavshik_id, S,
               tmpap1,tmpap2,tmpap3,tmpap4,tmpap5,tmpap6,tmpap7,tmpap8,tmpap9,
               tmpap10,tmpap11,tmpap12,tmpap13,tmpap14,tmpap15,tmpap16,tmpap17,tmpap18,tmpap19,tmpap20,tmpap21,tmpap22,tmpap23,0,tmpap0) returning_values :SUMMAZ,:tmpssumr ;
                   if (tmpssumr>0) then
                      update resiveprice set zakaz=1,KOLVOZAKAZ = :tmpssumr where resiveprice.id = :tmpid_r;
                   if (SUMMAZ >= tmpSUMAP) then begin
                                                vse = 1;
                                                end
                   /*else begin
                        /*tmpkolvo = tmpSUMAP-tmpsumm;
                        if (tmpsumm>0) then SUMMAZ = tmpsumm;
                        end*/
                        end
           end
           if (SUMMAZ > 0 ) then
              update prices set prices.summ =  :SUMMAZ where prices.id = :tmpid;
/**/   end
end
  




Получаю
авторThis operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$PROCEDURES failed.


Как я понимаю ругается на
Код: sql
1.
 If (POSITION('КАНОН', :tmpnametov)> 0) then


А конкретно на строковую константу. Но в чем дело? Как я понимаю, это более чем допустимо

Использование строковой переменной вместо константы дает ту же ошибку. Подскажите как побороть?
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677574
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заглянул под простыню...
ужоснах!
чем ты это генерил?!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677575
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это все было уже до меня. Кстати, как оказалось дело не в константе, а в чем то другом. Закомментил условие, та же ошибка
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677578
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

с алиасами имен таблиц просто шандец.
А текст ошибки неполный.
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677579
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010,

это не полный текст ошибки из него ничего не понятно. С чего ты взял что дело в position?
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677582
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Взял с того, что если заменить 'КАНОН' на 123 к примеру, процедуры альтерится без ошибок. А где взять полный текст ошибки?
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677590
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.07.2018 11:55, арт2010 пишет:
> А где взять полный текст ошибки?

а чем ты альтеришь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677592
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В IBExpert
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677598
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ставлю на корявый чарсет БД в сочетании с чарсетом подключения. Возможно переход на 2.5 был без fix_metadata
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677606
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис, есть возможность исправить или решить нужную мне задачу как-то по другому?
Остальное то все работает вроде. Если что вот параметры подключения
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677616
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
charset NONE, это прЫкрасно!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677622
арт2010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хз, всю жизнь так было у нас в конторе еще до меня и все работало прекрасно. Тем более как я понимаю, чарсет прямо указывается в таблицах
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677629
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
23.07.2018 12:23, арт2010 пишет:
> Тем более как я понимаю, чарсет прямо указывается в таблицах

черсет коннекта, бамбино!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677631
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
арт2010если заменить 'КАНОН' на 123 к примеру

....т.е. если заменит ьстроку на целое число
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677645
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

значит я угадал. Не на целое он меняет а на строку '123'. Просто в строке нет кириллицы от того и работает
...
Рейтинг: 0 / 0
Firebird 2.5 ругается на строковую константу
    #39677671
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

я думаю, что все же на число. Просто оно автоматически кастуется.

select 123 || 456 from rdb$database
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 2.5 ругается на строковую константу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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