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 !
Inserts MySQL
Started by
ramiro_md
, Jul 11 2012 07:36 PM
4 replies to this topic
#1
Posted 11 July 2012 - 07:36 PM
#2
Posted 11 July 2012 - 08:11 PM
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 !
Cualquier link es de ayuda.
Saludos !
#3
Posted 12 July 2012 - 06:37 AM
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:
Gracias a aquellos que han leído el post, aunque no hayan comentado.
Sigo en Lazarus
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
/* Estimo que este mensaje limpia algún buffer o algo así */ AltaPersona.SQL.Clear; /* La sentencia SQL con los parametros */ AltaPersona.SQL.Add('INSERT INTO persona(dni, nombre, apellido) VALUES(:dni,:nombre,:apellido)'); /* Defino los parametros, ahora son constantes, pero deberían venir de los inputs. Lo cual no me debería ser dificil */ AltaPersona.ParamByName('dni').AsInteger := 00000022 ; AltaPersona.ParamByName('nombre').AsString := 'Pepe' ; AltaPersona.ParamByName('apellido').AsString := 'Argento' ; /* Se ejecuta la consulta, algo así como el mysql_query() de PHP */ AltaPersona.ExecSQL;
Gracias a aquellos que han leído el post, aunque no hayan comentado.
Sigo en Lazarus
#4
Posted 12 July 2012 - 07:09 AM
Gracias por compartir la solución amigo....
#5
Posted 17 July 2012 - 08:07 AM
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.