Web servisden çekilen veri ile dataset doldurmak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Merhaba üstadlarım. C# ile yazılmış bir web servisden metodları çekebiliyor insert yapan metodla kayıt yapabiliyorum fakat select query döndüren bir methodla aldığım sonucu gridde gösterebilmem için bir datasete doldurmam gerek ve konu hakkında anlayabileceğim bir açıklama bulamadım. Yardımcı olursanız sevinirim.


Selam ve dua ile...
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen orhancc »

Selectten dönen kayıtların türü nedir? Eğer IQueryable, IEnumerable veya IList tarzında birşey dönüyorsa döngüye sokup hepsini okuyabilirsin.
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Hocam Sql dataya bağlantı kurup marka isimli bir tablodan sadece marka alanını çekiyorum. HTTPRIO kullanmayı denedim daha değişik hatalar alıyorum. XML Mapping deneyeceğim fakat bildiğiniz daha kolay bir yöntem olursa mutlu olurum. Mesela döngüye nasıl alabilirim. Saygılar.
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Xml mapping ile veri almayı başardım. Vkamadan hocamın viewtopic.php?f=19&t=20424&start=0 makalesi çok yardımcı oldu. Ama bu aşamadan sonra uzak sql veritabanındaki prosedüre parametre gönderip cevabı almam gerekiyor webservis ile. Bu konuda tavsiyeniz varmı?
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen orhancc »

Servis Tarafındaki örnek kod

Kod: Tümünü seç

public DataTable GetVehicleByRecno(int recno, int userno)
        {
            var ac = new AracController();
            return ac.GetVehicleByRecno(recno, userno);
        }
İstemci Tarafındaki Kod

Kod: Tümünü seç

 private void GetVehicleByRecno()
        {
            var c = new Service1Client();
            DataTable dt = c.GetVehicleByRecno(22,145);

// bu şekilde döngüye sokabilirsin
            foreach (DataRow row in dt.Rows)
            {
                var enlem = row["enlem"];
                var boylam = row["boylam"];
            }
//bu şekilde direk gride bağlayabilirsin
            dataGridView1.DataSource = dt;
            dataGridView1.AutoGenerateColumns = true;
        }
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Hızlı ve detaylı cevabınız için teşekkürler. Kadıköyden pendik tarafına yolunuz düşerse bi çayımı içmeye muhakkak beklerim hocam :)
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen orhancc »

İnşallah :) Küçükyalıya gelirsen haber ver.
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Tabiki :)
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Orhan hocam bi sorum daha olacak.
Forma bir clientdataset ve httprio bileşeni koydum. URL olarak webservisin urlsini verdim. Bir adet xmltransformprovider koydum ve webservisten gelen xmli map edip xtr dosyasını read olayından seçtim. clientdataseti gride bağladım datasource ile.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  (HTTPRIO1 as Service1Soap).Table2Dt('MARKA','','','AKS_MARKA');
end;

Kod: Tümünü seç

procedure TForm1.HTTPRIO1AfterExecute(const MethodName: String;
  SOAPResponse: TStream);
var
  XMLDoc: IXMLDocument;
begin
  SOAPResponse.Position := 0;
  Memo1.Lines.LoadFromStream(SOAPResponse);
  ClientDataset1.Active := FALSE;
  SOAPResponse.Position := 0;
  XMLDoc := NewXMLDocument;
  XMLDoc.Encoding := SUTF8;
  SOAPResponse.Position := 0;
  XMLDoc.LoadFromStream(SOAPResponse);
  XMLTransformProvider1.TransformRead.SourceXmlDocument := XMLDoc.GetDOMDocument;
  ClientDataset1.Active := TRUE;
end;
şeklinde çalıştırdığımda xmlden gride kolon başlığı geliyor fakat kayıtlar gelmiyor. Sebebi hakkında bir fikriniz varmı acaba? Bu zamana kadar local çalışıp hiç webservice ve xml ile uğraşmadığım için acemiliğim fazla :)
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen unicorn64 »

Table2Dt metodu ne türde değer döndürüyor? afterExecute ile uğraşmadan dönen değeri kullanabilirsiniz belki?
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Kod: Tümünü seç

 public DataTable Table2Dt(string _secilecek,string _siralama,string _filt,string _tblADI)
        {
            DataTable dt = new DataTable("table1");
            string Sorgu = "",_ek1="",_ek2="";
            if (_filt.Length > 0) _ek1 = " where "+_filt;
            if (_siralama.Length > 0) _ek2 = " order by "+_siralama;
            Sorgu = "select " + _secilecek + " from " + _tblADI + " " + _ek1 + " " + _ek2;
            using (SqlConnection cnn = new SqlConnection(SqlStr))
            {
                try
                {
                    SqlDataAdapter da = new SqlDataAdapter(Sorgu, cnn);
                    da.Fill(dt);
                }
                catch { }
            }
            return dt;
        }
Metod burda hocam. Benim devreler bu saatte iyice yandı :)
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen orhancc »

Servisten veri gelmiyor olabilir mi ?
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

Hocam denedik visual studioda kayıt geliyor. Ama bir türlü delphide çekemedim. XML mapper ile de denedim ama Marka alanı boş geliyor.
sirdragonblack
Üye
Mesajlar: 32
Kayıt: 04 Tem 2009 06:20
Konum: İstanbul

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen sirdragonblack »

XML Mapper ile transform oluştururken alanlar boş geliyor şimdi de.

Resim

Sorunun tamamen bende olduğunu kabul ediyorum ama nerde hata yaptığımı bir türlü anlamadım. :(
varyemez
Üye
Mesajlar: 262
Kayıt: 01 Oca 2009 11:00
Konum: Bursa
İletişim:

Re: Web servisden çekilen veri ile dataset doldurmak.

Mesaj gönderen varyemez »

Şu projeyi zipleyip bana mail atabilirmisin. Bir de ben bakayım.. tabii sakıncası yoksa.
Cevapla