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 19-08-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
Muchas gracias a ambos!!

Las dos soluciones me dan errores (o problemas con el 'totalreg' o con el Fields[0]) ,xo sera debido a que no tuve en cuenta que la query tiene tambien un select, con lo que quedaria;

select count (num_decimo) as totalReg from reserva
where num_sorteo=:num_sorteo2

Me explico; deseo contar todos los décimos de lotería de la tabla "reserva" dado un numero de sorteo. La idea es introducir el numero de sorteo en el edit1 y que al darle a un botón salga en el edit2 el número que busco.

Entonces, ya que he de leer de algún modo el num_sorteo, cómo quedaría el códogo del botón? Qué debo poner antes de la línea: edit2.Text := DMPrimitiva.Qinsertarjueves.fieldbyname('totalReg').AsString;? (por poner un ejemplo de vuestras soluciones)

He probado con;
Datamodule.Query.parambyname('num_sorteo').value:= edit1.text;
Datamodule.Query.parambyname('num_sorteo2').value:= edit1.text;
pero no me funciona.


Muchas Gracias!!



Responder Con Cita
  #2  
Antiguo 19-08-2004
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Poder: 22
Luis F. Orjuela Va por buen camino
Lo que debes hacer es lo siguiente:

utilizar un componente TQuery, y en el evento Onclick de tu botón colocar lo siguiente:

with Query1 do
begin
SLQ.Close;
SQL.Clear;
SQL.Add('select count (num_decimo) as totalReg from reserva');
SQL.Add('where num_sorteo=:num_sorteo2');
ParambyName('num_sorteo2').AsInteger:=StrtoInt(Edit1.Text); //La funcion StrtoInt( ) depende del tipo de dato que sea tu parametro..
Open;
Edit2.Text:=IntoStr(Query1['totalReg']);
end;
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #3  
Antiguo 19-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá se me escape algo pero debería funcionar como lo tienes (con el segundo ParamByName). ¿Qué error te marca?

// Saludos
Responder Con Cita
  #4  
Antiguo 19-08-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
Ahora, utilizando tanto;

begin
Close;
SQL.Clear;
SQL.Add('select count (num_decimo) as totalReg from reserva');
SQL.Add('where num_sorteo=:num_sorteo2');
DMPrimitiva.Query1.ParambyName('num_sorteo2').AsInteger:=StrToInt(Edit10.Text); //La funcion StrtoInt( ) depende del tipo de dato que sea tu parametro..
Open;
Edit2.Text:=InttoStr(DMPrimitiva.Query1['totalReg']);
end;

como;

DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo').value:= edit10.text;
DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo2').value:= edit10.text;
edit2.Text := DMPrimitiva.Qinsertarjueves.fieldbyname('totalReg').AsString;

con Qinsertarjueves ('select count (num_decimo) as totalReg from reserva
where num_sorteo=:num_sorteo2')

el edit2 siempre da como resultado cero (cuando éste resultado no es el correcto porque tengo varios registros en la base de datos que contar).
No se donde está el error, seguiré buscando.

Muchas gracias a todos por vuestro interés!!
Responder Con Cita
  #5  
Antiguo 20-08-2004
Luis F. Orjuela Luis F. Orjuela is offline
Miembro
 
Registrado: may 2003
Ubicación: Bogotá - Colombia
Posts: 68
Poder: 22
Luis F. Orjuela Va por buen camino
Angry

Muestranos la estructura de la tabla "reserva", es decir, el nombre de sus campos y el tipo de cada uno , pues parece ser que tienes mal construida la instrucción SELECT que le pasas al Query.........
__________________
Ing. LUIS FERNANDO ORJUELA
BOGOTA - COLOMBIA
Responder Con Cita
  #6  
Antiguo 23-08-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
La estructura de la tabla RESERVA es la siguiente;

ABONADO ; Texto
NUMERO_SORTEO ; Numerico
NUMERO_DECIMO ; Numerico
NUM_SEGURIDAD_DECIMO ; Numerico
TIPO_SORTEO ; Texto

Como Clave Primaria tengo los 4 primeros campos.

Muchas Gracias!!
Responder Con Cita
  #7  
Antiguo 23-08-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por dsa132132
Ahora, utilizando tanto;
Código Delphi [-]
 
begin
Close;
SQL.Clear;
SQL.Add('select count (num_decimo) as totalReg from reserva');
SQL.Add('where num_sorteo=:num_sorteo2');
DMPrimitiva.Query1.ParambyName('num_sorteo2').AsInteger:=StrToInt(Edit10.Text);
 //La funcion StrtoInt( ) depende del tipo de dato que sea tu parametro..
Open;
Edit2.Text:=DMPrimitiva.Query1['totalReg'].asString;
end;
 
como;
 
DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo').value:= edit10.text;
DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo2').value:= edit10.text;
edit2.Text := DMPrimitiva.Qinsertarjueves.fieldbyname('totalReg').AsString;
 
con Qinsertarjueves ('select count (num_decimo) as totalReg from reserva
where num_sorteo=:num_sorteo2')

el edit2 siempre da como resultado cero
(cuando éste resultado no es el correcto porque tengo varios registros
en la base de datos que contar).
No se donde está el error, seguiré buscando.
Luis ha dado en el clavo, usas num_decimo cuando debias decir numero_decimo
Responder Con Cita
  #8  
Antiguo 23-08-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
Lo siento xo cometí un error cuando envié mi mensaje anoche,la estructura de la tabla RESERVA es esta;

ABONADO ; Texto
NUM_SORTEO ; Numerico
NUM_DECIMO ; Numerico
NUM_SEG_DECIMO ; Numerico
TIPO_SORTEO ; Texto

Disculpad.

Muchas gracias a todos por vuestro interes!!
Responder Con Cita
  #9  
Antiguo 24-08-2004
dsa132132 dsa132132 is offline
Miembro
 
Registrado: jul 2004
Posts: 29
Poder: 0
dsa132132 Va por buen camino
Hola a todos de nuevo!!

Al escribir;

DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo').value:= edit10.text;
DMPrimitiva.Qinsertarjueves.parambyname('num_sorteo2').value:= edit10.text;
edit2.Text := DMPrimitiva.Qinsertarjueves.fieldbyname('totalReg').AsString;

con Qinsertarjueves ('select count (num_decimo) as totalReg from reserva
where num_sorteo=:num_sorteo2')

Me da un error pq dice que no encuentra el parámetro num_sorteo2. Si se lo añado a Qinsertarjueves (junto con num_sorteo) me da un error y no puedo ejecutar la aplicación.

Alguna idea?

Muchas Gracias a todos!!
Responder Con Cita
  #10  
Antiguo 24-08-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿¡Qué es esto!?

Para empezar, una instrucción como

Qinsertarjueves ('select count (num_decimo) as totalReg from reserva
where num_sorteo=:num_sorteo2')

ni siquiera va a compilar. Si no pones el código tal y como lo estás usando difícilemente te podremos ayudar.

Además primero dices que te da un error con esa instrucción de que no encuentra el parámetro y luego dices que "si se le añado a...". Pues ¿no era que ya lo tenías?

Escribe con claridad cómo asignas la consulta SQL, cómo asignas los parámetros y en qué orden lo estás haciendo y ya veremos.

// 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


La franja horaria es GMT +2. Ahora son las 17:24:35.


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