Club Delphi  
    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 29-08-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 19
Abuelo7 Va por buen camino
Consulta en Tabla

Hola a todos.
Necesitaría un pequeño ejemplo de lo siguiente:

Tengo una base de datos con una tabla.
Dicha tabla tiene varias filas con 6 campos cada una.
El primer campo de nombre "pregunta" y los otros 5 Respuesta1 a Respuesta 5.
Lo que pretendo es iniciar una búsqueda por pregunta y al hallarla visualizar aleatoriamente 1 de las 5 respuestas.

Estoy atascado en este tema y por ello agradecería enormemente un pequeño ejemplo para salir del atasco.

Utilizo el Delphi 7

Gracias por vuestra atención.

Saludos.
Manuel Reixach
Responder Con Cita
  #2  
Antiguo 29-08-2008
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 Abuelo7, puedes utilizar la función Random.

Código Delphi [-]
var
 respuesta : Integer;
 RespuestaCad : String;
begin
  ...................
  //Asumimos que ya tenemos la busqueda
 Randomize;
 respuesta := RandomRange(1,5); 

 Case respuesta of
   1: RespuestaCad := Query1.FieldByName('respuesta1').AsString;
   2: RespuestaCad := Query1.FieldByName('respuesta2').AsString;
   3: RespuestaCad := Query1.FieldByName('respuesta3').AsString;
   4: RespuestaCad := Query1.FieldByName('respuesta4').AsString;
   5: RespuestaCad := Query1.FieldByName('respuesta5').AsString;
  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
  #3  
Antiguo 02-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 19
Abuelo7 Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola Abuelo7, puedes utilizar la función Random.

Código Delphi [-]
var
 respuesta : Integer;
 RespuestaCad : String;
begin
  ...................
  //Asumimos que ya tenemos la busqueda
 Randomize;
 respuesta := RandomRange(1,5); 

 Case respuesta of
   1: RespuestaCad := Query1.FieldByName('respuesta1').AsString;
   2: RespuestaCad := Query1.FieldByName('respuesta2').AsString;
   3: RespuestaCad := Query1.FieldByName('respuesta3').AsString;
   4: RespuestaCad := Query1.FieldByName('respuesta4').AsString;
   5: RespuestaCad := Query1.FieldByName('respuesta5').AsString;
  end;

Saluditos
Hola Caro.
Ante todo perdona el retraso en agradecer tu ayuda.
Me ha quedado muy claro.
He tardado tanto porque estoy batallando con una pequeña prueba pero no sé por que motivo no logro hacer lo que quiero.
Se trata de lo siguiente:
Tengo una tabla Paradox con 2 campos, (pregunta,respuesta).Ambos campos de texto.
He creado un Form con lo siguiente:
1 DataSource
1 Table
1 Edit1
1 Edit2
1 Button para salir
Necesito hacer lo siguiente:
Al introducir un texto (pregunta) en Edit1 que busque en la tabla y si lo encuentra
que aparezca la (respuesta) en el Edit2.
He realizado un montón de intentos y me aclaro.
Supongo que con la edad se me cruzan las neuronas.
Agradecería mucho tu ayuda.
Un cordial saludo.
Manuel Reixach
Responder Con Cita
  #4  
Antiguo 02-09-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Intenta un query simple:
Código SQL [-]
select respuesta from tu_tabla where pregunta = 'tu_pregunta'
O si usas la tabla, prueba con un Locate
__________________
Web
Responder Con Cita
  #5  
Antiguo 02-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
en esencia es lo que dice Felipe pero para completar....
En principio el Datasource no te serviría para nada ya que no tienes ningún
control que lo utilice yo utilizaría un Tquery y un database (entendiendo que accedes por BDE a la BD) con lo que nos quedaría:

1 button, 2 Edit, un query y un database

El database lo apuntas a la bd y el query al database y

Código Delphi [-]
//en el onbuttonclick del button
tuquery.clear;
tuquery.add('select respuesta from tu_tabla where pregunta = ''' +Editpregunta.text + '''');
tuquery.open;
if not(tuquery.isempty) then
 editrespuesta.text:=tuquery.fieldbyname('respuesta').asstring
else
 editrespuesta.text:='No existe respuesta a tu pregunta.';
//fin del onbuttonclick del button
Responder Con Cita
  #6  
Antiguo 02-09-2008
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 Abuelo7, puedes utilizar la función Locate para buscar la pregunta, si la opción es loPartialKey te hara una busqueda aproximada si es loCaseInsensitive te hara una busqueda exacta sin tomar en cuenta mayusculas y minusculas.

Código Delphi [-]
 //Si el locate nos devuelve True, es porque a encontrado
 if Table1.locate('pregunta',EditPregunta.Text,[loCaseInsensitive]) then  
  begin
    //En esta linea solo estamos colocando otro campo en el edit2
    EditRespuesta.Text := Table1.fieldByName('respuesta').AsString;
 
   //En vez de la anterior linea entraria el codigo que te puse al principio
   //porque ya estamos posicionados sobre esa pregunta
  end;

Yo te aconsejo que utilises un query en vez un table, también trae la función Locate y se usa de la misma forma, ademas que tienes opción para hacer consultas. Una observación, no sería mejor que al usuario le permitieras escoger la pregunta en vez de que la escriba, porque si es una pregunta larga y no la escribe bien, no la encontrara.

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 03-09-2008
Abuelo7 Abuelo7 is offline
Miembro
 
Registrado: ene 2006
Ubicación: Igualada(Barcelona) Spain
Posts: 51
Poder: 19
Abuelo7 Va por buen camino
Hola a todos.
Ante todo muchas gracias a vosotros por vuestra ayuda.Al fin lo conseguí.

Lo he hecho como tú me decías amigo Caro.
En cuanto a lo que me comentas de que el usuario escoja la pregunta, no es posible por una razón.

Lo que estoy empezando a construir es un programa de IA, donde el usuario entrará una frase o palabra y el programa contestará, si encuentra, con alguna frase o palabra asociada.

En principio tengo una tabla para hacer la prueba, que ha resultado bien, la tabla tiene 3 preguntas y tres respuestas.
Buenos días, contesta--muy buenos
Buenas tardes,contesta--buenas las tengas
Hola, contesta--hola amigo.

Esta prueba ha ido perfecta.

Ahora lo siguiente es que tanto la entrada como la salida aparezcan en un ListBox, con lo cual el usuario irá viendo como va la conversación.

Ademas y a ser posible en lugar de una respuesta, habrán varias, y que con un Randomize contestará una de ellas aleatoriamente.

Bueno y muchas mas ideas que tengo para ir haciendo.

Que os parece?

Creo que no está mal para mis 70 años.

Un cordial saludo.
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 23:10:42.


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