Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
Thumbs up ver una consulta en un edit

Q tal, mi consulta es la siguiente:

Tengo unos datos que quiero modificar, son datos de unos clientes,lo que quiero es que cuando yo ingreso el codigo del cliente en un edit me muestre en los edit siguientes los datos que yo le pido, hice lo siguiente:

edit_codigo.text:=adoquery1.fieldbyname('select nombre from clientes where (codigo ="'+edit_nombre.Text+'")').asstring;

este es una de las sentencias para que me aparezca el nombre en un edit, pero me tira el siguiente error:

Undeclared identifier: 'edit_nombre'
Statement expected, but expression of type 'TCaption' found

Estaria mas que agradecido si me pueden solucionar esto, se que talves sea algo sencillo, pasa que es para la facultad y digo esto paar que me entiendan mis pocos conocimientos.

PD: perdon si esta mal posteado!
Responder Con Cita
  #2  
Antiguo 28-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola huwabe78, primero de todo, darte la bienvenida al ClubDelphi, recomendar una lectura de la Guía de Estilo
y aprender a usar los tag para envolver el código.

Vayamos a tú pregunta:

El problema, es que lo estás montando mal.

El adoquery tiene una propiedad llamada SQL de tipo string, que es la que debes usar para insertar las sentencias SQL que quieras ejecutar.
Tras rellenar esta propiedad, para ejecutarla puedes usar el método Open o la propiedad Active ponerla a true, en el caso de las sentencias de consultas. Para las sentencias que impliquen alteración de los datos (insert, delete, update, create, drop, etc) debes usar el método ExecSQL.

Una vez ejecuta la sentencia, para recuperar los datos, si debes usar la propiedad FieldByName para leer cada campo devuelto.

Tu caso podría quedar de la siguiente manera:

Código Delphi [-]
 AdoQuery1.Close; //Cerramos la consulta por si ya estuviera abierta.
 AdoQuery1.SQL.Clear; //Limpiamos el texto del SQL por si hubiera texto de consultas anteriores
 AdoQuery1.SQl.Text := 'select nombre from clientes where codigo ="'+edit_nombre.Text+'" '; //Ponemos la consulta en el SQL.Text
 AdoQuery1.Open; //ejecutamos la sentencia de lectura
edit_codigo.text:=adoquery1.fieldbyname('nombre').asstring; //visualizamos en edit_codigo el valor de la columna nombre en el primer registro

NOTA: El texto que debes introducir en el paréntesis de FieldByName() es el nombre del campo entre comilla simple del que quieres recuperar. Puedes usar tambien la propiedad Fields[indice] que es igual que FieldByName, pero en lugar de pasarle un nombre de campo le pasas el índice del campo en la select.

Espero te sirva, cualquier duda ya sabes.

Saludos
Responder Con Cita
  #3  
Antiguo 28-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
La verdad que me sirvio bastante lo tuyo, ahora tengo otro problema con esto, es que me tira el siguiente error:
No coinciden los tipos de datos en la expresiön de criterios

te muestro el codigo finalizado que arregle con lo que me pasastes

AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQl.Text := 'select nombre from clientes where codigo ="'+edit_codigo.Text+'" ';
AdoQuery1.Open;
edit_nombre.text:=adoquery1.fieldbyname('nombre').asstring;

la funcion deberia ser que cuando yo coloco el codigo del cliente y apreto un boton (que es donde esta iunserto este codigo) me muestra los datos en un edit para poder modificarlos.

consulta, el echo de que el codigo sea numerico puede tener algo que ver?
Responder Con Cita
  #4  
Antiguo 28-11-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por huwabe78
consulta, el echo de que el codigo sea numerico puede tener algo que ver?
Por supuesto que tiene que ver. Si el tipo de dato en la tabla es numérico, ya que pasarle un número y no un string como se lo pasamos hasta ahora.

Así quedaría

Código Delphi [-]
AdoQuery1.Close;
AdoQuery1.SQL.Clear; 
AdoQuery1.SQl.Text := 'select nombre from clientes where codigo ='+StrToInt(edit_nombre.Text)+' '; //hacemos un cast del texto que hay en el edit, para pasarlo a Entero y quitamos las comillas dobles que servian al SQL para indicarle que el valor introducido era de tipo string
AdoQuery1.Open;
edit_codigo.text:=adoquery1.fieldbyname('nombre').asstring;

Prueba a ver que tal.

Saludos
Responder Con Cita
  #5  
Antiguo 28-11-2006
huwabe78 huwabe78 is offline
Miembro
 
Registrado: oct 2006
Posts: 18
Poder: 0
huwabe78 Va por buen camino
te estoy muy pero muy agradecido, pero en lugar de convertirlo lo unico que hice fue sacarle las comillas dobles y funciono exelente!

Muchas gracias

pd: en estos dias me van a ver mucho dar vueltas por aca!

salu2
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
Consulta sobre controles Edit jcheco Varios 2 10-04-2006 11:51:53
Comparar un registro de un edit con un registro de una tabla en una consulta Damian666 SQL 10 01-10-2005 00:43:20
como visualizar el resultado de una consulta en un edit Damian666 Conexión con bases de datos 9 29-09-2005 18:33:17
problemas con el el .Edit: qryCONSULTA.Edit McRose Conexión con bases de datos 3 07-06-2005 15:46:39
consulta dbgrid y edit, urgente PEITO SQL 1 02-06-2003 13:46:56


La franja horaria es GMT +2. Ahora son las 18:23:08.


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