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 13-03-2008
eudy.net eudy.net is offline
Miembro
 
Registrado: jul 2006
Posts: 29
Poder: 0
eudy.net Va por buen camino
Question 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 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

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



GRACIAS ANTICIPADAS !!!!!!!

"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"


Última edición por eudy.net fecha: 13-03-2008 a las 06:57:53.
Responder Con Cita
  #2  
Antiguo 13-03-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por eudy.net Ver Mensaje
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 14-03-2008
eudy.net eudy.net is offline
Miembro
 
Registrado: jul 2006
Posts: 29
Poder: 0
eudy.net Va por buen camino
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"
Responder Con Cita
  #4  
Antiguo 14-03-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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);
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-03-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, 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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.

Última edición por Caro fecha: 14-03-2008 a las 14:44:57.
Responder Con Cita
  #6  
Antiguo 14-03-2008
eudy.net eudy.net is offline
Miembro
 
Registrado: jul 2006
Posts: 29
Poder: 0
eudy.net Va por buen camino
Thumbs up 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 , ya resolví mi inquietud
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
Seleccionar el ultimo registro de un campo juangabriel1786 MySQL 2 25-08-2007 04:35:32
LookupListbox, seleccionar campo no centrado lacovera OOP 0 08-01-2007 10:13:21
No seleccionar un campo de un DBGRID User_baja1 Varios 1 26-05-2005 08:51:49
como consultar con un string en un campo memo nvalerio Tablas planas 1 15-04-2004 17:08:11
como consultar con un string en un campo memo nvalerio Tablas planas 1 15-04-2004 16:34:19


La franja horaria es GMT +2. Ahora son las 10:50:48.


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