Foros del Web » Programando para Internet » ASP Clásico »

Recorrer datos de una cadena y grabarlos en una base de datos

Estas en el tema de Recorrer datos de una cadena y grabarlos en una base de datos en el foro de ASP Clásico en Foros del Web. Hola amigos, recurro nuevamente a su ayuda, estoy generando un formulario dinamico y al enviar los datos me genera esto en la URL : com_75_1_76: ...
  #1 (permalink)  
Antiguo 18/03/2008, 12:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
De acuerdo Recorrer datos de una cadena y grabarlos en una base de datos

Hola amigos, recurro nuevamente a su ayuda, estoy generando un formulario dinamico y al enviar los datos me genera esto en la URL :

com_75_1_76: 118
com_75_12_77: 126
com_75_13_77: 130
com_75_14_78: 124
com_75_15_78: 132
com_75_16_79: 122
com_75_17_79: 134
com_75_18_80: 120
com_75_19_80: 136
com_75_2_76: 128
Rad_76: 81
Che_77_88: 88
Che_77_89: 89
Che_77_90: 90
Che_77_91: 91
Che_77_92: 92
Rad_78: 96
Rad_79: 98
Rad_80: 100
Rad_81: 102
Mtr_82_103: 39
Mtr_82_104: 37
Mtr_82_105: 36
Mtr_82_106: 36
Mtr_82_107: 39
Mtr_82_108: 37
Mtr_82_109: 36
Rad_83: 110


Necesito saber como recorrer toda la cadena para grabar en la base de datos y grabarlos en la base de datos, debe grabar todos los com,rad,che,mtr.

Deberia quedar asi en la base :

TIPO com

com_75_1_76: 118

Res_Pre_Id = 75
Res_cabec_id = 1
Res_Alt_id = 76
Res_id_combo = 118


tipo Rad

Rad_76: 81

Res_Pre_Id = 76
Res_Alt_id = 81

Tipo Che

Che_77_88: 88
Che_77_89: 89
Che_77_90: 90
Che_77_91: 91
Che_77_92: 92

Res_Pre_Id = 77
Res_Alt_id = 88
Res_Alt_id = 89
Res_Alt_id = 90
Res_Alt_id = 91
Res_Alt_id = 92

Tipo Mtr
Mtr_82_109: 36

Res_Pre_Id = 82
Res_Alt_id = 109
Res_cabec_id = 82

La idea es desarmar la cadena y grabar los datos donde correspondan..

Muchas Gracias
  #2 (permalink)  
Antiguo 18/03/2008, 14:34
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Podrías usar arreglos, ordenalos en los tipo s que tienes com,rad,che,mtr y luego recorres cada uno de ellos y los vas insertando en la base según corresponda...
  #3 (permalink)  
Antiguo 18/03/2008, 15:19
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Amigo no se como hacerlo, me puedes dar una mano por favor ???
  #4 (permalink)  
Antiguo 19/03/2008, 07:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

tu url genera esto:
com_75_1_76: 118
com_75_12_77: 126
com_75_13_77: 130
com_75_14_78: 124
com_75_15_78: 132
com_75_16_79: 122
com_75_17_79: 134
com_75_18_80: 120
com_75_19_80: 136
com_75_2_76: 128
Rad_76: 81
Che_77_88: 88
Che_77_89: 89
Che_77_90: 90
Che_77_91: 91
Che_77_92: 92
Rad_78: 96
Rad_79: 98
Rad_80: 100
Rad_81: 102
Mtr_82_103: 39
Mtr_82_104: 37
Mtr_82_105: 36
Mtr_82_106: 36
Mtr_82_107: 39
Mtr_82_108: 37
Mtr_82_109: 36
Rad_83: 110

eso debes guardarlo en una variable y luego esa variable en un arreglo:
(sería bueno que pudieras discriminar antes de qué tipo son y guardarlos en variables distintas)
dim arreglo
dim variable

variable= request("aqui va el origen de tus datos, los que te retorna la url")
arreglo= split(variable,",") ' acá separas el arreglo por comas
y ahora recorres el arreglo:
for i=lbound(arreglo) to ubound(arreglo)
'antes de hacer algo, preguntas por el tipo de datos que viene en el arreglo
if arreglo(i)="tipoCom" then
'acá puedes poner de lleno la sentencia sql para insertar o puedes llamar a un método
'que lo haga desde una componente
else
if arreglo(i)="tipoCom" then
'lo mismo
else
if arreglo(i)="tipoRad" then
'lo mismo
else
if arreglo(i)="tipoChe" then
'lo mismo
else
if arreglo(i)="tipoMtr" then
'lo mismo
end if
end if
end if
end if
next

prueba y comenta....
  #5 (permalink)  
Antiguo 19/03/2008, 11:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Me da este error :

objeto Response, ASP 0106 (0x80020005)
Se encontró un tipo de datos sin especificar.

No se a que se debe, alguien sabe ?
  #6 (permalink)  
Antiguo 19/03/2008, 12:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

si muestras en qué parte del código está el error sería más fácil ayudarte...
  #7 (permalink)  
Antiguo 19/03/2008, 13:42
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

No me muestra una linea en particular, me envia un error general

Tipo de error:
objeto Response, ASP 0106 (0x80020005)
Se encontró un tipo de datos sin especificar.
/int_merc/graba3.asp
  #8 (permalink)  
Antiguo 19/03/2008, 13:49
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Es redifícl adivinar sin ver el código, pero debe ser que no definiste alguna variable, o el tipo de datos que estás utilizando dentro de una función o de un arreglo no están definidos... el error asi lo dice...
"Se encontró un tipo de datos sin especificar."
en realidad, sin ver el código es difícil...
  #9 (permalink)  
Antiguo 19/03/2008, 14:00
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Este es el codigo

<% Dim Var, cadena
For each var in Request.QueryString

Response.Write (var & ": " & Request.QueryString(var))
Response.Write("<br>")

cadena = Split(request.QueryString(var),"_")
Response.Write (cadena)



Next%>
  #10 (permalink)  
Antiguo 19/03/2008, 14:29
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

explícame esto:
cadena = Split(request.QueryString(var),"_")
por defecto, al hacer split, te los separa por una ","... intenta esto:
cadena = Split(request.QueryString(var),",")
  #11 (permalink)  
Antiguo 19/03/2008, 15:18
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

me sigue el error, aun no se a que se debe .
al parecer es un problema con el objeto response, seguire investigando
  #12 (permalink)  
Antiguo 19/03/2008, 18:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Ayudaaaaaaaaaaaa
  #13 (permalink)  
Antiguo 20/03/2008, 07:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

y si en vez de for each haces esto:

<% Dim Var, cadena

Response.Write (var & ": " & Request.QueryString(var))
Response.Write("<br>")

cadena = Split(request.QueryString(var),"_")

for i=lbound(cadena) to ubound(cadena)
Response.Write (cadena)

next%>
  #14 (permalink)  
Antiguo 23/03/2008, 10:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

No resulta, me muestra este error :
Tipo de error:
Objeto Request, ASP 0102 (0x80004005)
La función espera una cadena como entrada.
/int_merc/muestra.asp, línea 12

esta seria la linea 12
Response.Write (var & ": " & Request.QueryString(var))

Disculpa el atrevimiento, pero puedes probar si te funciona a ti ????

Muchas gracias por tu ayuda
  #15 (permalink)  
Antiguo 24/03/2008, 07:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 111
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Recorrer datos de una cadena y grabarlos en una base de datos

mmm... claramente el request está mal...
podrías ver que trae la cadena antes de manipularla, y verificar que realmente se está almacenando en la variable...
antes de ingresar al ciclo, escribela por pantalla, con el response.write e inmediatamente después escribes un response.end, asi ves que trae, y si viene vacía es porque no se están almacenando los valores... revisa eso primero antes de hacer cualquier cosa...
No te preocupes, para eso son los foros, para ayuda mutua....}
prueba y comenta...
saludos!
  #16 (permalink)  
Antiguo 24/03/2008, 13:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 69
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Recorrer datos de una cadena y grabarlos en una base de datos

Finalmente pude encontrar una solucion, aca les va por si alguien lo necesita :

<!--#include file="include/Mconection.asp"-->

<%
For each var in Request.QueryString

myVariable = VAR

myArray = Split(myVariable,"_")

Response.Write (Request.QueryString(var))
Response.Write("<br>")
Response.Write myArray(i) & "<BR />"

if myArray(i)="Che" then
tipo_pre = 3
Response.Write("tipo Che")


update_combo="Select * From respuestas "
Tabla10.Open update_combo,Conexion,2,3,1

Tabla10.AddNew
Tabla10("Res_Enc_Id") = 17
Tabla10("Res_Alt_id") = Request.QueryString(var)
Tabla10("Res_pre_tipo_respuesta") = tipo_pre

Tabla10.update
Tabla10.Close

elseif myArray(i)="Rad" then
tipo_pre = 2
Response.Write("tipo Rad")


update_combo="Select * From respuestas "
Tabla10.Open update_combo,Conexion,2,3,1

Tabla10.AddNew
Tabla10("Res_Enc_Id") = 17
Tabla10("Res_Alt_id") = Request.QueryString(var)
Tabla10("Res_pre_tipo_respuesta") = tipo_pre

Tabla10.update
Tabla10.Close

elseif myArray(i)="com" then
tipo_pre = 1
Response.Write("tipo Com")


update_combo="Select * From respuestas "
Tabla10.Open update_combo,Conexion,2,3,1

Tabla10.AddNew
Tabla10("Res_Enc_Id") = 17
Tabla10("Res_id_combo") = Request.QueryString(var)
Tabla10("Res_pre_tipo_respuesta") = tipo_pre
Tabla10.update
Tabla10.Close

elseif myArray(i)="Mtr" then
tipo_pre = 4
Response.Write("tipo Mtr")


update_combo="Select * From respuestas "
Tabla10.Open update_combo,Conexion,2,3,1

Tabla10.AddNew
Tabla10("Res_Enc_Id") = 17
Tabla10("Res_cabec_id") = Request.QueryString(var)
Tabla10("Res_pre_tipo_respuesta") = tipo_pre
Tabla10.update
Tabla10.Close


end if


Next
%>

Saludos y gracias
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




La zona horaria es GMT -6. Ahora son las 15:19.