PDA

View Full Version : مشکل StoredProcedure در دلفی 10.1 با UniDac



tazarvmmr
شنبه 03 مهر 1395, 02:22 صبح
سلام به همگی
در 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 فقط برای این هست که بفهمم کجاها داره اشتباه میشه!

ممنون

ابوالفضل عباسی
دوشنبه 05 مهر 1395, 09:50 صبح
با سلام
از کامپیوننت FireDac هم استفاده کن ببین همین مشکل رو داری؟
چون FireDac نیازی به این پروسیجر نیست،خودش برای Sort کردن propertice داره.