# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  مشکل StoredProcedure در دلفی 10.1 با UniDac

## tazarvmmr

سلام به همگی
در RadStudio 10.1 روی پلت فرم ویندوز همه چیز درست کار میکنه ولی وقتی روی اندروید و iOS تست میکنم StoredProcedure خالی برمیگرده! 
قراره با اجرای StoredProcedure بفهمیم که چه فایلهایی برای دانلود وجود داره بعد برنامه شروع کنه و فایلها رو دانلود کنه، از Fire Monkey استفاده شده و روی پلت فرم ویندوز درست کار میکنه همه چیز ولی روی اندروید و iOS همیشه هیچ چیزی پیدا نمیشه!

اصلا نمیتونم بفهمم مشکل کجاست! 
از کامپوننتهای UniDac استفاده کردم و بانک اطلاعاتی هم MSSQL هست، در کد پایین مشخصه که چکار کردم! 
کسی میتونه کمک کنه؟

procedure TForm1.Button2Click(Sender: TObject);
var
  CurrentId,
  Result: integer;
  FullFileName,
  FileName: string;
begin
  if UniConnection1.Connected then
    UniConnection1.Close;
  UniConnection1.Connect;
  if UniConnection1.Connected then
  begin
    with Memo1.Lines do
    begin
      Add('');
      Add('Connect To Database');
      Add('Server Name: ' + UniConnection1.Server);
    end;
    Result := GetDownloads(Edit1.Text);
    Memo1.Lines.Add('Found ' + IntToStr(Result) + ' File(s) to download.');
    if Result > 0 then
    begin
      Memo1.Lines.Add('Getting Information...');
      FullFileName := sp_GetDownloads.FieldValues['Path'] + '/' + sp_GetDownloads.FieldValues['FileName'];
      FileName:= sp_GetDownloads.FieldValues['FileName'];
      CurrentId := sp_GetDownloads.FieldValues['Id'];
      Memo1.Lines.Add('Path: ' + FullFileName);
      Memo1.Lines.Add('FileName: ' + FullFileName);
      Memo1.Lines.Add('Trying to download the file...');
      StartDownload(CurrentId, Edit1.Text, FileName, FullFileName);
      Memo1.Lines.Add('Download Completed.');
    end;
  end
  else
    ShowMessage('Cannot Connect To Server!');
end;



در خط 19 دارم StoreProcedure رو فراخوانی میکنم:

function TForm1.GetDownloads(DeviceCode: string): integer;
begin
  with sp_GetDownloads do
  begin
    PrepareSQL;
    ParamByName('@DeviceCode').Value := DeviceCode;
    Memo1.Lines.Add('   Device Code: ' + DeviceCode);
    Execute;
    Result := ParamByName('@RETURN_VALUE').Value;
    Memo1.Lines.Add('   Return Value: ' + IntToStr(Result));
  end;
end;

این هم خود Stored Procedure

ALTER PROCEDURE GetUnDownloadedVideos 
        @DeviceCode nvarchar(50)
AS
BEGIN
 
  Select * 
  From Devices
  Where Downloaded = 0 and Code = @DeviceCode
  
   Return @@rowcount

END




در اندروید و iOS همیشه متغیز Result برابر صفر هست ولی در ویندوز عدد درست رو برمیگردونه!!!
Memo1 فقط برای این هست که بفهمم کجاها داره اشتباه میشه!

ممنون

----------


## ابوالفضل عباسی

با سلام
از کامپیوننت FireDac هم استفاده کن ببین همین مشکل رو داری؟
چون FireDac نیازی به این پروسیجر نیست،خودش برای Sort کردن propertice داره.

----------

