Конференция "Базы" » как передать значение Null хранимой процедуре? [D5, fb2]
 
  • Евгений Р. (04.08.08 15:35) [0]
    Пробую sp.ParamByName('Param1').Clear - получаю сообщение об ошибке.
  • Игорь Шевченко © (04.08.08 15:50) [1]
    секретное
  • Евгений Р. (04.08.08 15:58) [2]

    > Игорь Шевченко ©   (04.08.08 15:50) [1]


    required Param value not set
  • Ega23 © (04.08.08 16:00) [3]
    В настройках параметра IsNullable присутствует?
  • Евгений Р. (04.08.08 16:03) [4]
    вообщето процедуру создаю во время выполнения:  sp:=TIBStoredProc.Create(application);
  • Ega23 © (04.08.08 16:24) [5]

    > вообщето процедуру создаю во время выполнения


    Да хоть в конце окончания. Свойства параметра какие?
  • Евгений Р. (04.08.08 18:32) [6]
    свойства "IsNullable" я не нашел ни у TIBStoredProc ни у ТParam. Похоже это из Ado.
  • Ega23 © (04.08.08 18:41) [7]
    ParamType - какой стоит?
  • Евгений Р. (04.08.08 21:01) [8]
    ParamType=ptInput
  • Loginov Dmitry © (04.08.08 23:30) [9]
    > sp:=TIBStoredProc.Create(application);


    это, а нельзя ли хранимку вызвать с помощью TIBDataSet/TIBQuery или TIBSQL?

    TIBStoredProc вообще-то не самый лучший выбор для работы с хранимками (с) ibase.ru :)
  • Игорь Шевченко © (05.08.08 00:11) [10]
    Партизанов давить
  • Евгений Р. (05.08.08 00:26) [11]

    > Loginov Dmitry ©   (04.08.08 23:30) [9]

    я с ФБ пока на Вы. О последнем не знал. А в Ваших случаях пустые параметры пройдут?
  • MsGuns © (05.08.08 00:44) [12]
    uses variants ?
  • Loginov Dmitry © (05.08.08 08:00) [13]
    Кстати: TParam.Value.Type должен быть равен Null (а не Unassigned), тогда все пашет.
  • Евгений Р. (05.08.08 12:34) [14]
    сделал:
    sp.ParamByName('kgrup').Value.type:=null;



    ошибка: "invalid variant operation"
  • MsGuns © (05.08.08 15:15) [15]
    >Евгений Р.   (05.08.08 12:34) [14]
    >sp.ParamByName('kgrup').Value.type:=null;

    ;)))
  • Евгений Р. (06.08.08 11:08) [16]

    > MsGuns ©   (05.08.08 15:15) [15]

    так это правильно или нет?  sp.ParamByName('kgrup').Value.type:=null;
  • Loginov Dmitry © (06.08.08 12:36) [17]

    > так это правильно или нет?  sp.ParamByName('kgrup').Value.
    > type:=null;


    нет! Головой кто будет думать?
  • Евгений Р. (06.08.08 14:06) [18]

    > Loginov Dmitry ©   (06.08.08 12:36) [17]


    я вобщето головый пытаюсь... но с вариант работал мало. строчку написать слабо?
  • BoxTer (06.08.08 14:49) [19]
    а так?
    sp.ParamByName('kgrup').Value := null;

  • Евгений Р. (06.08.08 15:20) [20]
    вообщето не пробовал, но помоему null это целая константа => просто присвоится целое число?
  • Евгений Р. (06.08.08 15:28) [21]
    varEmpty    = $0000; { vt_empty       }
     varNull     = $0001; { vt_null        }
     varSmallint = $0002; { vt_i2          }
     varInteger  = $0003; { vt_i4          }
    ...
  • MsGuns © (06.08.08 16:06) [22]
    >Евгений Р.   (06.08.08 15:20) [20]
    >вообщето не пробовал, но помоему null это целая константа => просто присвоится целое число?

    NULL - это не ноль, это НИЧТО. Для того, что компиллятор не ругался на это "ничто" нужно "прицепить" модуль Variants (см.12)
  • Евгений Р. (06.08.08 16:13) [23]
    да, спасибо. Я спутал function Null: Variant;       // Null standard constant и varNull
  • Игорь Шевченко © (06.08.08 23:23) [24]

    > строчку написать слабо?


    ParamByName('foo').Clear
  • Loginov Dmitry © (07.08.08 01:05) [25]
    > строчку написать слабо?


    Я эксперементировал в design-time, там именно так и задается. Думал и в run-time также, ан нет, все намного хитрее оказалось ;) Чесно говоря, так я и не понял, как там обрабатываются значения из списка Param[].Value.Type, похоже, встроенная фича инспектора объектов (тем более в dfm строки "Type" вообще нету). Так что [19] ;)
  • Евгений Р. (07.08.08 01:06) [26]

    > Игорь Шевченко ©   (06.08.08 23:23) [24]

    select OsloUmie
    from dlb
  • Евгений Р. (07.08.08 01:35) [27]

    > Loginov Dmitry ©   (07.08.08 01:05) [25]

    [19] работает отлично. Спасибо.
    А напрямую присваивать variant.type наверное нельзя?
  • Loginov Dmitry © (07.08.08 07:55) [28]
    > А напрямую присваивать variant.type наверное нельзя?


    нельзя, это просто инспектор объектов так показывает, а на самом деле этого не существует.
  • Игорь Шевченко © (07.08.08 10:11) [29]
    Евгений Р.   (07.08.08 01:06) [26]

    http://ln.com.ua/~openxs/articles/smart-questions-ru.html

    Читать наизусть.
  • Евгений Р. (07.08.08 14:15) [30]

    > Игорь Шевченко ©   (07.08.08 10:11) [29]

    спасибо, при случае дам и Вам соответствующую ссылку. Над Вашей культурой стоит потрудится.
  • Johnmen © (07.08.08 15:28) [31]

    > Над Вашей культурой стоит потрудится.

    Ещё один бессребренный труженик? Ну-ну...
 
Конференция "Базы" » как передать значение Null хранимой процедуре? [D5, fb2]
Есть новые Нет новых   [134435   +34][b:0][p:0.001]