Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Melhor maneira
Message
From
19/09/2002 03:26:20
 
 
To
18/09/2002 17:39:40
General information
Forum:
Visual FoxPro
Category:
XML, XSD
Title:
Miscellaneous
Thread ID:
00702041
Message ID:
00702138
Views:
16
This message has been marked as a message which has helped to the initial question of the thread.
>Preciso incluir utilizando um WebService 40.000 registros. Este WebService tem o seguinte método exposto: AddRegis(lcDadosXML), onde lcDadosXML contém o(s) registro(s) a serem incluídos. Tentei mandar tudo (os 40.000) de uma vez, mas o arquivo XML deve ter ficado muito grande, pois obtive a seguinte mensagem: Maximum request lenght exceeded (a propósito, alguém sabe qual é este limite?) Então, terei que mandar aos poucos, eu poderia fazer uma rotina que fosse buscando as ocorrências em grupos pequenos de registros, transformando em XML (CURSORTOXML) e enviando, mas prefiro discutir algumas coisas aqui antes:
>Se eu tiver um cursor com vários registros, como eu poderia criar uma string XML de um único registro? Tem alguma maneira simples?

O código seguinte pega na tabela da área de trabalho corrente e cria documentos XML dimensionados pela variável m.lnStep:
* informação sobre a tabela aberta
m.lnArea = SELECT(0)
DIMENSION m.laStru(1)
AFIELDS(m.laStru)

* define quantos registos vão entrar no documento XML (1..n)
m.lnStep = 10

* cria os documentos até todos os registos da tabela de origem terem sido XMLizados
FOR m.lnStart = 1 TO RECCOUNT(m.lnArea) STEP m.lnStep

  * (re)cria cursor a partir da estrutura da tabela origem
  CREATE CURSOR curExporter FROM ARRAY m.laStru
  * copia os registos para cursor de destino
  APPEND FROM (DBF(m.lnArea)) FOR BETWEEN(RECNO(),m.lnStart,m.lnStart + m.lnStep -1)

  * e cria o documento XML
  m.lcOutXML = ADDBS(SYS(2023))+SYS(2015)+".xml"
  CURSORTOXML("curExporter",m.lcOutXML,1,512)

  * pode pegar-se em m.lcOutXML e processá-lo como necessário
  * no final ERASE (m.lcOutXML)

ENDFOR

* tidy up
IF USED("curExporter")
  USE IN curExporter
ENDIF
----------------------------------
António Tavares Lopes
Previous
Reply
Map
View

Click here to load this message in the networking platform