Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2010
eneseme eneseme is offline
Registrado
 
Registrado: may 2010
Posts: 7
Poder: 0
eneseme Va por buen camino
duda edit, insert, delete en Delphi 7 y MySQL

Saludos y gracias anticipadas por la ayuda.
LLevo mucho años con Delphi y Paradox, y multitud de aplicaciones, y he comenzado a efectuar una migración de Paradox a MySQL y al comenzar una serie de pruebas, me doy cuenta de lo siguiente, y no se si es desconocimiento o que ya no funcionan las cosas igual :
Hasta ahora usaba TTable y TDatasource para las tablas, y he instalado los
componentes Zeos, concretamente he probado TZTable.
no he modificado nada de codigo (de momento) y funcionan comandos tales como locate, etc, incluso puedes intercalar sentencias SQL.
el problema viene cuando quieres modificar un registro, por ejemplo

T_Clientes.Edit;
T_Clientes.FieldByName('Nombre').asstring := 'AAA';
T_Clientes.post;

ves el cambio reflejado el el dbgrid que tengo para ver los datos, que está asociado al Datasource de la tabla, pero si haces un close, y luego un open, los datos no quedan grabados, al igual que si haces un .delete, tampoco lo borra.
he probado con
T_Clientes.applyUpdates;
T_Clientes.CommitUpdates;
pero ni por esas.
seguramente no se puede, y ahora hay que trabajar con sentencias tipo select ... , update .... , insert ...., delete from .... en SQL.

alguien me puede dar un poco de luz sobre éste tema.
si es así, me veo obligado a modificar muchisimo código, cosa que haré, pero me gustaría no meter la pata.
al mismo tiempo, sabéis si existe algún libro en el mercado apropiado y con ejemplos Delphi - MySQL ?

Muchisimas gracias por la atención, y perdón por el tocho escrito.
Responder Con Cita
  #2  
Antiguo 20-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si haces post y commit, debería quedar grabado. Veamos qué opina otro compañero más experto en el tema.


p.d.: por favor, no repitas temas, gracias.
Responder Con Cita
  #3  
Antiguo 20-05-2010
eneseme eneseme is offline
Registrado
 
Registrado: may 2010
Posts: 7
Poder: 0
eneseme Va por buen camino
tema duplicado

tienes razón, creía que me había equivocado de sub-foro, y por eso lo puse en el otro. lo siento.
gracias
Responder Con Cita
  #4  
Antiguo 20-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por eneseme Ver Mensaje
[..]
Hasta ahora usaba TTable y TDatasource para las tablas, y he instalado los
componentes Zeos, concretamente he probado TZTable.
no he modificado nada de codigo (de momento) y funcionan comandos tales como locate, etc, incluso puedes intercalar sentencias SQL.[..]
Me imagino que habrás cambiado los componentes que tenías antes por los de zeos. Por ejemplo, ese TTable lo has sustituido por el similar de zeos?
Responder Con Cita
  #5  
Antiguo 20-05-2010
eneseme eneseme is offline
Registrado
 
Registrado: may 2010
Posts: 7
Poder: 0
eneseme Va por buen camino
.

pues sí, el TTable lo he sustituido por el TZTable, ya que el TTable no tiene como propiedad Connection, dentro de la cual, le pones la IP del servidor y el protocolo mysql-5.
hace la conexión perfectamente, incluso te muestra todos los campos del fichero en un dbgrid.
pero luego, el mantenimiento de datos, es lo que falla, no da errores ni nada,
simplemente no graba, no borra, etc.
Responder Con Cita
  #6  
Antiguo 20-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puedes poner algo de códgo más completo que lo anterior?
Responder Con Cita
  #7  
Antiguo 20-05-2010
eneseme eneseme is offline
Registrado
 
Registrado: may 2010
Posts: 7
Poder: 0
eneseme Va por buen camino
.

Así funciona :

cod.Text := '7';
T_Est.locate('Cod',Vararrayof([Cod.text]),[loCaseInsensitive]);
Q_Est.SQL.Text := 'Update Estab set Nombre = "XXX" where Cod =' + cod.text;
Q_Est.ExecSQL;

// Ha Quedado modificado el registro
T_Est es un TZTable
Q_Est en un TZQuery

Así no funciona :
cod.Text := '7';
T_Est.locate('Cod',Vararrayof([Cod.text]),[loCaseInsensitive]);
T_Est.edit;
T_Est.FieldByName('DescExp').asstring := 'XXX';
T_Est.post;
T_Est.applyUpdates;
T_Est.Commitupdates;
// Cuando cierras la base, y luego la abres, no ha modificado el registro
Responder Con Cita
  #8  
Antiguo 20-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No conozco bien los componentes zeos, pero creo que el commit debes hacerlo a la transaction de la conexión, sería algo así como:

Código:
ZTable1.Connection.Commit;
Así que en tu caso será:
Código:
T_Est.Connection.Commit;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Insert, Update, Delete+MySQL+Zeos+Master/Detail BlackDaemon MySQL 4 03-04-2007 12:04:07
Por que el DBLookupoComboBox no se mueve con insert y delete David Conexión con bases de datos 1 19-07-2006 17:05:34
Trigger Before (Insert,update,delete)? estebanx MS SQL Server 2 25-05-2006 15:58:19
Como crear una sentencia SQL (Insert, update y delete) sitrico Conexión con bases de datos 1 14-10-2004 00:02:42
Insert automatico despues de Delete jealousy Conexión con bases de datos 2 20-09-2003 02:25:14


La franja horaria es GMT +2. Ahora son las 03:08:45.


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
Copyright 1996-2007 Club Delphi