Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не работает выборка. 
:(
    Опции темы
ALTO_MAN
  Дата 14.10.2005, 20:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Код

CREATE PROCEDURE TEST 
AS
DECLARE VARIABLE b smallint;
DECLARE VARIABLE NMax integer;
DECLARE VARIABLE CN  VARCHAR(255);
DECLARE VARIABLE TCN  VARCHAR(255);
BEGIN
  b=0;
  NMax=GEN_ID(NEW_MSG,0)-1;
  if (NMax>=0) then
     begin
        /*Следующая выборка работает*/
        CN='O666KT__';
        Select F_GN from T_USB_LIST where (F_GN like :CN) into :TCN;
        if (TCN<>'') then
           begin
           Update t_data_msg set F_GN=:TCN where (F_NUM=:NMax);
           end
        end
     end
END


Код

CREATE PROCEDURE TEST 
AS
DECLARE VARIABLE b smallint;
DECLARE VARIABLE NMax integer;
DECLARE VARIABLE CN  VARCHAR(255);
DECLARE VARIABLE TCN  VARCHAR(255);
BEGIN
  b=0;
  NMax=GEN_ID(NEW_MSG,0)-1;
  if (NMax>=0) then
     begin
     Select F_GN from t_data_msg where (F_NUM=:NMax) into :CN;
     if (SubStr(CN,7,1)='?') then
        begin
        b=1;
        CN=strstuff(CN,7,1,'_');
        end
     if (SubStr(CN,8,1)='?') then
        begin
        b=1;
        CN=strstuff(CN,8,1,'_');
        end
     if (b=1) then
        begin
        TCN='';
/*!!! А тут уже нет, хотя CN, вроде, такой же...*/
        Select F_GN from T_USB_LIST where (F_GN like :CN) into :TCN;
        if (TCN<>'') then
           begin
           Update t_data_msg set F_GN=:TCN where (F_NUM=:NMax);
           end
        end
     end
END


Почему первый вариант выдает результат, а второй нет?
Точнее, почему работают
Код

Select F_GN from T_USB_LIST where (F_GN like 'O666KT__') into :TCN;

и
Код

CN='O666KT__';
Select F_GN from T_USB_LIST where (F_GN like :CN) into :TCN;


И не работает
Код

Select F_GN from T_USB_LIST where (F_GN like :CN) into :TCN;


Хотя, при пошаговой отладке, наблюдаю как переменная CN из вида 'O666KT??' преображается в 'O666KT__'(в точности как в первом куске). Но все равно первый и второй выборки выдают результат(TCN='O666KT54') а последний нет.

ПОЧЕМУ? Помогите...
использую IB 7 и rFunc от Polaris Software(http://polesoft.da.ru)
  Вверх
Guest
Дата 15.10.2005, 06:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Запрос:
Select F_GN from T_USB_LIST where (F_GN like :CN) into :TCN;
дейсвительно возвращает ОДНУ запись?
  Вверх
ALTO_MAN
Дата 15.10.2005, 13:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В таблице T_USB_LIST несколько записей подходящих под маску "O666KT__" ("O666KT65", "O666KT63", например) и запрос возвращает не одну запись а больше... Но все равно, строка из поля F_GN в переменную TCN заносится. А в последнем куске кода, когда я модифицирую переменную CN содержащую "O666KT??" до состояния "O666KT__" этот же запрос не возвращает в TCN никакой строчки. Может дело в кодировках? Тогда как исправить?

Я чего-то недопонимаю?
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.