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

Error al concatenar Strings - Falta espacio??

Estas en el tema de Error al concatenar Strings - Falta espacio?? en el foro de Visual Basic clásico en Foros del Web. Hola a tod@s, Tengo la siguiente función para construir una Select en función de diferentes parámetros que pueden seleccionarse en un formulario: Código: Function montarSelect(ByVal ...
  #1 (permalink)  
Antiguo 28/09/2009, 01:58
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Error al concatenar Strings - Falta espacio??

Hola a tod@s,

Tengo la siguiente función para construir una Select en función de diferentes parámetros que pueden seleccionarse en un formulario:
Código:
Function montarSelect(ByVal tipologias As String, ByVal subAct As Integer, _
                    ByVal soloActivos As Boolean, ByVal grupoClientes As Integer) As String

Dim clausulaWhere As String
Dim selectCommand As String

clausulaWhere = "where "

' tipologias: String con los tipos seleccionado "'E', 'F', 'I', 'A',  ..."
' subAct: Subactividad 
' soloActivos: Proyectos con periodo dentro del año seleccionado

If tipologias <> "" Then
    clausulaWhere = clausulaWhere _
                    & "substring(id_proyecto, 1, 1) in(" & tipologias & ") "
    
    If subAct <> 0 Then
        ' Si no ha elejido todas las Subactividades de este tipo de Actividad
        If Not CInt(subAct) = 0 Then
            clausulaWhere = clausulaWhere _
                        & " and subactividad = " & subAct
        End If
    End If
    
    If soloActivos Then
        clausulaWhere = clausulaWhere _
                    & " and (year(fecha_inicio) >= year(GetDate()) " _
                    & " or year(fecha_final) >= year(GetDate())) "
    End If
    
     If grupoClientes <> "0" Then
        clausulaWhere = clausulaWhere _
                    & " and grupoCliente"
    End If
    
ElseIf subAct <> 0 Then

        ' Si no ha elejido todas las Subactividades de este tipo de Actividad
        If Not CInt(subAct) = 0 Then
            clausulaWhere = clausulaWhere _
                        & " and subactividad = " & subAct
        End If
                    
    If soloActivos Then
        clausulaWhere = clausulaWhere _
                    & " and (year(fecha_inicio) >= year(GetDate()) " _
                    & " or year(fecha_final) >= year(GetDate())) "
    End If

ElseIf soloaActivos Then
        clausulaWhere = clausulaWhere _
                    & "subactividad = " & subAct
        
End If
   
    clausulaWhere = clausulaWhere & " order by id_proyecto "

    selectCommand = "select id_proyecto, nombre, descripcion, cliente, fecha_inicio, fecha_final " _
    & "from proyectos " _
    & clausulaWhere _
    
    montarSelect = selectCommand
        
End Function
Si los parámetros enviados hacen que SelectCommand sea demasiado largo me da problemas ya que no recoge todos los caracteres que debiera.

Por ejemplo haciendo la siguiente llamada
Código:
 montarSelect("'I'", 1, True, 0)
la variable selectCommand contiene:

"select id_proyecto, nombre, descripcion, cliente, fecha_inicio, fecha_final from proyectos where substring(id_proyecto, 1, 1) in('I') and subactividad = 1 and (year(fecha_inicio) >= year(GetDate()) or year(fecha_final) >= year(GetDate())) order byi"

Si recibe otros parámetros que crean una select más corta, no tengo ningún problema pero.. no parece que el problema sea la longitud.

Alguien puede ayudarme?
Muchas gracias
  #2 (permalink)  
Antiguo 28/09/2009, 03:04
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Error al concatenar Strings - Falta espacio??

Creo que he tratado cadenas de texto de miles de caracteres sin problemas de longitud, de modo que no creo que sea ese tu problema.
Yo metería algunos
MsgBox selectCommand
para ir viendo como evoluciona la cadena.

También puedes usar un textbox o richtextbox oculto en lugar de una simple cadena y así te aseguras de que la longitud puede ser mucha.

Suerte
  #3 (permalink)  
Antiguo 30/10/2009, 03:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 100
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Error al concatenar Strings - Falta espacio??

Hola,
Siento haber tardado tanto en responder pero había dejado apartado este tema.
El problema estaba en la select. Probé a volcar el String en el TextBox para visualizarlo. Se visualizaba toda la SELECT sin problemas asi que por tanto, el String inicial no perdía caracteres.

Parece ser que tenía todo este lío porque en la ventana de Inspección de variables de VB no se muestra todo el contenido de los Strings cuando son muy largos.

Gracias al TextBox descarté que el error estubiese en el tamaño del String. Muchas gracias por tu ayuda.
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 21:49.