Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
randomize y firebird

Hola amigos de nuevo
tengo un formulario con 10 label en cada label debe aver una pregunta y tres radiobutton para cada pregunta que en un radiobutton debe estar la repuesta correcta.primero que nada quisiera saber si me pueden ayudar ya que e buscado en sangoogle y no he ayado nada sobre como puedo escoger 10 preguntas aleatorias de una Bd que tengo en firebird en la Bd tengo 100 preguntas pero quisiera saber como puedo llenar mi formulario con 10 preguntas aleatorias de la bd.
Responder Con Cita
  #2  
Antiguo 07-04-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Utiliza Random para obtener un número de 1 a 100 (o el total de registros que tenga la base)
Luego te vas al primer registro y haces Next tantas veces como te haya devuelto Random.

Otra opción es que cada pregunta tengo un número de identificador (un ID).
Con Random eliges un número.
Buscas esa pregunta.

(Por favor, revisa tu ortogradfía antes de emitir los post, gracias)
Responder Con Cita
  #3  
Antiguo 07-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola bothy, supongo que te refieres, a la consulta que te devuelva el registro que te da Random, puedes hacerlo de dos formas, utilizando la función Skip o el operador In, para este ultimo necesitas un identificador como te dice duilioisola, el cual tendrá un numero correlativo, para ello primero debes armar la cadena con los registros que quieres:

Código Delphi [-]
Randomize;
for I:=0 to 9 do
begin
  Numero:=Random(100)+1;
  Query.Close;
  Query.Sql.Text := 'Select First 1 * From (Select Skip '+IntToStr(Numero)+' * From Tabla)';
  Query.Open;
  .....................
end;
 
//Para el segundo caso
  Identificadores := '1,20,30,50';
  Query.Close;
  Query.Sql.Text := 'Select * From tabla Where identificador in ('+Identificadores+')';
  Query.Open;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 07-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Muchas gracias colegas por ayudarme .
caral gracias es lo que buscaba.
Responder Con Cita
  #5  
Antiguo 07-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Cita:
Empezado por bothy Ver Mensaje
Muchas gracias colegas por ayudarme .
caral gracias es lo que buscaba.
up me equiboque no es caral eres caro muchisimas gracias, es lo que andaba buscando..
Responder Con Cita
  #6  
Antiguo 08-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
hola de nuevo caro muchas gracias por la ayuda de nuevo pero me podrias ayudar diciendome como quedaria el codigo si son 10 label donde se mostrarian las pregutas..

Cita:
Empezado por Caro Ver Mensaje

Código Delphi [-]Randomize; for I:=0 to 9 do begin Numero:=Random(100)+1; Query.Close; Query.Sql.Text := 'Select First 1 * From (Select Skip '+IntToStr(Numero)+' * From Tabla)'; Query.Open; ..................... end; //Para el segundo caso Identificadores := '1,20,30,50'; Query.Close; Query.Sql.Text := 'Select * From tabla Where identificador in ('+Identificadores+')'; Query.Open;


Saluditos
Responder Con Cita
  #7  
Antiguo 08-04-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo bothy, puedes utilizar un Case:

Código Delphi [-]
Randomize;
for I:=0 to 9 do
begin
  Numero:=Random(100)+1;
  Query.Close;
  Query.Sql.Text := 'Select First 1 * From (Select Skip '+IntToStr(Numero)+' * From Tabla)';
  Query.Open;
    
  Case I of
    0 : Label1.Caption := Query.FieldByName('pregunta').AsString;
    1 : Label2.Caption := Query.FieldByName('pregunta').AsString;
    2 : Label3.Caption := Query.FieldByName('pregunta').AsString;
    3 : Label4.Caption := Query.FieldByName('pregunta').AsString;
    ...................................................................................
  end;
end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 09-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
Hola de Nuevo caro
y muchas Gracias Por la ayuda pero tengo un problemita
e puesto el codigo como usted lo puso en el post pero al momento de generar las preguntas no sale nada. y tampoco me marca nigun error.
A qui te dejo el codigo que e puesto
Código Delphi [-]
procedure TForm1.GenerarPreguntasClick(Sender: TObject);
var i,numero:integer;
begin
    Randomize;
for I:=0 to 2 do
begin
  Numero:=Random(100)+1;
  Query1.Close ;
  Query1.SQL.Text := 'Select First 1 * From (Select Skip '+IntToStr(Numero)+' * From MiTabla)';
  Query1.Open ;


  Case I of
    0 : Label1.Caption := Query1.FieldByName('nombre').AsString;
    1 : Label2.Caption := Query1.FieldByName('nombre').AsString;
    2 : Label3.Caption := Query1.FieldByName('nombre').AsString;


  end;
end;
Responder Con Cita
  #9  
Antiguo 09-04-2010
bothy bothy is offline
Miembro
 
Registrado: ene 2010
Posts: 144
Poder: 15
bothy Va por buen camino
hola caro
muchas gracias el problema era que las pregutas no las tenia todabia en la tabla
pero me di cuenta y ya quedo ..
muchimas gracias caro por la ayuda..
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 usar RANDOMIZE yessika19 Varios 6 24-10-2018 12:20:13
randomize bothy Varios 7 03-03-2010 19:33:11
Firebird 1.5.3 Error:No puede ejecutarse Firebird Guardian xq ya hay una instancia Delphius Firebird e Interbase 5 26-01-2007 10:19:20
Diferencia entre random y randomize Tapax C++ Builder 9 08-12-2006 22:40:26
alguien ha utilizado Firebird DDX provider? (conectarse con db en firebird!) JuanErasmo .NET 1 04-11-2006 16:17:12


La franja horaria es GMT +2. Ahora son las 22:36:20.


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