Delphi Can
soap uygulamaları kayıt çekme - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: soap uygulamaları kayıt çekme (/showthread.php?tid=682)



soap uygulamaları kayıt çekme - goabdullah - 18-02-2017

merhaba arkadaşlar,

Bazı soap servislerinden kayıt çektiğinizde çok fazla kayıt dönmekte örneğin 1000 satır.
dönen 1000 satırlık bir kaydı nasıl 100 lük paketler halinde çekebiliriz.

Örneğin bir listview düşünün bu listview üzerinde önce 100 sonra pullrefresh yapıldığında ilave olarak 2. 100 ... devam eden bir yapıyı nasıl kurgulayabiliriz.

Hoşçakalın


Cvp: soap uygulamaları kayıt çekme - vkamadan - 20-02-2017

(18-02-2017, Saat: 16:50)goabdullah Adlı Kullanıcıdan Alıntı: merhaba arkadaşlar,

Bazı soap servislerinden kayıt çektiğinizde çok fazla kayıt dönmekte örneğin 1000 satır.
dönen 1000 satırlık bir kaydı nasıl 100 lük paketler halinde çekebiliriz.

Örneğin bir listview düşünün bu listview üzerinde önce 100 sonra pullrefresh yapıldığında ilave olarak 2. 100 ... devam eden bir yapıyı nasıl kurgulayabiliriz.

Hoşçakalın

Merhabalar, 
En azından Delphi de SOAP Server uygulamaları için bir sunucu yaşam döngüsü olmadığını söyleyebilirim soap metodunuz çağrıldığında sunucuda çalıştırılır çalışması bitince de o iş artık biter yani bir oturum takibi varsayılanda yoktur sizin inşaa etmeniz gerekir, hâl böyle olunca da işler biraz zahmetli olmaya başlar, misal sizin ihtiyacınız olan yapı için mutlaka önce bir oturum yönetimi kurmalısınız özetlemek gerekirse  ;
 - bir metodunuz oturum açmak için olmalı dilerseniz kullanıcı denetimi de eklersiniz servislerinizi kullanacak olan kişi öncelikle oturum açma metodunu çağırıp başarılı olduğu durumda bir sessionId / token bilgisi dönersiniz bunu da sunucu tarafında bir veritabanı tablosunda tutarsınız,
 - diğer metodlarınız asıl iş için alacağı parametrelere ek bu sessionid/token değerinide alır dolayısıyla metodlarınız arası çağırımlarda halen aynı oturumun geçerli olup olmadığını kontrol edebilir ihtiyaca göre oturum bilgisi tuttuğunuz tabloda ek bilgilerde tutarak metodlar arası iletişimde kurabilirsiniz.
- sorgu sonucu dönen kayıtları geçici bir tabloya ilgili sessionId anahtar alanıyla kaydeder, sonraki çağırımlarda hangi kayıtları döneceğinizi takip edersiniz, MySQL bu iş için MSSQL e göre çok daha basit kullanımlı bir yöntem sunar "LIMIT"  sorgu sonucu dönen kayıtların hangi satır aralığında olanlarını döneceğini bildirebiliyorsunuz.

Kabaca bu gibi şeyler yapmanız gerekir.

Soruyu yeniden okuyunca yanlış anlamış olabileceğimi fark ettik düzeltmek istiyorum ;
Sanırım siz SOAP servisini sunan değil kullanan tarafsınız, bu durumda da servis çağrı sonucu dçönen kaydı geçici bir tablo da tutarak bahsettiğim LIMIT ve benzeri fonksiyolarla sayfalamayı kendinizin inaşşa etmesi gerekecektir. bildiğim kadarıyla bu iş için client tarafında da hazır birşeyler yok maalesef.


soap uygulamaları kayıt çekme - SimaWB - 20-02-2017

Memory table tarzı çözümler kullanılabilir.
TClientDataSet, memory-dataset modunda kullanılabiliyor bildiğim kadarıyla.


soap uygulamaları kayıt çekme - goabdullah - 20-02-2017

Vakit ayırarak verdiğiniz cevap için teşekkür ederim.
Evet biz client tarafıyız dediğiniz gibi geçici bir tabloda çekilen kayıtları takip edip sonraki sorgularıda bu doğrultuda kurgulayabilirsek sorun çözülecek gibi duruyor.

Tekrar teşekkürler, saygılar.


soap uygulamaları kayıt çekme - enes6635 - 03-11-2018

bu konu hakkında çözüme ulaştınız mı?
yani soap servisini nasıl kullanıyoruz örnek var mıdır ?


soap uygulamaları kayıt çekme - mustafaozpinar - 04-11-2018

Sunucudan çekilecek kayıtların sayısını, ancak SOAP sunucu destekliyorsa verebilirsiniz. Aksi halde yanıt olarak tüm kayıtlar size gelir, siz lokalde kendiniz onun sayfalamasını yapmak zorundasınız, örneğin Memory Dataset ya da TClientDataset kullanarak. Ancak elbette bu daha kolay olan kısımdır. Eğer client tarafı windows uygulaması değil de bir web uygulamasıysa, sayfalama nedeniyle aynı kayıtları tekrar tekrar çekip ağı gereksiz bilgi akışıyla doldurmak yerine ya tüm kayıtları tek sayfada göstermek, ya da Java Scriptle bu sayfalamayı client üzerinde yaptırtmanız gerekir.


Cvp: soap uygulamaları kayıt çekme - enes6635 - 04-11-2018

dönecek bilgi zaten sunucu tarafından kısıtlanmış şekilde bildiğim kadarıyla