Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/08/2007, 05:50
radije
 
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