Merhabalar kardeşler,
XML konusunda daha önce çalışmadım; o yüzden önce danışmak istedim. Delphi ile bir uygulama geliştirip bunu Internet'teki bazı XML web servisleriyle konuşturmak istiyorum. O yüzden, yerel veritabanı olarak ta XML kullanmak daha uygun geliyor bana. Çünkü web servisleriyle iki yönlü veri alış-verişi olacak ve bunlar hep XML formatında olacak.
Şimdi, XML ile çalışan varsa, bu işi en kısa yoldan nasıl yapabilirim, yardımcı olurlarsa sevinirim.
Selamlar.
Delphi ile XML dosyalarında çalışmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
xml parse işlemi için viewtopic.php?p=15083#15083
kurunca içinde iki tane güzel xml editör örneği var.
xml tablolarda dolaşmak ve değiştirmek için @şair amcanın clientdataset makalesi (client data set ile xml kaydedebiliyorsunuz) viewtopic.php?p=370#370
birde easysoft un xml-odbc driveri var. onuda netten bilgi alabilrsiniz. 30 günlük demosu mevcut.
ayrıca
xml 
kurunca içinde iki tane güzel xml editör örneği var.
xml tablolarda dolaşmak ve değiştirmek için @şair amcanın clientdataset makalesi (client data set ile xml kaydedebiliyorsunuz) viewtopic.php?p=370#370
birde easysoft un xml-odbc driveri var. onuda netten bilgi alabilrsiniz. 30 günlük demosu mevcut.
ayrıca


.-.-.-.-.-.-.-. ^_^
ClientdataSet ??
bahsettiğiniz makalede @şair amca gayet güzel anlatmış. Bilmiyorum bir off-site durumunda mıyım; ama bu ClientDataSet ile bir XML dosyasına yazdığımızda bu runtime'da çalışıyormuş gibi görünüyor. Fiziksel bir yazma işlemi yok...
Uygulamayı kapattıktan sonra ilgili XML dosyasında verileri göremiyoruz. Hatta run-time'da bile
ile griddeki kayıtları xml dosyaya yazmazsak, yine uygulama kapatıldıktan sonra dosyada veriler olmuyor.
Şimdi, hadi SaveToFile ile verileri xml dosyaya yazdık diyelim; ama uygulama yeniden açıldığında XML dosyasındaki bilgileri gride nasıl getireceğiz?
Uygulamayı kapattıktan sonra ilgili XML dosyasında verileri göremiyoruz. Hatta run-time'da bile
Kod: Tümünü seç
ClientDataSet1.SaveToFile('DosyaAdi', dfXml);
Şimdi, hadi SaveToFile ile verileri xml dosyaya yazdık diyelim; ama uygulama yeniden açıldığında XML dosyasındaki bilgileri gride nasıl getireceğiz?

Kod: Tümünü seç
procedure TForm1.Button2Click(Sender: TObject);
begin
clientdataset1.SaveToFile('C:\a.xml',dfXML);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
clientdataset2.LoadFromFile('c:\a.xml');
clientdataset2.Active:=TRUE;
end;

.-.-.-.-.-.-.-. ^_^
Bu sefer de....
Cevap geldiği sıralarda ben de aynı şeyi deniyordum; LoadFromFile ve SaveToFile ile işler tamam, gayet güzel...
Ancak galiba Midas.dll'deki bug yüzünden SaveToFile fonksiyonu <params> XML tagını doğru yazmıyor. Bu nedenle LoadFromFile ile xml dosyasını çağırdığımızda hata veriyor.
Sorun şu, SaveToFile ile xml dosyası güncellendiğinde, <params> </param> yazmak yerine <params/> </param> yazıyor. XML dosyasını edit edip buradaki fazladan '/' çıkartıldığında, artık LoadFromFile çalışıyor; ta ki ikinci bi SaveToFile ile xml dosyasını update edene kadar.
Bazı forumlarda bunun midas.dll'den kaynaklandığı yazıyor, oradayım, hala araştırıyorum.
Ben Delphi 6 Update Package 2 ve XP Pro kullanıyorum, belki başka versiyonlarda bu problem yaşanmıyordur....
Ancak galiba Midas.dll'deki bug yüzünden SaveToFile fonksiyonu <params> XML tagını doğru yazmıyor. Bu nedenle LoadFromFile ile xml dosyasını çağırdığımızda hata veriyor.
Sorun şu, SaveToFile ile xml dosyası güncellendiğinde, <params> </param> yazmak yerine <params/> </param> yazıyor. XML dosyasını edit edip buradaki fazladan '/' çıkartıldığında, artık LoadFromFile çalışıyor; ta ki ikinci bi SaveToFile ile xml dosyasını update edene kadar.
Bazı forumlarda bunun midas.dll'den kaynaklandığı yazıyor, oradayım, hala araştırıyorum.
Ben Delphi 6 Update Package 2 ve XP Pro kullanıyorum, belki başka versiyonlarda bu problem yaşanmıyordur....
selam delphi 7 de bu problem yok. tekrar denedim şimdi.
araştırma sonuçlarını burayada atarsan seviniriz
araştırma sonuçlarını burayada atarsan seviniriz

.-.-.-.-.-.-.-. ^_^
Çözüld...
Delphi 7.1 ile gelen Midas.dll'i kopyalayıp RegSvr32 ile kaydedince sorun çözüldü. Ama enteresan, midas.dll'i sadece kopyalamak yeterli olmuyor, Regsvr32 şart.
Gerektiğinde, http://www.distribucon.com/download/midas.dll'den indirebilirsiniz.

Gerektiğinde, http://www.distribucon.com/download/midas.dll'den indirebilirsiniz.