Spanish [SOLUCIONADO]Consulta sobre UPDATE SQLite

ferpahud

Active Member
Licensed User
Hola buenos dias,

Quería realizar una consulta sobre UPDATE en SQLite, resulta que tengo la siguiente función:

B4X:
Sub aplicarDescuento(descuentoPorcentaje As Int, idM As Int)
    Dim cDescuento As Cursor
    Dim precioActual As Float
    Dim nuevoPrecio As Float
    nuevoPrecio=0
    Dim idDetalle As Int
    Dim cursorPrueba As Cursor
    Dim idPrueba As Int
    Dim idPrueba2 As Int
   
    cDescuento=s.ExecQuery("SELECT * FROM DetallePedido WHERE DetallePedido.idPedido = '" & idM & "' AND DetallePedido.descuento=0")
    If cDescuento.ColumnCount>0 Then
    For j=0 To cDescuento.RowCount-1
        cDescuento.Position=j
        precioActual = cDescuento.GetString("precio")
        nuevoPrecio = (precioActual - (precioActual*descuentoPorcentaje/100))
        idDetalle = cDescuento.GetString("idDetallePedido")
        s.ExecQuery("UPDATE DetallePedido SET precio='" & nuevoPrecio & "' WHERE idDetallePedido ='" & idDetalle & "'")
       
    Next
    End If
End Sub

En esta funcion se aplica un descuento a los detalles que tienen "descuento=0", para eso le paso el id del pedido donde se encuentran los detalles, y el porcentaje de descuento a aplicar.

Fui revisando todo, y el cursor toma la cantidad de elementos correctos, el descuento se calcula de forma correcta, el idDetallePedido es correcto, todo esta bien, pero a la hora de hacer el UPDATE no se actualiza el registro con el nuevo precio.

Ya probe la sentencia SQL y si funciona, pero no puedo entender porque en mi base de datos no actualiza....

Si alguno me puede ayudar o guiar se lo agradezco

Muchas gracias por su tiempo, saludos!
 

rscheel

Well-Known Member
Licensed User
Longtime User
El update se realiza de la siguiente manera

B4X:
s.ExecNonQuery2("UPDATE DetallePedido SET precio = ? WHERE idDetallePedido = '" & idDetalle & "'", Array As Object(nuevoPrecio))
 

ferpahud

Active Member
Licensed User
El update se realiza de la siguiente manera

B4X:
s.ExecNonQuery2("UPDATE DetallePedido SET precio = ? WHERE idDetallePedido = '" & idDetalle & "'", Array As Object(nuevoPrecio))
Perfecto, ahora si.

Muchas gracias por tu ayuda!
 
Top