1

Konu: xmltocursor da hata

<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<malzemeler>
  <malzeme>
    <MALZEME_KAYIT_ID>5940869</MALZEME_KAYIT_ID>
    <MALZEME_KODU>150-13-03-03-14</MALZEME_KODU>
  </malzeme>
  <malzeme>
    <MALZEME_KAYIT_ID>59408699</MALZEME_KAYIT_ID>
    <MALZEME_KODU>150-13-03-03-15</MALZEME_KODU>
  </malzeme>
</malzemeler>

şeklinde bir xmlim var

"cursorxml" isminde bir cursor ve "MALZEME_KAYIT_ID N(12),MALZEME_KODU C(100)" alanları var

XMLTOCURSOR("c:\temp\pro.xml","cursorxml") 

şeklinde desemde  1435 parse error hatası veriyor bilgisi olan varmı acaba

Teşekkürler , kolay gelsin

2 Son düzenleyen, cetinbasoz (07.12.2009 21:49:25)

Re: xmltocursor da hata

Visual Fox Pro
XMLTOCURSOR("c:\temp\pro.xml","cursorxml")

burada:

"c:\temp\pro.xml" in bir dosya oldugunu belirtmen lazim - flag: 512
"cursorxml" icin mevcut cursor kullanilacaksa onu da belirtmen lazim - flag: 8192

Visual Fox Pro
XMLTOCURSOR("c:\temp\pro.xml","cursorxml", 512 + 8192)

Dosya yerine hafiza degiskeni kullanan sekliyle:

Visual Fox Pro
TEXT TO lcXML noshow

<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<malzemeler>
  <malzeme>
    <MALZEME_KAYIT_ID>5940869</MALZEME_KAYIT_ID>
    <MALZEME_KODU>150-13-03-03-14</MALZEME_KODU>
  </malzeme>
  <malzeme>
    <MALZEME_KAYIT_ID>59408699</MALZEME_KAYIT_ID>
    <MALZEME_KODU>150-13-03-03-15</MALZEME_KODU>
  </malzeme>
</malzemeler>
ENDTEXT
 
Create Cursor cursorxml (MALZEME_KAYIT_ID N(12),MALZEME_KODU C(100))
 
Xmltocursor(m.lcXML,"cursorxml",0+8192)
Browse

3

Re: xmltocursor da hata

Çok teşekkür ederim . dediğiniz gibiymiş smile

İyi geceler

4

Re: xmltocursor da hata

<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
  <malzemeler>
    <malzeme>
      <MALZEME_KAYIT_ID>5940869</MALZEME_KAYIT_ID>
      <MALZEME_KODU>150-13-03-03-14</MALZEME_KODU>
      <MALZEME_TANIMI>FAR ROLESİ</MALZEME_TANIMI>
      <MALZEME_TUR_ID>TK</MALZEME_TUR_ID>
      <OLCU_BIRIMI_ID>AD</OLCU_BIRIMI_ID>
      <STOK_KONTROLU>H</STOK_KONTROLU>
      <MIYAD_KONTROLU>H</MIYAD_KONTROLU>
      <AMORTISMAN_ORANI>20</AMORTISMAN_ORANI>
      <TASINIR_KODU>150-13-03-03-14</TASINIR_KODU>
      <OCAK_KONTROLU>H</OCAK_KONTROLU>
      <DEGISIKLIK_TARIHI>2007-01-01T00:00:00+02:00</DEGISIKLIK_TARIHI>
      <YENI_MALZEME_ID>200016402</YENI_MALZEME_ID>
      <GUNLEME_TARIHI>2009-07-10T16:59:46+03:00</GUNLEME_TARIHI>
    </malzeme>
    <malzeme>
      <MALZEME_KAYIT_ID>5940870</MALZEME_KAYIT_ID>
      <MALZEME_KODU>150-13-03-03-15</MALZEME_KODU>
      <MALZEME_TANIMI>AYNALAR</MALZEME_TANIMI>
      <MALZEME_TUR_ID>TK</MALZEME_TUR_ID>
      <OLCU_BIRIMI_ID>AD</OLCU_BIRIMI_ID>
      <STOK_KONTROLU>H</STOK_KONTROLU>
      <MIYAD_KONTROLU>H</MIYAD_KONTROLU>
      <AMORTISMAN_ORANI>20</AMORTISMAN_ORANI>
      <TASINIR_KODU>150-13-03-03-15</TASINIR_KODU>
      <OCAK_KONTROLU>H</OCAK_KONTROLU>
      <DEGISIKLIK_TARIHI>2007-01-01T00:00:00+02:00</DEGISIKLIK_TARIHI>
      <YENI_MALZEME_ID>200016403</YENI_MALZEME_ID>
      <GUNLEME_TARIHI>2009-07-10T16:59:46+03:00</GUNLEME_TARIHI>
    </malzeme>
  <malzemeler>

şeklinde xml dosyam var

XMLTOCURSOR("c:\temp\pro.xml","cursorxy",16+512)   yapsamda türkçe karakterler bozuk görünüyorlar.

Aslında benim elimde bunun gibi 50000 tane malzeme var ben bunu objeye çevirmeye çalıştığımda ck uzun sürdü. Bende xmltocursor kullanıp denemek istedim. Daha hızlı olacak gibi görünüyor ama iyi bir yolmu sizce

5

Re: xmltocursor da hata

Visual Fox Pro
Cursortoxml('CrsResult','myxml.xml',1,16+512,0,"1") && windows 1254 olarak yaratır


xml i olustururken yukardaki gibi yaratirsan

Visual Fox Pro
Xmltocursor('myxml.xml','CrsResult',512)


ile goruntulediginde sorun olmamasi gerek

6 Son düzenleyen, ugurlu2001 (08.12.2009 10:03:44)

Re: xmltocursor da hata

En üstte; encoding =  "Windows-1252" görünüyor, Türkçe nin windows encoding değeri ,1254.  Bunu bir dene istersen.

http://tr.wikipedia.org/wiki/Windows-1254

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

7

Re: xmltocursor da hata

Teşşekürler

Kolay gelsin

8

Re: xmltocursor da hata

<?xml version = "1.0" encoding="Windows-1252" standalone="yes"?>
<responce>
<sonuckodu>0000</sonuckodu>
<sonuc>işlem başarılı</sonuc>
  <malzemeler>
    <malzeme1>
      <MALZEME_KAYIT_ID>5940869</MALZEME_KAYIT_ID>
      <MALZEME_KODU>150-13-03-03-14</MALZEME_KODU>
      <MALZEME_TANIMI>FAR ROLESİ</MALZEME_TANIMI>
      <MALZEME_TUR_ID>TK</MALZEME_TUR_ID>
      <OLCU_BIRIMI_ID>AD</OLCU_BIRIMI_ID>
      <STOK_KONTROLU>H</STOK_KONTROLU>
      <MIYAD_KONTROLU>H</MIYAD_KONTROLU>
      <AMORTISMAN_ORANI>20</AMORTISMAN_ORANI>
      <TASINIR_KODU>150-13-03-03-14</TASINIR_KODU>
      <OCAK_KONTROLU>H</OCAK_KONTROLU>
      <DEGISIKLIK_TARIHI>2007-01-01T00:00:00+02:00</DEGISIKLIK_TARIHI>
      <YENI_MALZEME_ID>200016402</YENI_MALZEME_ID>
      <GUNLEME_TARIHI>2009-07-10T16:59:46+03:00</GUNLEME_TARIHI>
    </malzeme1>
    <malzeme2>
      <MALZEME_KAYIT_ID>5940870</MALZEME_KAYIT_ID>
      <MALZEME_KODU>150-13-03-03-15</MALZEME_KODU>
      <MALZEME_TANIMI>AYNALAR</MALZEME_TANIMI>
      <MALZEME_TUR_ID>TK</MALZEME_TUR_ID>
      <OLCU_BIRIMI_ID>AD</OLCU_BIRIMI_ID>
      <STOK_KONTROLU>H</STOK_KONTROLU>
      <MIYAD_KONTROLU>H</MIYAD_KONTROLU>
      <AMORTISMAN_ORANI>20</AMORTISMAN_ORANI>
      <TASINIR_KODU>150-13-03-03-15</TASINIR_KODU>
      <OCAK_KONTROLU>H</OCAK_KONTROLU>
      <DEGISIKLIK_TARIHI>2007-01-01T00:00:00+02:00</DEGISIKLIK_TARIHI>
      <YENI_MALZEME_ID>200016403</YENI_MALZEME_ID>
      <GUNLEME_TARIHI>2009-07-10T16:59:46+03:00</GUNLEME_TARIHI>
    </malzeme2>
  <malzemeler>
</responce>


Benim xml dosyam bu şekilde aslında. Bu dosyanın içeriğinde değişiklik yapmak istiyorum,

malzeme1 ve malzeme2 malzeme olacak ,
sonuc , sonuckodu taglarını kaldırmak istiyorum. Çünkü xmltocursor işlemini başka türlü çalıştıramadım.

Nasıl yapabilirim ?

Teşekkürler , kolay gelsin

9

Re: xmltocursor da hata

Hatice, XML ile hiç işim olmadığından pek ilgilenmedim, ancak sana yol göstermesi bakımından basit bir ipucu önerebilirim:

1. Elinde bir XML dosyan var. XML = DATA
2. XML datayı kolaylıkla Cursor e çevirebilirsin. XMLTOCURSOR(),
3. Artık elinde bir CURSOR olduğuna göre; Select ile istediğin field ları (TAG) yeni bir CURSOR e alabilirsin CURSORTOXML()

Sadece fikir jimnastiği yapıyorum...

Uğur
-------------------------------------------------------------------------------------------------------------
Hayat bir bisiklete binmek gibidir. Pedalı çevirmeye devam ettiğiniz sürece düşmezsiniz. Claude Peppeer
Kusuru söylenmeyen adam, ayıbını hüner sanır.  Türk Atasözü

10

Re: xmltocursor da hata

Teşekkür ederim. Çözdüm xmltocursor olayını xml de sorunlu kayıtlar düzelince düzeliyor ,
ama malzemelerden 50000 kayıt oldugunda cok yavas 20 dk gecti nerdeyse hala cursora ceviremiyor sad
Başka bir çözüm yolu varmıdır ?

11

Re: xmltocursor da hata

Visual Fox Pro
lcXML = filetostr("c:\temp\pro.xml")

lcXML = Strtran(Strtran(Strtran(Strtran(Strtran(m.lcXML, ;
  '<malzeme1>', '<malzeme>'),;
  '</malzeme1>','</malzeme>'),;
  '<malzeme2>', '<malzeme>'),;
  '</malzeme2>','</malzeme>'),;
  'Windows-1252','Windows-1254')
 
lcXML = Strextract(m.lcXML,'<?','?>',1,4) + ;
  STREXTRACT(m.lcXML, '<malzemeler>','</malzemeler>',1,4)
 
Xmltocursor(m.lcXML,'myCursor')
Browse

12

Re: xmltocursor da hata

Bunu XML'e alan kim? Kim derken programi kastediyorum ama galiba web servis. OLEDB ile dogrudan ve daha hizli alinabilir gibi.