powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятно
14 сообщений из 14, страница 1 из 1
Непонятно
    #32580299
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В поле ввода ввожу набор букв. Например 'АВТО'.
При нажатии на Enter переменной присваивается значение этого поля (nam:=Edit1.Text) и запускается хранимая процедура в IB7, в которую передается данная переменная .
(IBSPIzg.ParamByName('pnaim').AsString:=nam;
IBSPIzg.ExecProc;)
Вот ее текст:
CREATE PROCEDURE SEEIZG (
PNAIM VARCHAR(100))
RETURNS (
RID INTEGER,
NAMIZGOT VARCHAR(100))
AS
begin
pnaim=:PNAIM||'%';
for
Select id_izg, naim||razdelit||country as izgotov from spr_izg
where (naim like :PNAIM) or (country like :PNAIM)
into :RID, :NAMIZGOT
do
begin
suspend;
end
end

Выдается ошибка:
arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets.

Помогите, пожалуйста, разобраться в чем дело?
...
Рейтинг: 0 / 0
Непонятно
    #32580332
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с кодировкой скорее всего проблемы.
какая кодировка используется в БД и с какой кодировкой подключаешься к БД?
...
Рейтинг: 0 / 0
Непонятно
    #32580333
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WIN1251
...
Рейтинг: 0 / 0
Непонятно
    #32580336
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может проблема в этом : pnaim=:PNAIM||'%'
...
Рейтинг: 0 / 0
Непонятно
    #32580396
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо с кодировкой где-то нелады. Толи поля в талицах не с той кодировкой объявлены, толи не с той подключаешься...
А вообще, зачем SP тут нужна? Прямо с клиента параметризованный запрос... И, кстати почему бы like не заменить на starting with?
Удачи.
...
Рейтинг: 0 / 0
Непонятно
    #32580397
АСерега
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а может быть такой вариант ?
naim||razdelit||country в сумме дают больше 100 знаков и не могут поместиться в переменную NAMIZGOT ?

RETURNS ( ...
NAMIZGOT VARCHAR(100))
...
Рейтинг: 0 / 0
Непонятно
    #32580409
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Пора в отпуск. Действительно при connecte забыл указать кодовую страницу. Хотя был уверен что указал. Но все-равно Like не работает. Помогите разобраться с Like. pnaim='АВТО%' В базе в поле naim есть запись АВТОВАЗ.
Select id_izg, naim||razdelit||country as izgotov from spr_izg
where naim like :PNAIM
into :RID, :NAMIZGOT - не работает
...
Рейтинг: 0 / 0
Непонятно
    #32580414
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По подробнее про starting with можно? С чем это едят?
...
Рейтинг: 0 / 0
Непонятно
    #32580431
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй без процедуры, простым запросом...
может запрос не работает...
...
Рейтинг: 0 / 0
Непонятно
    #32580436
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
starting with 'abc' эквивалентно like 'abc%' но при этом сервер сможет использовать индекс если таковой, конечно, имеется.
Кстати 'АСерега' хорошее предположение по поводу ошибки высказал, проверь...
Удачи.
...
Рейтинг: 0 / 0
Непонятно
    #32580441
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем
...
Рейтинг: 0 / 0
Непонятно
    #32580802
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отказался от процедуры. Делаю запросом. Переменная nam имеет значение 'АВТО%'.
IBDS2.SelectSQL.Clear;
IBDS2.SelectSQL.Add('Select id_izg, naim, country from spr_izg where naim like :nam');
IBDS2.Open;

В поле naim есть запись АВТОВАЗ
Представленный выше Select ничего не возвращает.
Пожалуйста, подскажите, в чем может быть причина?
...
Рейтинг: 0 / 0
Непонятно
    #32580921
doroshka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Роман НовичекIBDS2.SelectSQL.Clear;
IBDS2.SelectSQL.Add('Select id_izg, naim, country from spr_izg where naim like :nam');
IBDS2.Open;



Это опечатка или как?
Надо так:
Код: plaintext
1.
2.
3.
4.
IBDS2.SelectSQL.Clear;
IBDS2.SelectSQL.Add('Select id_izg, naim, country from spr_izg where naim like :nam');
IBDS2.ParamByName('nam').AsString:='АВТО%';
IBDS2.Open;

Если не получится, попбробуй в лоб, без параметров.
Код: plaintext
1.
2.
3.
4.
IBDS2.SelectSQL.Clear;
nam:='АВТО%';
IBDS2.SelectSQL.Add('Select id_izg, naim, country from spr_izg where naim like '+nam);
IBDS2.Open;

Если не получится попробуй в IBEpert-е запрос
Select id_izg, naim, country from spr_izg where naim like 'АВТО%'

Если и тут не работает, то тогда убедись что регистр везде одинаковый.
АВТО и Авто - разные вещи,

Убедись, что написание - одинаковое, в смысле, на одном языке:
ABTO <> АВТО - выглядит одинаково, но первое слово написано в англ. раскладке...
...
Рейтинг: 0 / 0
Непонятно
    #32580970
Роман Новичек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBDS2.SelectSQL.Clear;
IBDS2.SelectSQL.Add('Select id_izg, naim, country from spr_izg where naim like :nam');
IBDS2.ParamByName('nam').AsString:='АВТО%';
IBDS2.Open;


Огромное спасибо. Получилось
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Непонятно
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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