Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
235
Assunto : ASP
Titulo: Como recuperar dados com XML AUTO do SQL 2000

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



O recurso de recuperação de dados já formatados como XML a partir do SQL 2000 é extremamente útil para programadores web. O XML já vem pronto, podendo ser utilizado em uma ilha de dados ou com formatação XSL .

Qualquer programador pode imaginar que basta executar a instrução SQL e imprimir o conteúdo do único campo retornado na página para desta forma gerar o XML. Mas não é tão simples.

O campo em questão é um campo do tipo TEXT, que precisa ser tratado como um stream. Isso faz com que seja necessário recupera-lo de uma forma especial :

O objeto command do ADO possui uma propriedade (propriedade dinamica) chamada "output stream". Podemos atribuir um objeto stream na propriedade "output stream" e pedir que o execute, ao invés de retornar um recordset, retorne um stream neste objeto. Precisaremos também passar um parametro a mais para o execute, que será &H00000400 .

Além disso outros 2 truques devem ser observados :
A) O nome da tabela vira nome dos nós filhos ao root (representando 1 registro). Eventualmente ele precisará ser mascarado no SQL para ficar correto

B) O XML AUTO não gera o root, nós temos que gera-lo.

Veja um exemplo (em ASP) :


dim cn,rs,str
set cn=createobject("adodb.connection")
set cmd=createobject("adodb.command")
set str=createobject("adodb.stream")


str.open

response.contenttype="text/xml"

cn.open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=."


cmd.commandtext="Select * from authors author for xml auto,elements"
set cmd.activeconnection=cn
cmd.properties("output stream").value=str

cmd.execute ,, &H00000400

cn.close
str.position=0

response.write("<authors>")
response.write(str.readtext)
response.write("</authors>")

str.close
set cn=nothing
set cmd=nothing
set str=nothing


Ainda assim essa solução pode gerar problemas de performance. Mais detalhes sobre questões de performance com XML AUTO podem ser encontrados em http://support.microsoft.com/support/kb/articles/Q280/0/67.ASP

Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br