FIB+ ошибка при присвоении занчения параметру

Dimitry Sibiryakov
Дата: 08.07.2009 18:15:17

Бектуров Роман

дык может поделитесь опытом и расскажите как определить ?

Лично я определяю через значение sqltype. А как оно там в FIB+ - юез
малейшего понятия, ибо давно не щупал эту обёртку с засильем
неестественного интеллекта.

Posted via ActualForum NNTP Server 1.4

Гаджимурадов Рустам
Дата: 08.07.2009 18:32:33
Бектуров Роман
вызывается хранилка через exceute, т.е. тип параметра узнать никак нельзя ?
А зачем? Универсализатор что ли?

P.S. Сказали же - юзай IsBlob.
Бектуров Роман
Дата: 09.07.2009 09:47:37
В общем, суть такова: прога была написана под ms sql, логика в хранилках, приложение с базой общалось через функцию примерно так:


// вызов функции
DataSet :=
  GetRecordset
  (
    'Имя хранимой процедуры',
    [
      DbParameter('Параметр1', Значение параметра 1),
      DbParameter('Параметр2', Значение параметра 2),
      DbParameter('Параметр3', Значение параметра 3),
      ...    
    ]
  )

// сама функция, уже под FB
function GetRecordset(const AStoredProcName: string; const ADbParameters: array of TDbParameter): TpFIBStoredProc;
begin
  Result := TpFIBStoredProc.Create;
  with Result do
  begin
    Database := FDatabase;
    StoredProcName := AStoredProcName;
  end;

  // тут надо определить тип параметра как-то
  // дабы операцию присовение заменить на LoadFromStream
  for DbParameter in ADbParameters do
    Result.ParamByName(DbParameter.Name) := DbParameter.Value;
end;

внутри проходил по переданному массиву параметров и заполнял значения соответственно имени. Дали задание оперативно перевести на FB с компонентами доступа FIB+, в которых я не шибко разбираюсь :-) Вот и наткнулся на проблему, что, получается, внутри функции нужно узнать какого типа параметр, чтоб в зависимости от этого устанавить его значение нужным образом. sqltype у параметра равен SQL_TEXT но этому же значению равен sqltype и у параметра, объявленного как varchar, sqlsubtype, вроди как тип блоба, равен нулю, IsBlob=false. А если ли какой-нибудь способ получить метаданные хранимой процедуры ?
Dimitry Sibiryakov
Дата: 09.07.2009 11:51:39

Бектуров Роман

sqltype у параметра равен SQL_TEXT но этому же значению равен sqltype и
у параметра, объявленного как varchar

Такое может быть только в случае бага в сервере или фибах. Копай.

Posted via ActualForum NNTP Server 1.4