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 13-12-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Goyo
Recuerda que en delphi se puden poner nombres diferentes a los componentes, el nombre es lo de menos, es simplemente un idetificador, ademas de ser bueno usarlos para referencias, si usas un query temporal, es bueno llamarlo TemQuery o Tquery, asi cuando se ve el codigo se interpreta mejor.
Efectivamente el AQTemp es un query normal.
Ahora yo le pongo asi, porque uso ado, entonces me guio mejor poniento A de ADO, Q de Query y Temp de temporal.
Es solo una manera de guiarme.
Que bueno que te funcione.
Saludos
Responder Con Cita
  #2  
Antiguo 13-12-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
Unhappy

ya te entendi Caral, solo que cuando pulso el boton agregar (obviamente tengo que tener seleccionado un elemento del dbgrid) me marca el siguiente error:

Invalid use of keyword.
Token:=
Line Number 1'


el AQTemp (Query) en su propiedad DataSource = DM.DsPersonas
que es la tabla que muestro en el DBGrid
Responder Con Cita
  #3  
Antiguo 13-12-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Goyo
Aqui me parece que pueden estar pasando varias cosas:
1-El dato id_personas , no es string, es integer.
2-Lo que quieres es el dato Titular, que te da el nombre, ese es string.
Bueno veamos soluciones:
1- Si quieres el dato id_personas en el combobox, cambia astring por value o asInteger, pero tambien la variable la tienes que cambiar.
Código Delphi [-]
 var
 personas: integer;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where id_personas = '+personas;
   AQTemp.Open;
   Combobox1.Text := AQTemp.Fields[0].Value;
2-Si quieres el dato titular, esta en segundo plano en la tabla, segun veo:
id_personas (1), Titular (2), Cargo (3)
por esta razon se ubica en 1 no en cero.
Código Delphi [-]
 var
 personas: string;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where Titular = '+personas;
   AQTemp.Open;
   Combobox1.Text := AQTemp.Fields[1].AsString;
Prueba y me dices
Saludos
Responder Con Cita
  #4  
Antiguo 13-12-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
mira Caral, en efecto id_personas es de tipo Integer (autonumerico), Titular y Cargo son de tipo String,

el codigo lo escribi segun lo indicado...

Código Delphi [-]
procedure TFormCaptura.BitBtnAgregarClick(Sender: TObject);
 var
 personas: string;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where id_personas = '+personas;
   AQTemp.Open;
   ComboBox1.Text := AQTemp.Fields[2].AsString;
end;

y realmente lo que quiero en el ComboBox es que me aparezcan los datos del Titular.

y me sigue mostrando el mismo error:
Invalid use of keyword.
Token:=
Line Number 1'


gracias por el momento..
saludos..
Responder Con Cita
  #5  
Antiguo 13-12-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola Goyo
No es lo correcto, ve la diferencia:
Lo que as puesto:
Código Delphi [-]
procedure TFormCaptura.BitBtnAgregarClick(Sender: TObject);
 var
 personas: string;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where id_personas = '+personas;
   AQTemp.Open;
   ComboBox1.Text := AQTemp.Fields[2].AsString;
end;
Aqui estas haciendo alucion al dato Cargo, que esta en la tercera posicion osea 2
Tienes que hacerlo asi:
Código Delphi [-]
procedure TFormCaptura.BitBtnAgregarClick(Sender: TObject);
 var
 personas: string;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where id_personas = '+personas;
   AQTemp.Open;
   ComboBox1.Text := AQTemp.Fields[1].AsString;
end;
Esta es la linea clave:
Código Delphi [-]
 ComboBox1.Text := AQTemp.Fields[1].AsString;
Osea para que lo entiendas:
(0)= id_personas
(1)= Titular
(2)= Cargo
asi trabaja esto, de todos modos no entiendo por que te da ese error, intenta haciendolo asi.
Otro problema puede ser que no entienda la variable, si sigue el problema lo atacamos por otro lado, pero este no nos vence.
Saludos
Responder Con Cita
  #6  
Antiguo 13-12-2006
Avatar de Goyo
Goyo Goyo is offline
Miembro
 
Registrado: feb 2006
Posts: 89
Poder: 19
Goyo Va por buen camino
Unhappy

mira te voy a explicar de otra manera: pongo el codigo tal como me lo indicaste:

Código Delphi [-]
procedure TFormCaptura.BitBtnAgregarClick(Sender: TObject);
 var
 personas: string;
begin
   AQTemp.SQL.Text := 'Select * From Personas Where id_personas = '+personas;
   AQTemp.Open;
   ComboBox1.Items.Text := AQTemp.Fields[1].AsString;
end;

me marca el mismo error:
Invalid use of keyword.
Token:=
Line Number: 1'


No entiendo porque el error, si lo hago tal como me lo indicas...
otra cosa, el AQTemp en su propiedad DataSource le asigno DM.DsPersonas
en el DBGrid solo muestro el campo Titular (de la tabla Personas), este es de tipo String (Char en MySQL), en el componente AQTemp es lo unico que le hago poner el DataSource=DM.DsPersonas...

gracias Caral por tu ayuda... y seguire intentandolo, de antemano que tengas un buen día...
saludos y felices fiestas

Última edición por Goyo fecha: 13-12-2006 a las 23:56:10.
Responder Con Cita
  #7  
Antiguo 14-12-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Bueno intentemos un truco:
El dbgrid, esta conectado a una tabla o query, entonces, contiene los datos.
Pon un DBEdit en el form y asignale en datasource del dbgrid.
Asignale al dbedit el campo id_personas .
Bueno ya estara biendo ese dbedit, el campo id_personas segun se cambia o recorre el dbgrid.
Entonces, pon este codigo en el boton:
Supongamos que el DBEdit se llama DBEDit1:
Código Delphi [-]
procedure TFormCaptura.BitBtnAgregarClick(Sender: TObject);
// var
// personas: string;
begin
   AQTemp.SQL.Text := 'Select Titular From Personas Where id_personas = '+DBEdit1.Text;
   AQTemp.Open;
   ComboBox1.Items.Text := AQTemp.Fields[0].AsString;
end
Analizalo bien, hice varios cambios, si quieres estar seguro copialo y pegalo.
Deberia funcionar, ahora en vez de buscar una variable, buscara un campo igual al dbedit1.
La razon por la que no camina es por que hay tres campos en la tabla y estas queriendo ver solo uno, diciendo al sql, que te de todos, por hai va la cosa.
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
pasar codigo DBGrid a cxGrid, seleccionar una fila y cambiar el color, no desapareser sakuragi OOP 13 11-02-2006 10:02:07
pasar mouse por dbgrid o cxgrid y colorear fila sakuragi Gráficos 0 06-08-2005 01:37:56
pasar de listbox a clipboard lastfenix OOP 4 14-07-2005 09:50:50
Pasar datos desde un DBGrid jdangosto OOP 2 19-02-2005 16:55:37
Pasar enfoque de Celdas en dbGrid AGAG4 Varios 9 15-09-2004 02:00:30


La franja horaria es GMT +2. Ahora son las 12:52:47.


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