Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 21
Abuelo7 Va por buen camino
Hola amigos y amigas.

Respecto al tema que me está preocupando tengo lo siguiente:
unit PruebaBuena4;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables;

type
TForm1 = class(TForm)
ListBox1: TListBox;
Button1: TButton;
DataSource1: TDataSource;
Table1: TTable;
EditPregunta: TEdit;
procedure Button1Click(Sender: TObject);
procedure EditPreguntaKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.EditPreguntaKeyPress(Sender: TObject; var Key: Char);

var

respuesta : Integer;
RespuestaCAD : String;
begin
If key=#13 then


begin
Table1.Open;
If Table1.Locate('pregunta',EditPregunta.Text, [loCaseInsensitive]) then
Randomize;
respuesta := Random(5);
Case respuesta of
1: RespuestaCAD := Table1.fieldByName('respuesta1').AsString;
2: RespuestaCAD := Table1.fieldByName('respuesta2').AsString;
3: RespuestaCAD := Table1.fieldByName('respuesta3').AsString;
4: RespuestaCAD := Table1.fieldByName('respuesta4').AsString;
5: RespuestaCAD := Table1.fieldByName('respuesta5').AsString;
end;
Table1.Close;
begin



ListBox1.Items.Add(EditPregunta.Text);
ListBox1.Items.Add(RespuestaCAD);

EditPregunta.Text :='';



end;
end;
end;
end.

Me aparece un problema y es que al introducir una frase o palabra, por ejemplo 'hola' a veces me contesta bien con una de las 5 respuestas posibles, pero a veces falla y no contesta nada.
Lo tengo programado para que en el ListBox aparezca la frase del usuario y la respuesta, con lo cual cuando falla, solo aparece la frase del usuario y una línea en blanco.
Podeís decirme que estoy haciendo mal.?

Gracias.

Manuel Reixach
Responder Con Cita
  #2  
Antiguo 05-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
existe un begin mal puesto...a parte el ramdom de 5 puede darte valor 0 y no lo tienes contemplado...mejor ponerlo a 4 ... el procedure quedaría asi.

Código Delphi [-]
procedure TForm1.EditPreguntaKeyPress(Sender: TObject; var Key: Char);
var
 respuesta : Integer;
 RespuestaCAD : String;
begin
 If key=#13 then
 begin
  Table1.Open;
  If Table1.Locate('pregunta',EditPregunta.Text, [loCaseInsensitive]) then
  begin
   Randomize;
   respuesta := Random(4);
   Case respuesta of
    0: RespuestaCAD := Table1.fieldByName('respuesta1').AsString;
    1: RespuestaCAD := Table1.fieldByName('respuesta2').AsString;
    2: RespuestaCAD := Table1.fieldByName('respuesta3').AsString;
    3: RespuestaCAD := Table1.fieldByName('respuesta4').AsString;
    4: RespuestaCAD := Table1.fieldByName('respuesta5').AsString;
   end;
   Table1.Close;
   ListBox1.Items.Add(EditPregunta.Text);
   ListBox1.Items.Add(RespuestaCAD);
   EditPregunta.Text :='';
  end;
 end;
end;
Responder Con Cita
  #3  
Antiguo 05-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 21
Abuelo7 Va por buen camino
Hola Tony.
Gracias por tu ayuda.

De todas formas, he modificado el procedure como tú me indicas y sigue pasando lo mismo, hay alguna frase que no me la contesta.
Supongo que debe haber algo más que esta mal.

Saludos

Manuel
Responder Con Cita
  #4  
Antiguo 05-09-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
que raro, lo veo un poco imposible si haces un random de 4 solo puede salir 0,1,2,3,4 con lo que tienes acotada las posibilidades y RespuestaCAD siempre se rellena.... como no sea que en la tabla tengas alguna de las 5 respuestas vacia a alguna pregunta.....
Responder Con Cita
  #5  
Antiguo 05-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 21
Abuelo7 Va por buen camino
Hola otra vez Tony.

Parece ser que he encontrado el fallo.

En la tabla he tenido que renombrar los campos de respuesta, que estaban de respuesta1 a respuesta5, y poner de respuesta0 a respuesta4.

Y en el case, que estaba todo de 1 a 5, poner de 0 a 4.

Ahora lo he probado varias veces y no ha fallado ninguna.

Saludos.
Manuel
Responder Con Cita
  #6  
Antiguo 05-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Cita:
Empezado por Abuelo7 Ver Mensaje
En la tabla he tenido que renombrar los campos de respuesta, que estaban de respuesta1 a respuesta5, y poner de respuesta0 a respuesta4.
Y en el case, que estaba todo de 1 a 5, poner de 0 a 4.
Ahora lo he probado varias veces y no ha fallado ninguna.
Hola de nuevo, como te has dado cuenta al utilizar solo Random te toma en cuenta el 0 mas, es por eso que en el primer codigo que te puse he utilizado RandomRange(1,5); para que siempre nos devuelva un valor entre 1 y 5.

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
  #7  
Antiguo 05-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 21
Abuelo7 Va por buen camino
Hola Caro

Me pasa una cosa muy curiosa.
Ahora el programa siempre contesta a la frase de entrada y varía la respuesta, pero la respuesta4, que en realidad es la 5 no aparece nunca en ninguna de las 4 frases de entrada que tengo de prueba.

Lo que me comentabas de RandomRange(1,5), el Delphi5 que estoy utilizando no me lo acepta.

Gracias
Saludos amiga.
Manuel
Responder Con Cita
  #8  
Antiguo 10-09-2008
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 20
Elite237 Va por buen camino
Smile Mostrar datos en un DBGrid o StringGrid

Hola, quisera pedir una ayuda, pues tengo un problema:

Tengo 3 combobox, un stringgrid y un boton. Lo que quiero hacer es que el usuario seleccione un estado, una sucursal y una zona, y que al momento de presionar sobre el boton me muestre los datos que seleccione para despues mandarlos a imprimir.

Espero me haya dado a entender y me tiendan su ayuda.
Responder Con Cita
  #9  
Antiguo 13-09-2008
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Poder: 20
Elite237 Va por buen camino
Red face DBGrid

Hola Caro, gracias por tu tip, ya pude lograr lo del combobox, ahora mi duda es la siguiente, quiero que al momento de hacer doble clic me genere una consulta que me valide que lo que estoy haciendo clic sea igual a otro campo y me la muestre en otro DBgrid. Como le hago?Este es mi codigo de prueba:se que lo tengo que hacer en el evento dblclic, pero me manda un error con la sintaxis.

Código Delphi [-]
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
     query1.close;
     query1.sql.clear;
     query1.sql.add('select scob_ncobros,scob_periodo,scob_vendedor,scob_fecha from TSCOBROS');
     query1.sql.add('where scob_vendedor = '''+DBgrid1.cells[6, sgPorVenta.row]+''' and scob_fecha>=''2008-08-01 09:00:00'' and scob_fecha<=''2008-08-31 21:00:00''');
     query1.open;
     showmessage(IntToStr(query1.recordcount));
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 a un query en vez de a una tabla eldiegofg SQL 10 19-09-2007 12:46:39
Consulta Estado de una Tabla SQL Alejandro73 SQL 2 24-06-2007 00:03:00
Crear tabla en una BD en Server A desde consulta en tabla B en server B joaquinalberto MySQL 1 18-05-2007 10:39:27
Grabar Consulta en Tabla don malo Varios 1 12-03-2007 23:45:59
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01


La franja horaria es GMT +2. Ahora son las 04:09:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi