Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Insertar Dato SIN .exec
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Insertar Dato SIN .exec 
 
Buenas!, llevo un rato buscando por el foro y en el tema 5 del libro de gambas, y no encuentro, a pesar de saber que lo he visto en este mismo foro...y es la forma de insertar un dato, en mi caso concreto SQLite3, sin usar el .EXEC, ya que si mal no recuerdo, con el otro método, daba igual el motor de base de datos que usase.... no recuerdo si seria con un .UPDATE o como iba el tema... :/
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
creo que es esto lo que buscas
tabla es la tabla de la base de datos, claro que hay que hacer su correspondiente conexión a la base de datos



Try Resultados = Conexion.Create("tabla")
  
  Try Resultados["idregistro"] = TextBox1.Text
  Try Resultados["ndeserie"] = TextBox2.Text
  Try Resultados["fechae"] = TextBox3.Text
  Try Resultados["modelo"] = TextBox4.Text
  Try Resultados["averia"] = TextArea1.Text
  
  Try Resultados.Update()
 



 
david - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
vale, entonces era como estaba haciendolo pero no me funciona... me dice que no existe el campo de la tabla...

PUBLIC SUB BtnGuardar_Click()
  DIM varResult AS Result
  ModConexion.Connect()
  varResult = ModConexion.$Con.Create("PartesTrabajo")
  varResult["id"] = 3
  'varResult["FechaEntrada"] = Format(Now, "dd/mm/yyyy")
  varResult["Cliente"] = AddParteTrabajo.TxtCliente.Text
  varResult.Update
  ModConexion.$Con.Close

  ME.Close
END


y el modulo de conexion:

PUBLIC $Con AS NEW Connection

PUBLIC PROCEDURE Connect()
                $Con.Close()                  ' Cierra la conexion
                $Con.Type = "sqlite3"           ' Define el tipo de Conexion
                $Con.Host = User.Home & "/Dropbox/"       ' Nombre del Servidor"
                '$Con.Login = Settings["BD/Usuario"]           ' Usuario para la coenxion
                '$Con.Port = Settings["BD/Puerto"]            ' Puerto usado para la conexion, usualmente: 3306
                $Con.Name = "lnagestion"      ' Nombre de la base de datos a usar
                '$Con.Password = ModAcciones.base64(Settings["BD/Passwd"], TRUE) ' Clave de Usuario
                TRY $Con.Open()
                IF ERROR THEN
                  Message.Error("Error al conectar a la base de datos.")
                  $Con = NULL
                ENDIF
END
 


y concretamente el error que me dá dice:

Unknow field: Clientes

PD: gracias por tu prontisisisisma respuesta!
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
CanihoJr lo primero que veo es que abajo as puesto Clientes y en la base de datos esta Cliente y en el modulo de la conexión yo no lo hago como tu, yo lo e echo otra manera

tu por ejemplo tienes la la new conecction la tienes como variable y yo no y ademas nada mas empezar la conexión la cierras, no se tus motivos tendras, raro es,

haber prueba esto


PUBLIC PROCEDURE Connect()

If $Con <> Null Then Return False
  
                 $Con = New Connection
                 $Con.Type = "sqlite3"           ' Define el tipo de Conexion
                 $Con.Host = User.Home & "/Dropbox/"       ' Nombre del Servidor"
                 '$Con.Login = Settings["BD/Usuario"]           ' Usuario para la coenxion
                 '$Con.Port = Settings["BD/Puerto"]            ' Puerto usado para la conexion, usualmente: 3306
                 $Con.Name = "lnagestion"      ' Nombre de la base de datos a usar
                 '$Con.Password = ModAcciones.base64(Settings["BD/Passwd"], TRUE) ' Clave de Usuario
                 TRY $Con.Open()
                 IF ERROR THEN
                   Message.Error("Error al conectar a la base de datos.")
                   $Con = NULL
                 ENDIF
END
 


 espero que te sirva,
 



 
última edición por david el Jueves, 01 Diciembre 2011, 22:12; editado 2 veces 
david - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
Lo del close, la verdad, yo tampoco sé que está haciendo ahí :/  debí escribirlo por si se me olvidaba alguna conexión abierta? (no recuerdo el motivo) quitado está.

Sobre "Cliente" o "Clientes", he verificado que en todos sitios aparece como "Cliente" en singular, también fue un error al postear aquí.... ains! yo al principio también pensé que seria por esto...  

y con tu método me da error, el caso, es que la conexión en principio pienso que está correcta, pues la he copiado de la versión antigua de mi programa que conectaba con MYSQL y funcionaba...  

Voy a probar insertar un registro con el .exec, que aunque no quiero, así al menos, compruebo que inserta y la conexión esté bien.
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
Yo creo que lo mio es paranoya.... si pongo:
ModConexion.$Con.Exec("INSERT INTO PartesTrabajo(id,Cliente) VALUES (6,'hola')")

Me tira error:
SQL Error o Missing database, sin embargo, la conexión es correcta, porque consultar si existe la tabla PartesTrabajo, me devuelve TRUE.... :/

ya, por curiosidad... como el archivo de la base de datos lo tengo en dropbox compartido con varios ordenadores (nunca accedo desde 2 a la vez) puede ser un error de permisos, que haya creado el archivo desde otro PC y ahora aquí no pueda escribir? (por suponer algo...)
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
Citar:
vale, entonces era como estaba haciendolo pero no me funciona... me dice que no existe el campo de la tabla...


La tabla puede que exista, pero el error es bien descriptivo: no existe el campo 'Cliente', Lo que me parece a mi es que la tabla no tiene creados los campos necesarios. ¿Puedes examinarla con el gestor de bases de datos de gambas o con alguna utilidad externa?

Por otra parte, no se si será buena idea tener tu bd en Dropbox, porque sqlite3 crea archivos temporales (journal) durante  diferentes operaciones y esto hace que dropbox esté continuamente actualizando y quién sabe si bloqueando algún fichero...

http://www.sqlite.org/tempfiles.html

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
gracias por contestar chicos, el campo clientes si que está, lo he comprobado, borrado y vuelto a crear, por eso me extraña, ni con la sentencia sql en .exec me inserta el registro... :/ realmente no deduzco donde está el fallo :/

Sobre la base de datos en Dropbox, es porque o programo en este ordenador, o en otro, pero siempre tengo mis archivos... sé que crea archivos temporales, pero no me importa que esté actualizando cada 2x3, de echo, estoy seguro 100% de que nunca tengo los dos ordenadores encendidos, por lo que tampoco intento acceder desde dos sitios diferentes a la db.... lo único que se me ha ocurrido, que no se si podrá llegar a ser.... es que si he creado el archivo en otro ordenador, al venir a este, aunque mis usuarios se llamen igual, puede ser que sea el problema?? a modo de prueba locura, un chmod 777 debería bastar para comprobarlo?
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
Difícil saber sin poder experimentarlo. ¿Puedes preparar un pequeño proyecto de prueba, incluyendo la base de datos que reproduzca el bug?

Te digo esto por dos razones, una porque mientras creas el miniproyecto o "test case", frecuentemente se descubren los motivos por los que no funcionaba, casi siempre algo que se nos había escapado. Y la otra razón, porque así, otros programadores pueden ayudarte a encontrar las causas probando en diferentes entornos.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Insertar Dato SIN .exec 
 
Porrrrrrrrrfin lo encontré! como siempre, y como era de esperar en este tipo de fallos, un fallo absurdo, sin duda por obcecarme en mil cosas a la vez, cuando normalmente la respuestas mas obvia es la que suele ser correcta... efectivamente en la base de datos del gestor de base de datos de gambas, existía todos esos campos, y por mas que probase en un lado y en otro, y revisase ortografías, mayúsculas y minúsculas, estaba todo correcto, solo que, sin saberlo o sin recordarlo, tengo dos bases de datos en la carpeta Dropbox que se llaman lnagestion, una dentro de la carpeta proyecto (esta no se que hace ahí la verdad :/) y la de la raíz de dropbox que es en la que debería estar.... ainsss

gracias a ambos!
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Pasar Dato A Bash (solucionado) Invitado Shell Scripting 1 Miercoles, 29 Septiembre 2010, 14:04 Ver último mensaje
jsbsan
No hay nuevos mensajes Tipo De Dato Color ¿cual? pittusa General 5 Sabado, 19 Marzo 2011, 06:53 Ver último mensaje
soplo
No hay nuevos mensajes Un Formulario Retornando Un Dato? v3ctor General 4 Viernes, 29 Septiembre 2017, 13:26 Ver último mensaje
v3ctor
No hay nuevos mensajes Uso De Find Y Su Opción -exec Shell Mundo Linux 2 Miercoles, 14 Noviembre 2018, 23:59 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron