Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-04-2008
delphijm delphijm is offline
Miembro
 
Registrado: abr 2008
Posts: 47
Poder: 0
delphijm Va por buen camino
Unhappy Select con parametros String

Hola a todos,

Tengo un SQLDataSet al que, mediante codigo, le asigno la propiedad CommandText d ela siguiente forma:

--> SQLds_articulos.CommandText:='select * from articulos where IDarticulo=:IDarticulo';

Donde IDarticulo es un parametro de tipo String al que le doy valor a continuacion (El valor lo tomo del registro activo de otro SQLDataSet:

--> SQLds_articulos.ParamByName('IDarticulo').AsString:=cdsLineas.FieldByName('Articulo').AsString;

El problema es que al hacer el open, no me hace la consulta y, ademas, al intentar consultar la propiedad RecordCount me lanza un error del tipo:

--> EDataBase Error with message 0x0005 : Operation not supported

Tengo otros casos parecidos en los que el parametro es tipo Integer y me funcionan correctamente, el problema debe estar en el tipo string del parametro pero no se como solucionarlo...

Si uso el commandtext sin el parametro me funciona correctamente

--> SQLds_articulos.CommandText:='select * from articulos where IDarticulo="'+cdsLineas.FieldByName('Articulo').AsString+'"';

Estoy usando Delphi 2007 i MySQL

Si alguien puede ayudarme le estare muy agradecido!!

Saludos
Responder Con Cita
  #2  
Antiguo 09-04-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
El nombre del parámetro no puede coincidir con el nombre del campo de tu tabla, como parece ser tu caso.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 09-04-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Hasta donde se, no importa si el nombre del parámetro es igual al nombre del campo, ya que estos se accesan desde propiedades diferentes (Fields, parameters).

Lo que yo verificaría sería que el ID del artículo no tuviera espacios y luego verificar que cdsLineas.FieldByName('Articulo').AsString realmente contenga un ID de artículo.
__________________

Responder Con Cita
  #4  
Antiguo 09-04-2008
delphijm delphijm is offline
Miembro
 
Registrado: abr 2008
Posts: 47
Poder: 0
delphijm Va por buen camino
Hola Contraveneno,

Antes de nada gracias por responder...

Asi es, el nombre del parametro puede ser el mismo, en otras ocasiones he hecho esto mismo con el nombre del parametro y del campo identicos (pero de tipos integer) y funciona correctamente...

En cuanto a las verificaciones que me comentas ya las he hecho, y para mi mala suerte 1000 mas... El valor que asigno al parametro es correcto y valido y existe en la BBDD... De hecho cuando hago el select sin parametro sino normal me funciona...

Creo que el problema esta en las comillas... Si ves el mensaje original, en el select sin parametros que me funciona, el valor lo entrecomillo con comillas dobles y me funciona... El tema esta en que no se como entrecolillar el parametro... Si lo hago no me reconoce el parametro y si al valor del parametro le coloco las comillas dobles antes y despues tampoco me funciona.... Raro no??
Responder Con Cita
  #5  
Antiguo 16-04-2008
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 196
Poder: 20
darkerbyte Va por buen camino
Lightbulb Estimular la flojera

Prueba con comillas simples,


SQLds_articulos.CommandText:=
'select * from articulos where IDarticulo='+ #39 + cdsLineas.FieldByName('Articulo').AsString + #39;
Responder Con Cita
  #6  
Antiguo 18-04-2008
Avatar de rulo_m
rulo_m rulo_m is offline
Miembro
 
Registrado: dic 2007
Posts: 70
Poder: 17
rulo_m Va por buen camino
puedes usar

quotedstr(cdsLineas.FieldByName('Articulo').AsString)
Responder Con Cita
  #7  
Antiguo 18-04-2008
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Yo he hecho muchas incorporaciones de parámetros como la que indicas y me funcionan perfectamente pero he detectado una peculiaridad, no sé si llamarla bug o es que lo que hace es lógico.
Si utilizo "FieldByName" para recoger alguno de los campos de una "query" no puedo haber incorporado ningún campo en "Fields" porque sino no funciona: O lo hago todo con "FieldByName" o no se me ocurre utilizarlo si tengo algo en "Fields".

Bueno, no sé si me he explicado demasiado bien...
Responder Con Cita
  #8  
Antiguo 18-04-2008
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
Yo he hecho muchas incorporaciones de parámetros como la que indicas y me funcionan perfectamente pero he detectado una peculiaridad, no sé si llamarla bug o es que lo que hace es lógico.
Si utilizo "FieldByName" para recoger alguno de los campos de una "query" no puedo haber incorporado ningún campo en "Fields" porque sino no funciona: O lo hago todo con "FieldByName" o no se me ocurre utilizarlo si tengo algo en "Fields".

Bueno, no sé si me he explicado demasiado bien...
Si cuando dices Fields te refieres a campos persistentes me parece por demas logico, ya que el query la lista de campos que utiliza es la que esta creada alli, pero eso no quita que puedas utilizar el FieldbyName si el campo existe entre los persistentes.
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
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
IBDataSet-Select con parametros ZRR Firebird e Interbase 2 12-12-2005 15:55:20
Problema conuna consulta select...not in (select ...) VRO Firebird e Interbase 2 11-08-2005 08:56:35
5 select de 5 tablas diferentes en un select solo sakuragi SQL 6 15-06-2005 18:57:06
coversion de string a date dentro de un select gmontes SQL 3 03-05-2005 18:36:06
Select anidado ( Select from select ) Malon Firebird e Interbase 1 05-10-2004 04:14:38


La franja horaria es GMT +2. Ahora son las 21:30:24.


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