Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-07-2004
RobertoAmores RobertoAmores is offline
Miembro
 
Registrado: jul 2004
Posts: 10
Poder: 0
RobertoAmores Va por buen camino
Tablas XML desde Delphi

Necesito leer tablas XML con Delphi, algunas para trabajar
con los datos y otras para guardar los registros en InterBase. He estado
buscando información pero no encuentro mucho, tengo el "Delphi developer's
guide to XML" pero no lo he terminado de mirar. También hay muchos hilos que hablan de MyBase, tanto aqui en ClubDelphi como por los grupos de trabajo de google, pero en ningun lado he encontrado nada para poder trabajar con MyBase, solo en http://www2.wjjsoft.com/download.html he podido encontrar algo, pero son muchas descargas y no se cual es la que me conviene, ni siquiera si alguna de ellas realmente puede ayudarme para hacer lo que pretendo.

Podrían ayudarme, necesito terminar eso para un proyecto, y estoy bloqueado en ese punto, por favorrrrrrrrrrrr. Y muchas gracias por anticipado.

¿Sabeis algo sobre MyBase? O si se os ocurriera alguna otra alternativa, pues la escucharé.
Responder Con Cita
  #2  
Antiguo 22-07-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 15
marto Va por buen camino
Wop!

Dependiendo de la versión de Delphi con la que trabajes tienes distintas opciones. Si es una versión 6 o superior, Enterprise o Arquitect, tienes una suite de componentes TXML... que te irán de maravilla. Si, como yo, cuentas con versiones anteriores o inferiores (yo trabajo con D6 Professional) tendrás qeu hacer algo más "manual". Yo me importo la MSXML.dll, que genera un .pas con las interfaces que necesitas, y trabajo con ellas. Las ventajas son que si te acostumbras a ellas las usarás en todos los entornos de M$ (por ejemplo desde js en IE) y que el parser es bastante rápido. Además en la msdn encontrarás una extensa documentación.

Sobre lo de MyBase, he leído algo (esencialmente el capítulo dedicado de La Cara Oculta de Delphi 6), pero nunca he trabajado con ella... creo que fue un chasco más que otra cosa
__________________
E pur si muove
Responder Con Cita
  #3  
Antiguo 22-07-2004
Avatar de marcsc
marcsc marcsc is offline
Miembro
 
Registrado: may 2003
Ubicación: Girona
Posts: 577
Poder: 15
marcsc Va por buen camino
Hola, qué tal?

A ver te cuento las cosillas que yo sé...

Ante todo, una cosa muy importante, MyBase solo te servirá en entornos monousuario, es una restricción que tiene.

En segundo lugar, el procedimiento a utilizar dependerá de la estructura que tengan tus ficheros XML.

Básicamente, MyBase te permite cargar ficheros XML y trabajar con ellos como si fuesen un un DataSet. Concretamente el componente a utilizar es el ClientDataSet. Ahora bien, en un cds solamente puedes cargar ficheros XML que cumplan con el formato Borland llamado DataPacket. Imagino que tus XML NO siguen este formato, por tanto lo que tendrias que hacer seria adaptarlos para DataPacket. Necesitas definir dos transformaciones: Una para pasar de XML plano a Data Packet y otra para pasar de Data Packet a XML plano. La herramienta XML Mapper que viene con Delphi sirve para definir estas transformaciones.

Verás que es muy sencillo utilizar el XML Mapper, simplemente cargas en el árbol de la izquierda el fichero plano, seleccionas todos sus nodos y le das a la opcción de menú

Create->Data Packet from XML.

Ahora debes guardar esta transformación. Verás que las transformaciones son ficheros XML con la extensión xtr. Una vez hecho esto te interesará, imagino, definir la transformación inversa, para ello utiliza la opción

Create->XML from Data Packet.

Y guarda la transformación con otro nombre.

Vale, todo esto es mucho rollo, ahora aclaremos un poco las cosas...

Nosotros tenemos un fichero plano XML, sabemos que tenemos que transformarlo en un XML Data Packet y luego tenemos que cargarlo en un ClientDataSet.

Existe un componente que hace esta transformación y que permite pasar estos datos al DataSet. El componente se llama TXMLTransformProvider.

Este componente tiene 3 propiedades:

- XMLDataFile: La ruta de tu fichero XML plano.
- XMLTransformRead, donde le tienes que especificar la ruta del fichero de transformación xtr para convertir a Data Packet.
- XMLTransformWrite, donde le especificas el fichero de transformación para convertir de Data Packet a XML plano.

De alguna manera lo que hace este componente es decir al ClientDataSet cómo debe transformar tus datos en Data Packet cuando haces consultas para poder cargarlos en un DataSet, y como pasar de la caché del DataSet a XML plano cuando haces inserciones/actualizaciones/borrados.

Una vez tienes hecho esto, ya puedes agregar un componente TClientDataSet y especificar en su propiedad ProviderName el nombre del componente TXMLTransformProvider.

Ahora ya deberías poder trabajar con el ClientDataSet de manera normal, es decir agregar los campos, navegar, etc.

Esto es lo básico, para que puedas hacer la conexión, no te doy detalles más concretos porqué supongo que ya podrás investigar y encontrarás referencias en tu libro "Delphi developer's guide to XML".

De todos modos si tienes alguna duda, pregunta por aquí a ver si te podemos dar un cable.

Espero que te sirva de ayuda mi post, aunque soy consciente que está un poco desordenado.

Suerte!

Última edición por marcsc fecha: 22-07-2004 a las 17:36:08.
Responder Con Cita
  #4  
Antiguo 22-07-2004
Gonzalo Giraldo Gonzalo Giraldo is offline
Registrado
 
Registrado: jul 2004
Ubicación: Rio de Janeiro
Posts: 2
Poder: 0
Gonzalo Giraldo Va por buen camino
Post XMLDataSet

Mira este componente que acabo de encontrar talvez te puede ayudar, se llama XMLDataset y lo encuentras en este Site http://www.arayan.com/basri/

No lo he probado aún, pero me cuentas como te fue..

Tengo un problema y es que no he podido leer en Delphi 7 un XML que es generado por un Dataset de .NET, detallando rapidamente es un XML que me devuelve un WebService de .NET y quiero trabarlo en una Grilla para manipular los datos..., si no encuentro nada tendré que hacerlo.. desde cero...

Buena suerte
Responder Con Cita
  #5  
Antiguo 23-07-2004
RobertoAmores RobertoAmores is offline
Miembro
 
Registrado: jul 2004
Posts: 10
Poder: 0
RobertoAmores Va por buen camino
Muchas gracias por la rapidez, voy a ver que puedo hacer y os mantengo informados. Chao.
Responder Con Cita
  #6  
Antiguo 06-07-2010
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 352
Poder: 11
Cañones Va por buen camino
Cita:
Empezado por marcsc Ver Mensaje
Hola, qué tal?

A ver te cuento las cosillas que yo sé...
Gracias, ya me voy a poner a investigar.
Saludos.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:49:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi