Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/05/2009, 09:18
estoquera44
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 22 años
Puntos: 0
Llamar a un procedimiento almacenado dentro de un bucle do while

Buenas tardes,

a ver si alguien puede echarme una mano.
Tengo una aplicación que carga unos datos de un fichero excel. En concreto tiene cuatro registros que puedo mostrar por pantalla si las pinto con una tabla. El siguiente paso es llamar a una funcion que ejecuta un procedimiento almacenado desde dentro de un blucle do while, para que inserte todos los registros del fichero excel pero solo lo ejecuta una vez, es decir, solo inserta un registro en base de datos. Alguien me puede orientar? Es q no puedo meter un procedure dentro de un bucle?

Muchas gracias.

Código:
do while not rsExcel.EOF
					
	'IdServicio = trim(rsExcel(0)) 'Viene vacio
	Usuario = replace(trim(rsExcel(1)),"'","''")
	Fecha_Captado = replace(trim(rsExcel(2)),"'","''")
	Sol_Nip = replace(trim(rsExcel(3)),"'","''")
	Sol_email = replace(trim(rsExcel(4)),"'","''")
	Sol_Organization = replace(trim(rsExcel(5)),"'","''")
	Sol_Unit = replace(trim(rsExcel(6)),"'","''")
	Sol_CeCo = replace(trim(rsExcel(7)),"'","''")
	Sol_Refer = replace(trim(rsExcel(8)),"'","''")
	DR_Empresa = replace(trim(rsExcel(9)),"'","''")
	DR_Direccion = replace(trim(rsExcel(10)),"'","''")
	DR_Localidad = replace(trim(rsExcel(11)),"'","''")
	DR_Codigo_postal = replace(trim(rsExcel(12)),"'","''")
	DR_Provincia = replace(trim(rsExcel(13)),"'","''")
	DR_Pais = replace(trim(rsExcel(14)),"'","''")
	DR_Contacto = replace(trim(rsExcel(15)),"'","''")
	
if Usuario <> "" and Sol_Nip <> "" then
	Call Almacenar 'Procedimiento almacenado
	if trim(IdServicio) <> "" then
	       solicitudes = solicitudes & ";" & IdServicio & ""
	end if
	
Call limpiarcampos
end if
						
rsExcel.MoveNext
loop
rsExcel.Close


Sub Almacenar

	cadenaSQL = "EXEC TRANS_CARGARSOLICITUDES "
	cadenaSQL = cadenaSQL & vbnewline		
	
	cadenaSQL = cadenaSQL & "@Usuario				='" & Usuario & "'," 
	cadenaSQL = cadenaSQL & "@Fecha_Captado			='" & obtenerFecha(cstr(day(Fecha_Captado)), cstr(month(Fecha_Captado)), cstr(year(Fecha_Captado)),False) & "'," 
	
	cadenaSQL = cadenaSQL & "@Sol_Nip				='" & Sol_Nip & "'," 
	cadenaSQL = cadenaSQL & "@Sol_email				='" & Sol_email & "'," 
	cadenaSQL = cadenaSQL & "@Sol_Organization		='" & Sol_Organization & "'," 
	cadenaSQL = cadenaSQL & "@Sol_Unit				='" & Sol_Unit & "'," 
	cadenaSQL = cadenaSQL & "@Sol_CeCo				='" & Sol_CeCo & "'," 
	cadenaSQL = cadenaSQL & "@Sol_Refer				='" & Sol_Refer & "'," 
	
	cadenaSQL = cadenaSQL & "@DR_Empresa			='" & DR_Empresa & "'," 
	cadenaSQL = cadenaSQL & "@DR_Direccion			='" & DR_Direccion & "'," 
	cadenaSQL = cadenaSQL & "@DR_Localidad			='" & DR_Localidad & "'," 
	cadenaSQL = cadenaSQL & "@DR_Codigo_postal		='" & DR_Codigo_postal & "'," 
	cadenaSQL = cadenaSQL & "@DR_Provincia			='" & DR_Provincia & "'," 
	cadenaSQL = cadenaSQL & "@DR_Pais				='" & DR_Pais & "'," 
	cadenaSQL = cadenaSQL & "@DR_Contacto			='" & DR_Contacto & "'" 
		
	ejecutar
	
' el procedimiento me devuelve el id del registro insertado
	IdServicio = rs("IdServicio")
			
End Sub