Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Seleccionar Campo a Consultar (https://www.clubdelphi.com/foros/showthread.php?t=54282)

eudy.net 13-03-2008 06:55:37

Seleccionar Campo a Consultar
 
Hola que tal,

Tengo una curiosidad, estoy haciendo un programa que se conecta a una base de datos (SQL SERVER 2000), Selecciona el campo mediante un combobox (combobox1.text) y el registro lo selecciona mediante un edit (edit2.text). Y la hora de consultar mediante un Tquery no sé como seleccionar el campo. Aqui les dejo mi código para que me entiendan mejor:

consulta := 'SELECT * FROM Tconductor WHERE' + AQUI VA EL CAMPO + '=' + QuotedStr(edit2.Text);

Ya que si lo hago por medio de QuotedStr :

consulta := 'SELECT * FROM Tconductor WHERE' + quotedstr (combobox1.text) + '=' + QuotedStr(edit2.Text);

me le agrega comillas simples (') al comienzo y al final de la expresión, esto resultaría del siguiente modo:

select * from Tconductor where
'campo' = 'registro a buscar'

y como todos saben debe de ir el campo sin esas comillas para que el Query sea posible. Eso es exactamente lo que quiero, que mediante un pequeño arreglito a mi codigo de arriba :o pueda seleccionar el campo, sin esas comillas, para que la busqueda sea posible. Perdon si fui un poco redundante, solo quería que entendieran mi problema :rolleyes:

Y si lo dejo sin el quotedstr me sale: que es un caracter desconocido cerca de '='.



GRACIAS ANTICIPADAS !!!!!!!:D

"Por más dura que sea la piedra, la insistencia de la gotera termina haciendo en ella un hueco, el cual nunca volverá a ser rellenado"


Neftali [Germán.Estévez] 13-03-2008 09:55:41

Cita:

Empezado por eudy.net (Mensaje 272914)
Ya que si lo hago por medio de QuotedStr :

consulta := 'SELECT * FROM Tconductor WHERE' + quotedstr (combobox1.text) + '=' + QuotedStr(edit2.Text);

me le agrega comillas simples (') al comienzo y al final de la expresión, esto resultaría del siguiente modo:

select * from Tconductor where
'campo' = 'registro a buscar'


¿Porque agregas las comillas al campo? No lo hagas, no es necesarios. Esto te debería funcionar, si no he entendido mal...

Código Delphi [-]
consulta := 'SELECT * FROM Tconductor WHERE' + combobox1.text + '=' + QuotedStr(edit2.Text);


La propiedad Text del combobox ya es de tipo string, por lo tanto no debes hacerle nada.

eudy.net 14-03-2008 05:20:57

Todavia...
 
Eso lo sé, pero cuando lo hago de ese modo me sale el error SQL siguiente:

Incorrect Syntax near "=",

lo cual significa que no me está leyendo el valor del combo box, sino que me lo está leyendo tal y como lo escribo COMBOBOX1.text

Creo que al igual que QuotedStr debe de existir una función para este tipo de casos, el problema es que no sé cual será :(

Si alguien sabe, o puede ayudarme a solucionar este pequeñito PROBLEMON por favor no dude en decirmelo :)

Gracias Anticipas,

"Una duda vale más que mil razones"

Neftali [Germán.Estévez] 14-03-2008 12:01:46

Ejecuta paso a paso y coloca un MessageDlg que te muestre la consulta SQL antes de ejecutarla para comprobar que es correcta.

Código Delphi [-]
  MessageDlg('SQL: ' + consulta, mtInformation, [mbOK], 0);

Caro 14-03-2008 14:22:26

Hola, entre el Where y el campo que le mandas como parametro debería haber un espacio, has lo que te dice Neftali verifica si la consulta es correcta.

Código Delphi [-]
 consulta := 'SELECT * FROM Tconductor WHERE ' + combobox1.text + '=' + QuotedStr(edit2.Text);

Saluditos

eudy.net 14-03-2008 21:09:47

Muchas gracias
 
Jajaja Este era uno de esos problemas TONTOS,

efectivamente el PROBLEMON era una sencillez

'SELECT * FROM Tconductor WHERE' + combobox1.text + '=' + QuotedStr(edit2.Text);

como ven en el primera linea el WHERE no tenía el espacio y me los estaba consultando del siguiente modo:

select * from Tconductor WHERECAMPO = "registro".

Gracias Neftali y Caro :D, ya resolví mi inquietud


La franja horaria es GMT +2. Ahora son las 08:00:19.

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