проблемы с Adostoredproc

отредактировано 08:37 Раздел: FastScript
Здравствуйте, помогите пожалуйста решить проблему. Есть скрипт, который выкачивает отчетную форму из базы данных MSSQL:

function GetReport(Num: integer): boolean;
var
ReportSP: TADOStoredProc;
begin
Result:=false;
try
try
ReportSP:=TADOStoredProc.Create(nil);
ReportSP.Connection:=ADOConnection2;
ReportSP.ProcedureName:='GetReportImage';
ReportSP.Parameters.Clear;
ReportSP.Parameters.Refresh;
ReportSP.Parameters.ParamByName('@Report').Value:=Num;
ReportSP.Open;
ReportSP.First;
TBlobField(ReportSP.FieldByName('report')).SaveToFile('c:\Num'+inttostr(Num)+'.frf');
Result:=true;
finally
ReportSP.Close;
ReportSP.Free;
end;
except
Showmessage('This is error. ');
end;
end;
begin
GetReport(1); //Выкачиваем отчет с номером 1
end.

Процедура в Delphi, которая запускает данный скрипт:

procedure TForm4.Button1Click(Sender: TObject);
begin
fsScript1.Clear;
fsScript1.Lines.Text:=fsScript1.Lines.Text+fsSyntaxMemo1.Lines.Text;
fsScript1.Parent:=fsGlobalUnit;
fsScript1.SyntaxType:='PascalScript';
fsScript1.AddObject('ADOConnection2', ADOConnection2);
if fsScript1.Compile then fsScript1.Execute else
ShowMessage(fsScript1.ErrorMsg+''+fsScript1.ErrorPos);
end;

хранимая процедура на сервере:

CREATE procedure dbo.GetReportImage(@Report int)
AS
BEGIN
SELECT * from Reports WHERE Number=@Report
END
GO

Проблема в том, что при вызове метода ReportSP.Parameters.Refresh вылетает сообщение:
Could not convert variant of type (NULL) into type (INTEGER)

Что делать? Перепробовал уже все что можно. Ничего не помогает.

Комментарии

  • отредактировано 08:37
    В вашем случае вместо TADOStoredProc лучше использовать запрос, который обращается к хранимой процедуре.

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.