![]() |
Cambiar Locate por Consulta
Hola a todos.
Tengo una aplicación conectada a una BD, con 2 tablas. Utilizo Locate en el desarrollo de la misma y quisiera cambiarlo por consultas con SQL. Lo he intentado de varias formas, pero no he sido capaz de conseguirlo. Este es el trozo de código por si pueden ayudarme.
Muchas gracias y saludos. Manuel |
Cita:
En principio sería algo así: Basta con que utilices esta SQL en un TQuery/TADOQuery/TIBQuery/... y deberías poder encontrar el registro |
Hola Neftali.
Gracias por contestar. He intentado hacer lo que me has indicado, pero creo que no lo hago bien, o mejor dicho que lo hago todo mal. Disculpa. He intentado sustituir la linea de If por esto:
El error que me da es: Type of expression must be BOOLEAN Gracias por tu atención. Manuel |
Hola Abuelo7,
¿Podrías describirnos lo que deseas hacer? El uso de TQuerys es un tanto diferente al de TTable. Los pasos en general son: 1. Cerrar el TQuery: Query1.Close; 2. Si es necesario, limpiar la SQL que tiene: Query1.SQL.Clear; 2. Asignarle la nueva SQL a ejecutar: Query1.SQL.Add(''); 3. Abrir la consulta o ejecutarla: Query1.Open; ó Query1.Execsql; Se emplea Open únicamente cuando la instrucción SQL corresponde a un SELECT, en otro caso es Execsql. Luego, para tener acceso a los datos regresados por la consulta (en caso de ser un SELECT) se procede de igual manera que con TTable: Etc... Sugiero que leas un poco la ayuda que proporciona Delphi al respecto sobre este componente. Si usas buscas en el foro con la palabra clave TQuery encontrarás muchos hilos en donde hay mucho código con el que puedes ilustrarte y comprender el uso del componente. Si nos describes que deseas hacer te podremos ser de mayor ayuda. Saludos, |
Si lo que quiere es localizar un numero que empiece a partir de en adelante:
SELECT TOP 1 * FROM Tabla WHERE NUMERO LIKE '12%' Si lo que quiere es localizar un numero que contenga el 12 en cualquier parte: SELECT TOP 1 * FROM Tabla WHERE NUMERO LIKE '%12%' Un saludo. |
Hola Delphius.
Lo quiero hacer es lo siguiente: El código insertado al principio del hilo, lo que hace el locate es que busca una palabra ingresada en el Edit, en la tabla preguntas. En dicha tabla esa palabra lleva asociado un número. En el siguiente If busca ese número en la tabla respuestas y ese número lleva asociada la frase de respuesta. Lo que quiero hacer es cambiar esas instrucciones Locate por consultas y obtener el mismo resultado. Gracias amigo. Saludos. |
Hola,
Entonces, tal vez la info adicional que 'necesitamos' para comprender el cambio de Locates a SQLs, parte desde: http://www.clubdelphi.com/foros/show...475#post316815 ¿Verdad? |
Ok. Topx.
La app funciona ya perfectamente, pero para poder elegir entre las varias respuestas para una misma pregunta es mejor trabajar con consultas que con locate. Saludos. |
Hola
Un ejemplo sencillo, no se si esto es lo que buscas. Se escribe una palabra en un edit y encuentra y muestra la respuesta relacionada a un numero en otro edit. Saludos |
Cita:
Bueno, aparte de lo que ya te han contestado, voy a intentar ampliar lo que te dije. Para conseguir algo similar al LOCATE, se trata de lanzar la consulta SQL que te comenté y luego comprobar si ha devuelto algun registro. No se si ahora ha quedado más claro. Un saludo. |
La franja horaria es GMT +2. Ahora son las 21:07:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi