https://foro.gambas-es.org/viewtopic.php?f=1&t=2937
-----------------------------------
metalgearxd
Viernes, 01 Marzo 2013, 13:05

Como Puedo Modificar Datos De La Base De Datos Por Medio De Una Grilla ?
-----------------------------------
hola a todos , bueno presento un problema no se si sea codigo lo que pasa es que quiero modificar los datos de una tabla de la base de datos pero desde una grilla  le doy click a una filla donde estan los datos de un usuario y me aparecen en los campos de textbox y despues los mdifico , pero no me funciona me sale un error me sale "query flaire : abort sou constant violation" antes para modificar apatir de una campo de texto me funciona pero no se si es error sea la grilla el cual pasan los datos a los texbox

aqui les muestro el codigo de la grilla y del boton de modificar

[code linenumbers=false syntax=gambas]PUBLIC SUB recuperar_datos()
 DIM res AS Result
  DIM i AS Integer 
  
    res = conexion.$Con.Exec("select * from contactos2 ") 
    GridView1.Clear 'Borro los datos del tableview
    GridView1.Rows.Count = res.Count 'Agrego las filas que utilizare
  FOR i = 0 TO (res.Count - 1) ' Ciclo para llenar el tableview
    GridView1[i, 0].Text = res["login"]
    
    GridView1[i, 1].Text = res["contrase"]
    GridView1[i, 2].Text = res["pregunta"]
    GridView1[i, 3].Text = res["preguntase"]
    GridView1[i, 4].Text = res["tipo"]   
    res.MoveNext 
   
  NEXT 

  conexion.$Con.Close 'Cierro la conexión
CATCH 
Message.Error(Error.Text)
END
PUBLIC SUB GridView1_Activate()
 DIM res AS Result
 
      ' con esta linea la seleccionar una fila en la tabla me muestra la primera celda que seleccione
        TextBox4.Text = GridView1[GridView1.Row, 1].Text
        
        ' con estas lineas muestro los datos de la base de datos dependiendo de la cedula
        res = conexion.$Con.Exec("select * from contactos2 where contrase='" & TextBox4.Text & "'") 
        TextBox3.Text = res!pregunta ' en el textbox de nombre muestro el nombre sacado desde la base de datos utilizando res![nombre del campo a buscar]
        ' en el textbox de nombre muestro el nombre sacado desde la base de datos utilizando res![nombre del campo a buscar]
        TextBox3.Text = res!contrase
        TextBox4.Text = res!login
       ComboBox2.Text = res!pregunta
       TextBox6.Text = res!preguntase
       ComboBox1.Text = res!tipo
END
[/code]

la del boton modificar

[code linenumbers=false syntax=gambas]DIM i AS Integer
DIM sql AS String
DIM res AS Result
i = Message.Question("Esta seguro de Actualizar datos del Administrador : " & TextBox4.Text & " ?", "Estoy seguro(a)", "No, estoy Seguro(a)") 
  IF i = 1 THEN 
  IF TextBox4.Text = ""
  Message.Error("No puede dejar vacio el Campo Contraseña")
  ELSE 
  IF TextBox3.Text = ""
  Message.Error("No puede dejar vacio el Campo ID Login")
  ELSE 
 IF TextBox6.Text = ""
  Message.Error("No puede dejar vacio el Campo Pregunta Secreta")
  ELSE 
  sql = "update contactos2 SET contrase = '" & TextBox3.Text & "',"
  sql = sql & "login = '" & TextBox4.Text & "' , preguntase = '" & TextBox6.Text & "' , pregunta = '" & ComboBox2.Text & "'"
  res = conexion.$Con.Exec(sql) ' ejecuto sentencia SQL
 
  Message.Info("DATOS ACTUALIZADOS")
  recuperar_datos
  ENDIF 
  ENDIF 
  ENDIF 
end
[/code]

ya revise el codigo y nada me sale el error en : res = conexion.$Con.Exec(sql)

es raro si la conexcion esta bien y me muestra datos y todo 

les agredesco sus ayuda


-----------------------------------
shordi
Viernes, 01 Marzo 2013, 13:34

Re: Como Puedo Modificar Datos De La Base De Datos Por Medio De Una Grilla ?
-----------------------------------
[quote]"query flaire : abort sou constant violation"[/quote]

El error te lo genera la base de datos. Intentas hacer algo que no se puede (dejar en blanco un campo obligatorio, meter un valor de texto en un campo numérico, rellenar un campo que es clave foránea con valores no contemplados en otras tablas, etc. etc.)
Hay que ver la estructura de tu base de datos y el contenido exacto de la cadena sql que intentas ejecutar para saber qué pasa.

Saludos


-----------------------------------
metalgearxd
Viernes, 01 Marzo 2013, 13:40

Re: Como Puedo Modificar Datos De La Base De Datos Por Medio De Una Grilla ?
-----------------------------------
[quote user="shordi" post="16520"][quote]"query flaire : abort sou constant violation"[/quote]

El error te lo genera la base de datos. Intentas hacer algo que no se puede (dejar en blanco un campo obligatorio, meter un valor de texto en un campo numérico, rellenar un campo que es clave foránea con valores no contemplados en otras tablas, etc. etc.)
Hay que ver la estructura de tu base de datos y el contenido exacto de la cadena sql que intentas ejecutar para saber qué pasa.

Saludos[/quote]

ya so solucione , fue un descuido de mi parte 

en esta parte del codigo es haci 

[code linenumbers=false syntax=gambas] sql = "update contactos2 SET contrase = '" & TextBox3.Text & "',"
  sql = sql & "login = '" & TextBox4.Text & "' , preguntase = '" & TextBox6.Text & "' , pregunta = '" & ComboBox2.Text & "' where = '" & textbox4.text & "' "[/code]

era el where que le faltaba , ahora ya no me presenta error y si modifica , de todas maneras gracias


