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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola Abuelo7

Me alegra que te funcionara

Lo de 2 o 4 tablas es lo de menos, la idea al momento de realizar el if sería la misma

Con respecto a lo del memo, puedes hacer algo así

Código Delphi [-]
    Memo1.Lines.Add(Edit1.Text);
    if (Table1.Locate('palabra', Edit1.Text, [loCaseInsensitive])) and
       (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
      Memo1.Lines.Add(Table2.fieldByName('RESPUESTA').AsString);

pero tienes que tener en cuenta la posibilidad (aunque sea remota) de que el resultado de la búsqueda no retorno resultado alguno y, en esa situación, retornar algún tipo de respuesta estándar como "no entiendo la palabra X, podría explicármelo de otra forma", algo así

Código Delphi [-]
    Memo1.Lines.Add(Edit1.Text);
    if (Table1.Locate('palabra', Edit1.Text, [loCaseInsensitive])) and
       (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
      Memo1.Lines.Add(Table2.fieldByName('RESPUESTA').AsString)
    else
      Memo1.Lines.Add('no entiendo la palabra X, podría explicármelo de otra forma');

El ejemplo es con las 2 tablas, tendrías que adaptarlo a las 4 que uses ahora claro
Responder Con Cita
  #2  
Antiguo 14-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 ninguno.

Tu código ha funcionado perfectamente.
Ya estoy trabajando con las 4 tablas, sin ningún problema.
También he adicionado, en caso de que no encuentre la palabra o frase, el mensaje 'no encuentro lo que me dice, podría definirlo mejor?.Gracias'.

Voy a estar una semana de vacaciones.

De todas formas te comento lo siguiente por si me puedes dar una ayuda.

1.- Quisiera grabar la conversación en una tabla o fichero de texto, según veas mejor.

2.- Como debo hacerlo para que al detectar una palabra que no entiende, dentro de una frase, la guarde para añadirla en la respuesta.
Ejemplo: 'estoy frito'. Hay una frase de respuesta vinculada a 'estoy' que es 'que se siente al estar' y a eso se le ha de añadir 'frito'.

Perdona si estoy abusando mucho de tu amabilidad.
Muchas gracias y un cordial saludo.
Manuel Reixach

P.D. Desde el lugar de vacaciones iré dando un vistazo por el Foro.
Responder Con Cita
  #3  
Antiguo 14-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola Abuelo7

Cita:
Empezado por Abuelo7 Ver Mensaje
1.- Quisiera grabar la conversación en una tabla o fichero de texto, según veas mejor.
¿Qué quieres hacer luego con esa información? Es que dependiendo de lo que quieras hacer, será mejor/más fácil una opción u otra.

Cita:
Empezado por Abuelo7 Ver Mensaje
2.- Como debo hacerlo para que al detectar una palabra que no entiende, dentro de una frase, la guarde para añadirla en la respuesta.
Ejemplo: 'estoy frito'. Hay una frase de respuesta vinculada a 'estoy' que es 'que se siente al estar' y a eso se le ha de añadir 'frito'.
Entiendo que la palabra a buscar que puede fallar es lo escrito en Edit1 (si no es así corrígeme), por lo que será sencillo controlar esa palabra en la frase de respuesta:

Código Delphi [-]
    Memo1.Lines.Add(Edit1.Text);
    if (Table1.Locate('palabra', Edit1.Text, [loCaseInsensitive])) and
       (Table2.Locate('NUMERO', Table1.fieldByName('NUMERO').AsString, [loCaseInsensitive])) then
      Memo1.Lines.Add(Table2.fieldByName('RESPUESTA').AsString)
    else
      Memo1.Lines.Add('no entiendo la palabra ' + Edit1.Text + ', podría explicármelo de otra forma');

PD: felices vacaciones
Responder Con Cita
  #4  
Antiguo 14-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 inguno.

El tema de grabación quisiera poder utilizarlo después en futuras conversaciones, por ejemplo recordar nombre de usuario, fecha y demás.

En cuanto al asunto de la respuesta, se trata de lo siguiente:
Parte de lo contenido en el Edit1.Text y que no encuentra, hay que añadirlo al final de la Respuesta que sí ha encontrado.
Es el caso de 'estoy frito'.
Encuentra la respuesta a 'estoy' = 'que se siente al estar'
Le añade 'frito'
Y la respuesta queda así: 'que se siente al estar frito'.

Gracias amigo.

Manuel
Responder Con Cita
  #5  
Antiguo 16-09-2008
ninguno ninguno is offline
Miembro
 
Registrado: sep 2008
Posts: 45
Poder: 0
ninguno Va por buen camino
Hola

Cita:
Empezado por Abuelo7 Ver Mensaje
El tema de grabación quisiera poder utilizarlo después en futuras conversaciones, por ejemplo recordar nombre de usuario, fecha y demás.
Bueno, si es para recordar determinados datos personales y poderlos usar en conversaciones futuras, yo usaría una base de datos (¿Firebird?)

Cita:
Empezado por Abuelo7 Ver Mensaje
En cuanto al asunto de la respuesta, se trata de lo siguiente:
Parte de lo contenido en el Edit1.Text y que no encuentra, hay que añadirlo al final de la Respuesta que sí ha encontrado.
Es el caso de 'estoy frito'.
Encuentra la respuesta a 'estoy' = 'que se siente al estar'
Le añade 'frito'
Y la respuesta queda así: 'que se siente al estar frito'.
Esta parte es la que no termino de entender. Según el código expuesto anteriormente, tu no buscas palabras contenidas en Edit1, sino que buscas todo el contenido de Edit1. Entonces, ¿cómo puedes saber qué palabra usar? ¿O lo que buscas son frases completas? Si es así, ¿Cómo las comparas?
Responder Con Cita
  #6  
Antiguo 16-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 amigo ninguno.

De acuerdo en lo de utilizar una base de datos con una tabla para almacenar los datos que puedan ser utilizados despues en conversaciones.

En los demas segun he podido averiguar al analizar las tablas, funciona de la siguiente manera.

En principio hay 4 tablas. 2 que contienen frases que puede introducir posiblemente el usuario. y 2 que contestan a esas frases.

Lo que ocurre, creo yo, es que primero busca la frase entera introducida, si no la encuentra, entonces separa las palabras de la frase y busca esas palabras una por una.
Ese es el caso de -estoy frito-, no encuentra la frase, pero luego al separar por palabras encuentra -estoy-, aplica la respuesta que tiene, en este caso -que se siente al estar- y le adjunta la palabra no encontrada, -frito-, con lo cual queda la respuesta completa, -que se siente al estar frito-.
Como veras un poco liado.

Gracias amigo.
Manuel.
Responder Con Cita
  #7  
Antiguo 22-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.

Ya estoy de vuelta de las mini-vacaciones.
Saludos a todos.

Manuel
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 19:05:10.


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