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 11-06-2007
alan85 alan85 is offline
Miembro
 
Registrado: jun 2007
Posts: 11
Poder: 0
alan85 Va por buen camino
Question Cómo escribir en un DBEdit

Hola a todos, necesito de su ayuda. Tengo una BD de MySQL y mi aplicacion de hecha en delphi 6 donde tengo distintos DBEdits conectados a distintos campos de mi BD. Y cuando quiero insertar un nuevo reistro mediante los DBEdits o modificar alguno ya existente, no me permite escribir en ellos. Alguien podría darme una solucion, por favor.
Responder Con Cita
  #2  
Antiguo 12-06-2007
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Creo que a la pregunta le falta algo de información, aunque voy a intentar responderte, yo hago mi conexion a la bbdd con un adoconnection, a este le engancho un adoquery y a este un datasource y lo dbedit llevan enganchado el datasource y cada uno su datafield para que muestre el valor de ese campo, si lo que quieres es dar de alta o modificar un registro lo que tienes que hacer es, por lo menos en mi caso, adoquery.insert (para dar de alta un registro nuevo) o adoquery.edit (para modificar el registro activo) y cuando terminas hacer un post.
No se si te habré ayudado, espero que si.
Responder Con Cita
  #3  
Antiguo 12-06-2007
fidel fidel is offline
Miembro
 
Registrado: mar 2005
Posts: 381
Poder: 20
fidel Va por buen camino
Revisa su propiedad ReadOnly, debe estar en False para poder escribir.
Responder Con Cita
  #4  
Antiguo 12-06-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Como dice fidel, tu propiedad ReadOnly debe estar a True; y tambien checa la prpiedad ENABLED a true.

Si estas tratando de modificar un registro existente checa que tu codigo SQL en este caso la sentencia UPDATE este bien escrita igual tu INSERT para nuevos registros.

Karla
Responder Con Cita
  #5  
Antiguo 12-06-2007
Avatar de marcosl
marcosl marcosl is offline
Miembro
 
Registrado: may 2007
Ubicación: Buenos Aires, Argentina.
Posts: 27
Poder: 0
marcosl Va por buen camino
Idea

Lo que yo hecho en esos casos es que cuando quiera modificar o insertar nuevos registro es levantar un form nuevo con los edit a modificar, si quieres que aparesca los datos solo tienes que copiar el text del DBEdit al nuevo edit del formulario, luego cuando apretas aceptar envias un Update o un Insert al motor de SQL listo. al menos para mi funciona. si no me explico bien me lo dices. lo re veo. Ô_o
__________________
"Estos son mis principios. Si no le gustan, no importa: tengo otros..."
Responder Con Cita
  #6  
Antiguo 13-06-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Yo lo que creo es que estas usando un objeto TQuery y por lo mismo tienes la información de solo lectura.

Seria bueno que nos dijeras que componentes estas usando, que código estas usando y de ahi partimos.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 13-06-2007
alan85 alan85 is offline
Miembro
 
Registrado: jun 2007
Posts: 11
Poder: 0
alan85 Va por buen camino
Question

Bueno, antes que nada, gracias a todos por su atención. Voy a tratar de explicarme mejor. Lo que estoy utilizando son TQuerys, la manera en que yo enlazo mi BD (Mysql) es mediante un DataModule en donde pongo un TDatabase al que le asigno el alias y el nombre de la BD, esto lo hago para poderle mandar como parámetros el nombre de usuario y el password para acceder a la BD (de lo contrario cada vez que ejecute una query me pediria el user name y password), ahí mismo agrego un TTable por cada tabla, cada una la ligo con mi BD, y en el Fields Editor de cada una extraigo los campos.... Y es asi, como tengo ligada mi aplicacion con la base de datos.

Ahora, como les explicaba antes, en el form donde tngo los dbedits que extraje de el Fields Editor de Query2 (que esta ligada a la tabla clientes1) y ejecuto esta Query:

Código Delphi [-]
Query2.Close();
Query2.SQL.Clear();
Query2.SQL.Add('SELECT clave_cli,nombre,direccion,telefono,e_mail,edad,notas FROM clientes1;');
Query2.OpenDatabase();
Query2.Open;

...y automáticamente me posiciona en el primer registro de la tabla, y mediante un DBNavigator puedo recorrer todos los registro existentes en la tabla. Hasta aqui todo bien (espero me haya explicado un poco mejor) pero el problema es cuando me posiciono en un registro y quiero modificarlo escribiendo en alguno de los DBEdits, esto es lo que no se cómo hacer.
Responder Con Cita
  #8  
Antiguo 13-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
¿qué base de datos usas? porque si son tablas de escritorio, la filosofía de trabajo cambia a Cliente/Servidor.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 13-06-2007
alan85 alan85 is offline
Miembro
 
Registrado: jun 2007
Posts: 11
Poder: 0
alan85 Va por buen camino
Question

Cita:
Empezado por Lepe
¿qué base de datos usas? porque si son tablas de escritorio, la filosofía de trabajo cambia a Cliente/Servidor.

Saludos
Mi base de datos (BD) es elaborada en MySQL. Qué son las tablas de escritorio ????
Responder Con Cita
  #10  
Antiguo 13-06-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
Cita:
Empezado por alan85
Qué son las tablas de escritorio ????
por ejemplo Paradox, Acces, etc etc..... karla
Responder Con Cita
  #11  
Antiguo 13-06-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Al parecer estas usando el BDE para atacar la Base de datos, que sepas que deberás distribuir el BDE (Borland Database Engine) junto con tu aplicación para que puedas usarla (se traduce en instalar un programa más a tu cliente).

Para colmo de males ese programa está descontinuado, por lo que no hay versiones nuevas ni updates. Además la filosofía de uso no es la adecuada.

Tu base de datos es c/s (Cliente/Servidor o base de datos sql), por lo que nunca se debe usar un TTable con estas bases. La principal razón de estos Sistemas Gestores de Bases de datos es la eficiencia, buscando solo 1 registro (el que necesitas para modificar/visualizar.

Sin embargo, al usar un TTable, internamente se hace un "select * from tabla" por lo que traerá todos los registros que haya, haciendo que el rendimiento caiga empicado conforme vaya creciendo la tabla. Hablando en plata: Estarás usando un ferrari como si fuera un seiscientos.

Si no me equivoco, en MySql se suelen utilizar los componentes ZEOS (equivalente a tus TTables, Tquerys, TDatabase, etc) y éstos si son eficientes con el SGBBDD.

Si estas a tiempo te aconsejo que cambies tus componentes, si no... puedes activar la propiedad RequestLive de tu TQuery para salir del paso, permitiendo editar ese registro.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 13-06-2007 a las 22:24:51.
Responder Con Cita
  #12  
Antiguo 14-06-2007
alan85 alan85 is offline
Miembro
 
Registrado: jun 2007
Posts: 11
Poder: 0
alan85 Va por buen camino
Exclamation

Cita:
Empezado por Lepe
Si estas a tiempo te aconsejo que cambies tus componentes, si no... puedes activar la propiedad RequestLive de tu TQuery para salir del paso, permitiendo editar ese registro.

Saludos
Ps muchas gracias por el dato. La verdad es que no tenía idea de eso, apenas me inicio utilizando MySQL para mis bases de datos. Sin Embargo, estoy algo corto de tiempo como para modificarlo, asi que lo que intenté fue modificar la propiedad RequestLive y por lo menos mi problema de escribir en los DBEdits se solucionó. Tomaré en cuenta la información que me das para próximos proyectos.

Saludos.
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
como escribir en un txt desde interbase pani_alex Firebird e Interbase 6 03-01-2006 15:04:23
Como Leer y escribir en txt con flash CamiloVI HTML, Javascript y otros 13 06-10-2005 17:45:08
como escribir datos a un ListBox1 gulder API de Windows 2 23-05-2005 21:03:01
como escribir texto en diferentes angulos? miguelogm Gráficos 4 12-03-2005 13:18:01
¿Como escribir un SQL lo más estándar posible? taote SQL 4 24-02-2004 23:17:46


La franja horaria es GMT +2. Ahora son las 05:20:44.


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