Ir al contenido


Foto

Inserts MySQL


  • Por favor identifícate para responder
4 respuestas en este tema

#1 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 11 julio 2012 - 07:36

Buenas, ya he progresado con el tema de la conexión a la base de datos. Conseguí llenar una TDBGrid con datos de una tabla, de una forma realmente simple (punto a favor para Lazarus).

Antes de comentar mi problema, voy a detallar el contexto. A priori tengo un Form1 (el principal), que contiene:

- TMySQL50Connection
- TDatasource
- TSQLTransaction
- TSQLQuery
- TDBGrid

La TDBgrid muestra sencillamente todos los registros de la tabla usuario (dni,nombre,apellido). Hasta ahí va todo de 10 !.
Luego he decidido incursionar en el ABM (no sé si es el termino correcto en este lado de la programación, vengo de PHP). Para realizar el ABM tengo a priori un TButton para agregar registros. El onclick de este boton, muestra al Form2 (altas de registros), con 3 TEdits, con sus respectivos TLabels, para cada campo del registro MySQL.

Y hasta ahí me quede jeje. Tengo muchas dudas, he leido que no hay un componente para inserts como el select del Form1.
Tampoco sé si tengo que volver a realizar una conexión, o mantiene la del Form1.
Me imagino, que debería hacer algun código dentro del onClick del botón "Aceptar" del Form2.
Pero hasta ahí llego je, agradecería cualquier tipo de ayuda.
Desde ya muchas gracias !
  • 0

#2 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 11 julio 2012 - 08:11

Estuve toqueteando un poco y encontré un componente que me ha sido muy útil en mis épocas de ExtJS "developer". El TDBNavigator, pero no encuentro mucha documentación sobre cómo manejarle los eventos.
Cualquier link es de ayuda.
Saludos !
  • 0

#3 ramiro_md

ramiro_md

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes

Escrito 12 julio 2012 - 06:37

Auto respuesta jeje. Logré hacer inserts SQL desde el Form2 de la siguiente manera:

Creo un TSQLQuery (llamado AltaPersona), apuntando a la transacción y la conexión del Form1, para no volver a insertar los componentes.
El boton de "Guardar" ejecuta lo siguiente en el onClick:



delphi
  1.  
  2.   /* Estimo que este mensaje limpia algún buffer o algo así */
  3.   AltaPersona.SQL.Clear;
  4.  
  5.   /* La sentencia SQL con los parametros */
  6.   AltaPersona.SQL.Add('INSERT INTO persona(dni, nombre, apellido) VALUES(:dni,:nombre,:apellido)');
  7.  
  8.   /* Defino los parametros, ahora son constantes, pero deberían venir de los inputs. Lo cual no me debería ser dificil */
  9.   AltaPersona.ParamByName('dni').AsInteger := 00000022 ;
  10.   AltaPersona.ParamByName('nombre').AsString := 'Pepe' ;
  11.   AltaPersona.ParamByName('apellido').AsString := 'Argento' ;
  12.  
  13.   /* Se ejecuta la consulta, algo así como el mysql_query() de PHP */
  14.   AltaPersona.ExecSQL;
  15.  




Gracias a aquellos que han leído el post, aunque no hayan comentado.
Sigo en Lazarus :D
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 12 julio 2012 - 07:09

Gracias por compartir la solución amigo....    (b)
  • 0

#5 joseme

joseme

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 62 mensajes
  • LocationCosta Rica

Escrito 17 julio 2012 - 08:07

Excelente trabajo! Para aclarar algo más los conceptos: la instrucción .Clear borra el texto SQL que pudiera traer el Query de acciones anteriores.  Si en tu formulario vas a realizar varias Altas consecutivas, es mejor definir el texto del Query al mostrar el form, el botón "Guardar"debe solamente cargar los parámetros y ejecutar el Query.

  • 0




IP.Board spam blocked by CleanTalk.