Search  
Wednesday, May 23, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Visual FoxPro in general  Parametru de di...
 Parametru de dimensiuni mari
 
 6/8/2011 8:16:00 PM
User is offlineRomeo
526 posts
1st


Parametru de dimensiuni mari
 (N/A) Modified By Romeo  on 6/8/2011 8:16:43 PM)

Vreau sa trasmit unei metode (dintr-un serviciu web vfp) un parametru de dimensiuni mari: un xml de 4 ko sa zicem. Din cate stiu, intr-un timp dimensiunea maxima accepta de o variabila era de maxin 255 bytes.

Daca imi definesc un obiect agent toAgent si fac o atribuire toAgment.p1=cursortoxml(...), documentatia garanteaza ca parametrul astfel construit ajunge cu bine la destinatie ? Aici vreau sa transform xml-ul in cursor.


Slava Tatalui si Fiului si Sfantului Duh si acum si pururea si-n vecii vecilor. Amin.
 6/8/2011 10:24:25 PM
User is offlineDumitru
172 posts
5th


Re: Parametru de dimensiuni mari
 (N/A) Modified By Dumitru  on 6/8/2011 10:26:26 PM)
Vezi http://msdn.microsoft.com/en-us/library/3kfd3hw9%28v=vs.80%29.aspx

Maximum length of a string literal = 255
Maximum # of characters per character string or memory variable: 16,777,184

Adica daca incerci
varStr = "ABC.... " merge pana la max. 255 de caractere
dar poti concatena siruri intr-o singura variabila care poate ajunge pana la 16M

FILETOSTR() incarca intr-o variabila string tot fisierul, poti incerca sa vezi cat duce, o sa fi uimit.
 6/9/2011 6:55:21 PM
User is offlineRomeo
526 posts
1st


Re: Parametru de dimensiuni mari
 (N/A)
Sa inteleg ca pot gandi un varStr (de pana la 255 bytes) ca pe un fel de obiect, caruia ii pot aplica functiile STR(), SUBSTR().... si ca in cazul in care depaseste aceasta dimensiune merg doar functiile din clasa filetostr() ?
Slava Tatalui si Fiului si Sfantului Duh si acum si pururea si-n vecii vecilor. Amin.
 6/9/2011 7:20:10 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: Parametru de dimensiuni mari
 (N/A) Modified By Grigore Dolghin  on 6/9/2011 7:31:22 PM)
Nu. Intelege ca o variabila de tip text poate avea 16MB si ca poti sa-i aplici orice functie doresti. Nu stiu de unde ai scos faza cu cei 255 de octeti (si nu e prima data cand o zici).

Limitele astea sunt documentate foarte clar in Help, in sectiunea Visual FoxPro System Capacities. Limita de 255 de caractere se aplica la "Maximum length of a string literal". Adica poti sa definesti o variabila string, in cod, DINTR-O SINGURA BUCATA, de max 255 de caractere, dar asta nu se aplica variabilei insasi, ci stringului:

Linia asta merge perfect:
lcString = SPACE(1000)

Asta, in schimb, da eroare:
lcString = "mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm (de 256 de ori)"

In schimb merge foarte bine asa:
lcString = "mmmmmmmmmmmmmmmmmm (de 200 de ori)"
lcString = lcString + "mmmmmmmmmmmmmmm de alte 200 de ori")
si obtii o variabila cu lungimea de 400 de octeti.

Si mai merge si asa:
lcString = "mmmmmmmmmmmmmm de 200 de ori" + "mmmmmmmmmmmmmmmmm de alte 200 de ori" + "mmmmmmmmmmmmmm de alte 200 de ori", etc, pana cand ajungi la limita maxima a unei linii de cod (care, daca nu ma insel, e 8192 de caractere. Oricum, e documentata si aia.)

Incearca sa vezi diferenta: eroarea nu e din cauza variabilei, ci din cauza sirului din dreapta.


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
  Visual FoxPro  Visual FoxPro in general  Parametru de di...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement