https://foro.gambas-es.org/viewtopic.php?f=3&t=3226
-----------------------------------
v3ctor
Miercoles, 26 Junio 2013, 22:43

No Introduce Los Datos Base De Datos
-----------------------------------
estoy experimentando con base de datos sqlite3 y me surgio un problema y es que no introduce datos nuevos si los modificados
mas abajo muestro la linea que me parece da el problema de sintaxis creo... alguna idea de cual sera el problema?

[code linenumbers=false syntax=gambas]

Public Sub BtnAceptar_Click()
If Editando Then
  Try hResul["id"] = TxtID.Text
  Try hResul["Cliente"] = TxtCliente.Text
  Try hResul["Direccion"] = TxtDireccion.Text
  Try hResul["Celular"] = TxtCelular.Text
  Try hResul["Fecha"] = TxtFecha.Text
  Try hResul.Update()
  Print " ingresando datos1" ' estos print son solo para saber por que camino tomo el if son sin importancia
  Else
'creo que esta es la linea problematica la parte de (&1,&2...... no se algo estoy haciendo mal
    Try hConn.Exec("insert into tablataller value (&0, &1, &2, &3, &4)", TxtID.Text, TxtCliente.Text, TxtDireccion.Text, TxtCelular.Text, CDate(TxtFecha.text))
   
    Print "ingresando datos2"
    Endif
    Me.Close()
  Catch
    Message.Error("No se pudo introducir los datos solicitados")
    
End


[/code]


-----------------------------------
soldadozero
Miercoles, 26 Junio 2013, 22:59

Re: No Introduce Los Datos Base De Datos
-----------------------------------
no veo que hagas de gran uso esa variable hResul y no la has declarado

porque no veo donde abres la coneccion de la base de datos. solo donde ejecutas para guardar 

Conectarme.moduloconexion

Almacenar =Try hConn.Exec("insert into Producto values ('" & TextBox1.Text & "' , '" & TextBox2.text & "' "')")

 Message("Registro Guardado")

    Me.Close()
  Catch
    Message.Error("No se pudo introducir los datos solicitados")
    
End



ademas para almacenar solo puedes tomar o indicar las cajas de texto como el codigo de arriba


-----------------------------------
Shell
Miercoles, 26 Junio 2013, 23:03

Re: No Introduce Los Datos Base De Datos
-----------------------------------
Hola v3ctor.

Creo que no es value, es values. :-)

Una cuestión.¿ Como te fue cuando convertiste la fecha ?.

A mi este ejemplo me ha funcionado:
[code linenumbers=false syntax=gambas]
Public Sub btnAceptar_Click()

  If editando Then
      hResul["idcajon"] = txtNumcaj.Text
      hResul["TipoComponente"] = txtTipocomp.Text
      hResul["Nombre"] = txtNombre.Text     
      hResul["Referencia"] = txtRefer.Text
      hResul.Update()
  Else
      Try hConn.Exec("insert into Armario values (&1,&2,&3,&4)", txtNumcaj.Text, txtTipocomp.Text, txtNombre.Text, txtRefer.Text)                
  Endif
 
  Me.Close()
  
  Catch    
    Message.Info("Imposible introducie los datos solicitados")
    
End
[/code]

Saludos


-----------------------------------
soldadozero
Miercoles, 26 Junio 2013, 23:05

Re: No Introduce Los Datos Base De Datos
-----------------------------------
[quote user="Shell" post="18196"]Hola v3ctor.

Creo que no es value, es values. :-)

Una cuestión.¿ Como te fue cuando convertiste la fecha ?.

Saludos[/quote]

buen ojo! eso paso por alto :D


shell suele suceder cuando no analizas el codigo, :D algunas veces me ha sucedido pero no en este caso


-----------------------------------
Shell
Miercoles, 26 Junio 2013, 23:10

Re: No Introduce Los Datos Base De Datos
-----------------------------------
soldadozero:

Puede que la conexión estuviese abierta antes. :-)

Es que no esta todo el código. ;-)

Saludos


-----------------------------------
soldadozero
Miercoles, 26 Junio 2013, 23:12

Re: No Introduce Los Datos Base De Datos
-----------------------------------
[quote user="Shell" post="18198"]soldadozero:

Puede que la conexión estuviese abierta antes. :-)

Es que no esta todo el código. ;-)

Saludos[/quote]


claro amigo :D pueda que si! 

pero hay que ser detallista 

Saludos


-----------------------------------
Dani26
Miercoles, 26 Junio 2013, 23:34

Re: No Introduce Los Datos Base De Datos
-----------------------------------
Creo que tu error está en los comodines, ya que arrancas por &0 y deberías arrancar por &1, y si es values y no value.
Saludos


-----------------------------------
jguardon
Miercoles, 26 Junio 2013, 23:46

Re: No Introduce Los Datos Base De Datos
-----------------------------------
[quote user="v3ctor" post="18194"]
'creo que esta es la linea problematica la parte de (&1,&2...... no se algo estoy haciendo mal
    Try hConn.Exec("insert into tablataller value (&0, &1, &2, &3, &4)", TxtID.Text, TxtCliente.Text, TxtDireccion.Text, TxtCelular.Text, CDate(TxtFecha.text))
[/code][/quote]

Efectivamente la palabra correcta es values, no value. Además los operadores de sustitución comienzan en 1 y no en 0, es decir &1, &2, &3, etc.

Otra cosa más, bastante importante porque te habría mostrado el motivo del error. Si usas la cláusula Catch no debes poner Try en la instrucción. En la cláusula Catch, muestras un mensaje en caso de error, pero uno genérico. Si además concatenas la clase Error con sus propiedades, puedes obtener la línea del error, la descripción del error incluso el backtrace. Así:

[code linenumbers=false syntax=gambas]Catch
    Message.Error("Imposible introducir los datos solicitados\n" & Error.Text & "\n" & Error.Where)[/code]
Más información sobre la clase estática Error:

http://www.gambasdoc.org/help/comp/gb/error?v3

En caso de haber usado ese código, te hubieras dado cuenta enseguida de que el error era de sintaxis sql  ;-) 

Saludos


