Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda urgente con importacion XML

Estas en el tema de Ayuda urgente con importacion XML en el foro de Programación General en Foros del Web. Hola a todos os explico: Tengo un archivo XML que lo quiero exportar dos tablas de SQL server. He diseñado un fichero xml para relacionar ...
  #1 (permalink)  
Antiguo 14/08/2007, 05:50
 
Fecha de Ingreso: abril-2007
Mensajes: 12
Antigüedad: 17 años
Puntos: 1
Ayuda urgente con importacion XML

Hola a todos os explico:

Tengo un archivo XML que lo quiero exportar dos tablas de SQL server. He diseñado un fichero xml para relacionar el fichero xml con la tabla en la que deseo guardar el archivo y un visual basic script (vbs). Que se conecte y lo guarde en la base de datos. Bueno el problema es que no consigo hacerlo funcionar bien del todo. Con el ejemplo de: http://support.microsoft.com/kb/316005/es lo he conseguido hacer funcionar pero con el archivo xml que tengo que es mas complejo no soy capaz.
Os pongo el codigo de cada cosa.

Codigo fichero XML:
Código HTML:
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE listado SYSTEM 'smestructura.dtd'>
<?xml-stylesheet type='text/xsl' href='smestilo.xsl'?>
<listado>
	<encabezado>\\dm01\eTempo$\InformesValidador\Vacances\00000624.XML	</encabezado>
	<cuerpo>
		<tabla_fecha>
			<titulo_fecha>
				<concepto_izq>Hora 05:41:53</concepto_izq>
				<concepto_cent>LLISTAT DE 5.VACANCES I ANY ANT</concepto_cent>
				<concepto_der>Data 13/08/2007</concepto_der>
			</titulo_fecha>
		</tabla_fecha>
		<tabla>
			<titulo_empleado ncols="4">       260 ANTONIO			</titulo_empleado>
			<titulo_datos>
				<concepto>&#xA0;</concepto>
				<concepto>PASSADES</concepto>
				<concepto> ACTUAL</concepto>
				<concepto> TOTAL FETES</concepto>
			</titulo_datos>
			<total_diario>
				<concepto>Dil 06/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 07/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 08/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dij 09/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Div 10/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dil 13/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_empleado>
				<concepto>Total</concepto>
				<dato>0</dato>
				<dato>6</dato>
				<dato>6</dato>
			</total_empleado>
			<titulo_empleado ncols="4">      4100 ELENA			</titulo_empleado>
			<titulo_datos>
				<concepto>&#xA0;</concepto>
				<concepto>PASSADES</concepto>
				<concepto> ACTUAL</concepto>
				<concepto> TOTAL FETES</concepto>
			</titulo_datos>
			<total_diario>
				<concepto>Dil 13/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_empleado>
				<concepto>Total</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_empleado>
			<titulo_empleado ncols="4">      4560 ENCARNA			</titulo_empleado>
			<titulo_datos>
				<concepto>&#xA0;</concepto>
				<concepto>PASSADES</concepto>
				<concepto> ACTUAL</concepto>
				<concepto> TOTAL FETES</concepto>
			</titulo_datos>
			<total_diario>
				<concepto>Dim 31/07/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 01/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dij 02/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Div 03/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dil 06/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 07/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 08/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dij 09/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Div 10/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dil 13/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_empleado>
				<concepto>Total</concepto>
				<dato>0</dato>
				<dato>10</dato>
				<dato>10</dato>
			</total_empleado>
			<titulo_empleado ncols="4">      7370 INMA			</titulo_empleado>
			<titulo_datos>
				<concepto>&#xA0;</concepto>
				<concepto>PASSADES</concepto>
				<concepto> ACTUAL</concepto>
				<concepto> TOTAL FETES</concepto>
			</titulo_datos>
			<total_diario>
				<concepto>Dim 01/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dij 02/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Div 03/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dil 06/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 07/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dim 08/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dij 09/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Div 10/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_diario>
				<concepto>Dil 13/08/2007</concepto>
				<dato>0</dato>
				<dato>1</dato>
				<dato>1</dato>
			</total_diario>
			<total_empleado>
				<concepto>Total</concepto>
				<dato>0</dato>
				<dato>9</dato>
				<dato>9</dato>
			</total_empleado>
		</tabla>
	</cuerpo>
</listado> 
Codigo del fichero XML para relacionarlo con la base de datos:

ESte fichero no esta acabado, he probado que me insertara un campo unicamente pero no lo he conseguido. Los campos que quiero coger para meterlos en la base de datos son los siguientes: concepto_der, titulo_empleado,<concepto>PASSADES</concepto>, <concepto> ACTUAL</concepto>, <concepto> TOTAL FETES</concepto>

Código HTML:
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data" 
        xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"  
        xmlns:sql="urn:schemas-microsoft-com:xml-sql" > 
        
   <ElementType name="concepto_der" dt:type="datetime" />
   
   <ElementType name="listado" sql:is-constant="1">
   	<element type="tabla_fecha" />
   </ElementType> 	

   <ElementType name="titulo_fecha"  sql:relation="InfoPersona">
      <element type="concepto_der"   sql:field="data_creacio" />
   </ElementType>
 
</Schema> 
El codigo del script en visual basic:

Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=****;database=XML_APP;uid=****;pwd=****"
objBL.ErrorLogFile = "c:\error.log"
objBL.Execute "c:\Ejemploasignacion.xml", "c:\EjemploXML.xml"
Set objBL = Nothing

Las tablas de la base de datos donde quiero introducir los datos son las siguientes:

InfoPersona

- id PK
- fecha_creacion
- usuario

InfoVacaciones

- id
- usuario
- dia
- passades
- actual
- total

Creo que esta es toda la información necesaria.
Agradeceria muchisimo la ayuda. Porque es un trabajo que se deberia entregar proximamente y estoy un poco perdido actualmente.

Muchas gracias a todos

Saludos

Última edición por jam1138; 16/08/2007 a las 08:42
  #2 (permalink)  
Antiguo 11/04/2011, 05:35
Avatar de piedadmarquez  
Fecha de Ingreso: abril-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Respuesta: Ayuda urgente con importacion XML

A mi tambien me gustaria saber, como se podria hacer esto. A mi me da el siguiente error

Error: El componente ActiveX no puede crear el objeto: 'SQLMLBulkLoad.SQLXMLBulkload.4.0'
Codigo: 800A01ad
Origen: Error de Microsoft VBScript en tiempo de ejecución

Etiquetas: sqlmlbulkload, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:56.