 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Vie 06 Oct, 2006 6:13 am Asunto: Parametros IBDataSet |
|
|
Otra vez por aqui compañeros...
Resulta que intento pasar parámetros a una consulta pero no he dado con la solución.
La propiedad SQLSelect de mi IBDataSet es la siguiente:
SELECT * FROM MITABLA
WHERE ID NOT IN (:PARAM)
| Código: |
AnsiString Parametros = "1,5,7,9";
IB1->ParamByName("PARAM")->Value = Parametros;
IB1->Open();
// La consulta con parametros deberia de ser algo a esto:
// SELECT * FROM MITABLA
// WHERE ID NOT IN (1,5,7,9)
// sin embargo no es asi...
|
No me marca error pero el resultado de la consulta no es el deseado. Alguien a trabajado con parametros utilizando la clausula IN??
De antemano gracias por los comentarios...
Saludos!!! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Mario Cdt


Registrado: 23 Sep 2004Mensajes: 22Ubicación: Tijuana B.C., México
|
Publicado: Vie 06 Oct, 2006 11:34 pm Asunto: |
|
|
Para poder realizar la consulta con IN debes de construir la sentencia SQL en tiempo de ejecucion.
Al pasarle al parametro con ParamByName, en realidad solo estas mandado un solo parametro cuando lo que requieres es mandar varios. Es decir el SQL que estas enviando solo contiene un valor dentro del parentesis, algo asi:
| Código: |
SELECT * FROM MITABLA
WHERE ID NOT IN ('1,5,7,9')
|
para mandar varios tu consulta debiera ser asi
| Código: |
SELECT * FROM MITABLA WHERE ID IN (:ID1, :ID2, :ID3)
|
y entonces pasarle cada valor con ParamByName.
Supongo que debido a que la cantidad de parametros es variable debes de construir el SQL en tiempo de ejecucion. _________________ Mario. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Lun 09 Oct, 2006 3:33 pm Asunto: |
|
|
Gracias Mario...
En efecto... es lo que me imaginaba... aunque trataba de simplifcarme las cosas. No me quedado otra que armar la consulta en tiempo d ejecución.... al menos en este caso.
Gracias por tu aporte.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|