استغلال Web Service من خلال SOAP في دلفي
#8
الطريقة الثانية وبستعمال مكوناة INDY

في هذه الطريقة لا تعتبر خدمت الواب حسب الشرح السابق لكل من SAOP بكن بما انها تستعمل ملفات اكسمل + http فيمكن ان نحكم عنها بانها خدمت ويب كيف ذللك
ومتى نحتاج هذه الطريقة مثلا عندك برنا مجين مختلفين التطبيق الاول يقوم بعمليات الاضافة التغيير في القاعدة و البرنامج الثاني نجد به الة حاسبة تقوم باجراء الكثيير من الحسابات على المعطيات التي في القاعدة و لترجع لنا نتيجة في وقت عير معلوم اى حسب نوع العملية
يطلب منك كمبرمج ان تعرض ما يقوم به التطبيق الثاني في التطبق الاول
كيف تعمل
الحل
نضع ملف او جدول ثم استرحع المعلومات من واجهة التطبيق 2 و في التطبيق 2 اضع timer تعرض محتوى الجدول
نعم صحيح ولكن عندي افضل لاني استعمل الذاكرة و لا اخش تلف الملف او فقذ معلومة ما
اضيف خدمت الى التطبيق 2 ومن التطبق 1 اعرض نتيجتها
كيف ذلك
كود :
http://www.arabteam2000-forum.com/uploads/monthly_06_2009/post-1034-1246186368.jpg
برمجة الخدمة و الخادم

في هذا المثال سننشأ خادم ويب جديد ليس له علاقة ب iis او الاباش وليكن على المنفذ8081
العنوان هو
كود :
http://localhost:8081/
بعد وضع المكونات كما في الصورة الخاصة بالخادم ولال ننسا كتابى المنفد 8081 في الخاصية
كود :
[b]
[/b]defaultport :8081 للمكون IdHTTPServer1

الهدف من هذا الكود هو قراءة الرقم الممر في url
البحث في القاعدة
ارسالة النتيجة في شكل اكسمل

كود :
procedure TForm3.IdHTTPServer1CommandGet(AContext:  TIdContext;ARequestInfo: TIdHTTPRequestInfo
; AResponseInfo:  TIdHTTPResponseInfo);
var
   vid,str  : string;
   vQuery :TADOQuery;
begin
str:='';
  if  ARequestInfo.Params.Count >0 then
      vid:=ARequestInfo.Params.Values['id'];
      TRY
      vQuery := TADOQuery.Create(nil);
      vQuery.Connection:=ADOConnection1;
      vQuery.SQL.Text := FORMAT([color= #0000ff;]'SELECT * FROM [table] WHERE id = %S'[/color],[vid]);
          TRY
           vQuery.Open;
            str:= ' '+
            ' '+
            ' '+
            ' '+
                '   '+
                '  '+
                '  '+
            ' '+
            ' '+
            ' ';
            while not vQuery.Eof do
            begin
            str:= str + FORMAT(
                          ' ',[vQuery.FieldByName('id').AsString,
                                 vQuery.FieldByName('name').AsString,
                                 vQuery.FieldByName('not').AsString
                                ]
                          );
             vQuery.Next;
            end;
            str:= str +' ';
          EXCEPT ON E:Exception DO
           ShowMessage(e.Message);
          END;
      FINALLY
        AResponseInfo.ContentText:=str;
        vQuery.close;
        vQuery.Free;
     END;
end;

بهذا انتهينا من برمجة الخادم و الخدمت
لواردنا عرض النتيجة لابدا ان نقوم يقراءة الاكسمال الناتج وعرضه في شكل html في المتصفح مثلا
وضعها فيclientdataset


الملفات المرفقة
.rar   indy.rar (الحجم : 41.52 KB / التحميلات : 28)
الرد


الردود في هذا الموضوع
استغلال Web Service من خلال SOAP في دلفي - بواسطة زكيري عبدالعالي - 27-06-2011, 08:34 AM

التنقل السريع :


مستخدمين يتصفحوا هذا الموضوع: 1 ضيف