Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

desbordamiento de String y no sé porqué...

Estas en el tema de desbordamiento de String y no sé porqué... en el foro de Visual Basic clásico en Foros del Web. Hola, me está pasando que al asignar una cadena a un string, me da desbordamiento y no sé porqué: Error '6' en tiempo de ejecución: ...
  #1 (permalink)  
Antiguo 05/05/2008, 05:58
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
desbordamiento de String y no sé porqué...

Hola, me está pasando que al asignar una cadena a un string, me da desbordamiento y no sé porqué:
Error '6' en tiempo de ejecución:
Desbordamiento

Código:
cadenaSQL = "SELECT * FROM Detalle_Nota WHERE DN_Linea=" & Trim("" & registro.NumLote)
                        cadenaSQL = cadenaSQL & " AND fecha = CVDate('" & Format$("" & registro.Fecha, "dd/mm/yyyy") & "')"
el registro.fecha viene dando 05052008 y registro.Numlote=1

Sabeis porqué puede ser?
Fue a raíz de añadir el AND fecha....
Porque antes solo tenía el where dn_linea y no daba ese error...
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
  #2 (permalink)  
Antiguo 05/05/2008, 07:33
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: desbordamiento de String y no sé porqué...

Hola, hay algo que no entiendo, se supone que fecha es un campo de la tabla Detalle_Nota y hay otro campo con el mismo nombre en la tabla registro y además los campos Numlote (de la tabla registro) y el campo DN_Linea (de la tabla Detalle_Nota) son numéricos.

Pues si es así, prueba poniendo la consulta de esta forma:

cadenaSQL = "Select * From Detalle_Nota Where DN_Linea = registro.NumLote"
cadenaSQL = cadenaSQL & " AND Detalle_Nota.fecha = registro.fecha"


Nota: la función CVDate en VB6 está sustituida por CDate, aunque todavía existe por compatibilidad con versiones anteriores de VB y al tener los campos "fecha" con el mismo nombre, debes anteponerle el nombre de la tabla.

Un saludo
  #3 (permalink)  
Antiguo 05/05/2008, 08:02
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Re: desbordamiento de String y no sé porqué...

Haber, es para el mantenimiento de una aplicación, y tiene ese código de CVDate, con lo que se lo puse igualmente.
Antes, únicamente era esto: cadenaSQL = "SELECT * FROM Detalle_Nota WHERE DN_Linea=" & Trim("" & registro.NumLote)
Pero ahora necesito que la consulta también filtre los resultados por esto:
"AND fecha = CVDate('" & Format$("" & registro.Fecha, "dd/mm/yyyy") & "')"

Registro no es una tabla, sinó una estructura en donde se guardan los datos que se leen de un fichero de texto.
La consulta es para comprobar que en esa fecha no exista ningún registro con un Dn_Linea igual al que se está intentando importar del fichero de texto (registro.NumLote).
Lo que pasa es que la fecha en el fichero de texto está guardada de la siguiente manera: 05052008 y en la BD de datos está así: 05/05/2008, por eso lo del format y CVDate.
Lo que no sé es porqué da el p*to desbordamiento al añadirle al string el AND...

Edito: he probado a quitar el format y dejar el cdate de la siguiente forma:
cadenaSQL = cadenaSQL & " AND NV_FSubasta =" & cdate(registro.FechaSubasta)
y me da error 13 no coinciden los tipos.
Si quito el cdate y pongo el format
cadenaSQL = cadenaSQL & " AND NV_FSubasta =" & Format(registro.FechaSubasta, "dd/mm/yyyy")
me vuelve a dar error 6 desbordamiento.
Asique supongo que el problema será del format.
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas

Última edición por Baldur; 05/05/2008 a las 08:16
  #4 (permalink)  
Antiguo 05/05/2008, 08:55
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: desbordamiento de String y no sé porqué...

Bueno, si registro.Fecha viene en formato cadena, una solución es que la conviertas antes a Date con formato y la incluyas en la consulta

Dim LaFecha As Date
LaFecha = Mid(registro.Fecha, 1, 2) & "/" & Mid(registro.Fecha, 3, 2) & "/" & Right(registro.Fecha, 4)

...
cadenaSQL = cadenaSQL & " AND Detalle_Nota = #" & LaFecha & "#"



Nota: asumo que la BD es Access, si no es así, cambia las almohadillas por coma simple.

Un saludo
  #5 (permalink)  
Antiguo 05/05/2008, 09:37
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Re: desbordamiento de String y no sé porqué...

si,si ya lo hice al final así, sólo que no me dió tiempo a postearlo.
Pero no puse las # en access y funcionó igual...

Saludos y Gracias!
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
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 20:28.