Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Como guardar correctamente los datos..?

Hola como anda?? Bueno le explico mi consulta, cuando empece la aplicación trabajaba con una base de acces, para guardar datos lo que hacia es poner la tabla en modo Insert y al finalizar utilizaba el metodo Post.
Hasta ahí todo bien después ese mismo programa lo migre a una base en Mysql y guardaba poniendo la tabla en modo Insert y al finalizar en vez de poner Post lo hacia con la consulta Sql ej: ' Insert into.....' .

Me han dicho que no esta bien poner la tabla en modo insert y despues no utilizar el post. La duda es que no se cual es la mejor manera y mas eficiente para guardar los datos. Ustedes cual usan??
Pd: al poner la tabla en modo edit los dbEdits se blanquean y permiten ingresar la cadena, en el caso de no usar insert tendría que usar los tEdit?

Desde ya muchas Gracias!!
Responder Con Cita
  #2  
Antiguo 12-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si abres la tabla con table, insert, post.
Si abres la tabla con query, sql insert.
Si abres la tabla con table y usas un query para modificar NO hay nada malo hacer el insert en la tabla, SALVO que deje un espacio en blanco, pero eso es otra historia.
Si funcionaba en access deberia de funcionar en MySql.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 12-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Esta bien me queda mas claro gracias Caral!, ahora tengo otro problema no puedo editar los registros te explico, En el Form listar cliente tengo los dbEdits conectados a los Query , cuando hago un select en los dbEdits me muestra la info que solicite, ahora bien como hago para modificar el registro?? Se entiende?? Osea para que me deje modificar los dbEdits tiene que estar conectado al ttable para ponerle en modo edición y asi permitirme modificar. Espero que hayan entendido mi problema y me puedan dar una mano. Desde ya muchas gracias!
Responder Con Cita
  #4  
Antiguo 12-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Aveces pasan cosas raras, a mi me pasaron cuando cambie a Firebird.
Lo cierto es que si la consulta es total de toda la tabla, osea Select * from TuTabla, deberia de poder hacerse la modificacion.
La verdad si no puede, simplemente haz un Update, te sera mas sencillo.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 13-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Hola Caral! te cuento que sigo sin poder modificar, lo que hice es lo siguiente cuando creo el form de Listar Datos tengo los dbedits conectados al query, me muestra los datos y como decias vos en algunos me deja modificar una vez que modifico le doy al botón actualizar donde tengo esta consulta:


Código Delphi [-]
ZQuery1.Close;            
ZQuery1.SQL.Clear;             
ZQuery1.SQL.Add('Update empleado set nombre='''+DBEdit1.EditText+''' where empleado.ID_Empleado='''+id+'''');            
ZQuery1.ExecSQL;

Lo que me pasa ahora es que no me toma lo que modifico en el DBEdit1.EditText , ahora si hago esto si lo toma:



Código Delphi [-]
h:=DBEdit1.EditText;              
ZQuery1.Close;             
ZQuery1.SQL.Clear;             
ZQuery1.SQL.Add('Update empleado set nombre='''+h+''' where empleado.ID_Empleado='''+id+'''');             
ZQuery1.ExecSQL;


Ose si lo paso antes a una variable si funciona , el drama es que no puedo crear por cada dbedit una variable ya que tengo muchos y me parece que no es lo correcto. Espero que me puedan ayudar!! Desde ya muchas gracias.

Última edición por Neftali [Germán.Estévez] fecha: 13-01-2011 a las 16:39:31. Razón: Corregidos los TAG's
Responder Con Cita
  #6  
Antiguo 13-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cuantos ZQuery usas en eta operacion?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 13-01-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.338
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por verito_83mdq Ver Mensaje
Ahora tengo otro problema no puedo editar los registros te explico, En el Form listar cliente tengo los dbEdits conectados a los Query , cuando hago un select en los dbEdits me muestra la info que solicite, ahora bien como hago para modificar el registro?? Se entiende?? Osea para que me deje modificar los dbEdits tiene que estar conectado al ttable para ponerle en modo edición y asi permitirme modificar.
El problema es que estás mezclando 2 modos de trabajo. Digamos que hay 2 opciones:

(1) Trabajar con componentes de acceso a Datos. Mostrarlos en un form, abrir la tabla/consulta y ponerla en modo Insert/Edit (APPEND o EDIT); Y al acabar con los cambios debes grabar con Post.

Código Delphi [-]
  Tabla1.Append;
  ....

  // Para grabar
  Tabla1.Post;

(2) Trabajar con SQL. En ese caso accedes a los datos utilizando una SQL, y cuando vas a grabar los haces con una SQL (UPDATE Empleado...)

Lo que tú estás haciendo es mezclar los 2 métodos.
Primero accedes a los datos usando el método 1 y abres la tabla/consulta y luego quieres actualizar/insertar con el método 2.

Digamos que "la gracia" del método 2 es no tener que abrir la tabla/consulta (me refiero a ponerla en modo Insert/Update utilizando APPEND o EDIT); Y eso es lo que estás haciendo, así que creo que si has empezado así deberías acabar con POST.
Si quieres usar el método 2, deberás hacer algun parche, utilizar TClientDataSet o dejar de lado los componentes de Acceso a Datos y cambiarlos por los normales.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 13-01-2011
verito_83mdq verito_83mdq is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 118
Poder: 14
verito_83mdq Va por buen camino
Hola a todos!
Caral: estoy usando un Query solo, primero listo datos y cuando pongo modificar cierro esa consulta y hago la consulta del update. La conexión del campo es la siguiente DBEdit---->DataSource2----->ZQuery1----->DataSource1----->ZTable---->ZConection1

Ese es el recorrido. Espero que se entienda.

Cris: es asi como dijistes , entendistes lo que quise hacer, tenes razon es la primera aplicación que hago cliente-servidor. Estuve buscando material sobre este tema y la verdad no encontré mucho, me gustaria que me quede claro.

Neftali: te entiendo lo que decis, si utilizo la opción 1 , en este caso no podría usar los query, osea hacer consultas? Tendria que usar los metodos de los dataset como lookup, locate todos esos?
Me gusta mucho usar el lenguaje Sql prefiero usar el metodo dos, para este caso en vez de trabajar con DbEdit hay que trabajar con Edit solamente??

Bueno muchachos estoy bastante perdido en este tema, realmente agradezco su ayuda si pueden pasar algun manual que trate este tema, los que yo tengo como 'La Cara Oculta de Delphi' o 'Delphi al Limite' solo hablan del primero metodo como dijo Neftali, cuando postie los codigos sql le aplique resaltar sintacis Sql en la vista previa quedaba hermoso jaja y cuando lo envio quedo desprolijo.
Saludos..!!!!
Responder Con Cita
  #9  
Antiguo 13-01-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.338
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por verito_83mdq Ver Mensaje
cuando postie los codigos sql le aplique resaltar sintacis Sql en la vista previa quedaba hermoso jaja y cuando lo envio quedo desprolijo.
No te preocupes, pasa a veces con la vista previa; Ya te lo he arreglado.

En cuando a realizarlo con SQL, la opción el:

(1) Lanzar la SQL de consulta (SELECT...)
(2) Cargar manualmente los resultados en los controles de edición (en esta caso no TDBEdit sino TEdit).
(3) Realizar los cambios.
(4) Al aceptar, montar la sentencia de actualización y lanzarla utilizando SQL de nuevo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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
Guardar correctamente un icono como ".ico" bosster_018 API de Windows 6 05-01-2010 16:03:48
como llenar un combobox y guardar los datos amix Conexión con bases de datos 7 07-10-2007 22:38:07
Como guardar datos con DBComboBox Damian666 MySQL 13 03-09-2007 21:11:03
Como guardar .JPG como Bitmap en Base de Datos Javi2 Gráficos 4 25-03-2007 17:21:57
como guardar los datos de un dblookupcombobox eliza0_n Varios 9 15-07-2005 01:38:05


La franja horaria es GMT +2. Ahora son las 13:46:13.


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