Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Guardar datos en Base de Datos MySQL (https://www.clubdelphi.com/foros/showthread.php?t=61271)

knnibal 01-11-2008 20:33:58

Guardar datos en Base de Datos MySQL
 
Hola que tal!! bueno soy un poco nuevo en delphi y estoy haciendo una pequeña aplicacion! Ya logre conectar mi base de datos por OBDC babando el driver MySQL OBDC 3.51!
Mi pregunta es la siguiente:
tengo una serie de edit(5) y deseo guardar la información que contienen en sus respectivo campos en la base da datos al darle click a un boton! que debo hacer?? :( que codigo me sirve!???

Caral 01-11-2008 23:00:17

Hola
Bienvenido al club.
Hay varias formas de hacer lo que necesitas.
La mas recomendable es por medio de sentencias sql con los componentes query haciendo un insert.
Tal vez si nos das mas datos podamos ayudarte mas.
Saludos

knnibal 02-11-2008 01:16:14

Gracias por su ayuda de antemano!!
aja!! un insert es lo que necesito hacer! lo he hecho en PHP pero en delphi ni idea!! estos son los campos de la base de dato: Cedula, Nombres, Apellidos, Edad y Dirección!
En un FORM tengo un DBNavigator, Datasource y un TADOTable. Ya hice la conex mediante esta instrucción:
"Provider=MSDASQL.1;Persist Security Info=False;User ID=root;Data Source=DatosPerso" en la propiedad ConectionString del TADOTable y como se que funciona???? porque coloque un TBDGrid y me muestra los datos de la tabla que agregue manualmente!! y con el DBNavigator puedo agregar, eliminar, etc, mediante el TBDGrid....

Ahora bien! lo que kiero es Colocar 5 Edit, que el usuario los llene y luego al hacerle click a un boton inserte esos datos en la base de datos!!! como lo puedo hacer!!??

Caro 02-11-2008 06:47:16

Hola knnibal, puedes utilizar los componentes Data Aware, DBEdits, cada DBEdit enlazado a cada uno de tus campos y para insertar utilizas tu DBNavigator.

Ahora si quieres hacerlo a mano:

Código Delphi [-]
 Table.Open;
 Table.Insert; o Table.Append;
 Table.FieldByName('Campo1').AsString := Edit1.Text;
 Table.FieldByName('Campo2').AsString := Edit2.Text;
 ........
 Table.Post;//para Grabar

Saluditos

knnibal 02-11-2008 13:44:38

GRACIAS MIL GRACIAS!!! funciono perfectamente!! mas adelante hare otras pregunticas!!

eliezermev 23-06-2011 14:48:17

Cita:

Empezado por Caro (Mensaje 323741)
Hola knnibal, puedes utilizar los componentes Data Aware, DBEdits, cada DBEdit enlazado a cada uno de tus campos y para insertar utilizas tu DBNavigator.

Ahora si quieres hacerlo a mano:

Código Delphi [-] Table.Open; Table.Insert; o Table.Append; Table.FieldByName('Campo1').AsString := Edit1.Text; Table.FieldByName('Campo2').AsString := Edit2.Text; ........ Table.Post;//para Grabar


Saluditos

como hago para q no meguarde os registros iguales? que lo busque por cedula y si existe que lo modifique y si no existe q lo guarde
por favor ayudame

knnibal 23-06-2011 15:36:42

bueno yo hago esas validaciones desde la base de datos! creo un campo y especifico que debe ser único. luego en mi código de delphi creo una variable de tipo EXCEPTION y trabajo con el TRY y el EXCEPT. en la parte del except capturas la excepción, es decir si hubo un error detienes todo, en tu caso la cédula repetida.

seria algo asi:
TRY
//AQUI VA TU CODIGO PARA GUARDAR EN LA BASE DE DATOS
EXCEPT
ON E:EXCEPTION DO
BEGIN
//haces un rollback para cancelar la transaccion
IF QueryWrite.Transaction.InTransaction THEN
QueryWrite.Transaction.Rollback;
Application.MessageBox(PChar('BLA BLA BLA'),'Mensaje',MB_ICONEXCLAMATION);
SYSUtils.Abort;
END;
END;


La franja horaria es GMT +2. Ahora son las 18:06:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi