Spanish Error actualizando la BD

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

No puedo actualizar un registro. Me de vuelve un error que no alcanzo a entender. Intento almacenar en una tabla un SQL

B4X:
    Dim Hora, sUpdate As String
    Hora = "'" & LblHora.Text & "'"
    If BtnPulsado = BtnHoraToma Then
        QueryFinal = "Select * From ServReducidos Where TIME(TToma) <= TIME(" & Hora &")" & SpiTexto
    End If
    If BtnPulsado = BtnHoraDeje Then
        QueryFinal = "Select * From ServReducidos Where TIME(TDeje) <= TIME(" & Hora &") AND TIME(TDeje) > '04:00'" & SpiTexto
    End If
    If BtnPulsado = BtnHoraToma2 Then
        QueryFinal = "Select * From ServReducidos Where TIME(TToma) >= TIME(" & Hora &")" & SpiTexto
    End If
    If BtnPulsado = BtnHoraDeje2 Then
        QueryFinal = "Select * From ServReducidos Where TIME(TDeje) >= TIME(" & Hora &")" & SpiTexto
    End If
    Log(QueryFinal)
    sUpdate = "UPDATE Variables SET QueryServiciosReducidos = '" & QueryFinal & "'"
    SQLVariables.ExecNonQuery(sUpdate)
    Activity.Finish

CAPTURA
https://www.dropbox.com/s/181j54s5u286qon/Sin título-1.jpg

Este es el texto que intento guardar.
Select * From ServReducidos Where TIME(TToma) <= TIME('04:00')


Un saludo
Espinosa4
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola aviario,
si en ésta almaceno variables. Luego las uso en otros activities.

Tengo otro para constantes. Digamos la configuración de la app.

Saludos
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola vampirbcn,

El error que me sale es el de la imagen que adjunté. Puedo guardar texto en ese campo pero en cuanto le añado la cláusula where me da ese error. Es como si pensara que estoy haciendo un select dentro de un update y me dijera que no es posible hacer las dos cosas a la vez pero yo lo que intento es guardar una una cláusula sql. Por ejemplo si que puedo guardar "select * from Sqlvariables" pero si añado where da el error.
 

vampirbcn

Active Member
Licensed User
Longtime User
Creo que el error proviene de '04:00', tienes un problema con las comillas:

Quieres guardar el texto:

'Select * From ServReducidos Where TIME(TToma) <= TIME('04:00')'

pero las comillas te estan destruyendo la frase y lo entiende como dos frases:

'Select * From ServReducidos Where TIME(TToma) <= TIME('
04:00')'

lo que te provoca error.
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola vampirbcn,

Creo que tienes razón. Es la única explicación que la veo. El tema es que la sentencia que intento guardar funciona si la ejecuto pero me temo que si lo guardo sin las comillas no lo hará. Voy a ver si me las ingenio. Esto me recuerda mucho al delphi o al visual foxpro. Si no recuerdo mal tenías que poner dobles comillas o algo parecido para que lo pasara por texto y no por parte del código.

Saludos
Pruebo y comento.

Como siempre un millón de gracias por tu ayuda.
 

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

Al final después de hacer muchísimas pruebas más, tantas como se pueden hacer en la primitiva... Y siguiendo vuestros consejos al final he visto que las dobles comillas funciona tal y como se hacía en pascal. Aquí es doble coma simple entre comillas. En mi caso:

Hora = "''" & LblHora.Text & "''"

En la tabla se graba: '04:00'

Saludos a todos!
 
Top