Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2013
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Red face No sé trabajar con parametros...

Hola amigos del foro. Mi pregunta es si en una consulta usualmente se hace esto:
Código SQL [-]
select * from tabla where campo1 = :midato
.
Cómo se hace en SQL Server 2008. Pues he tenido problemas con esto.
uso los componentes ADO
Gracias de antemano por la ayuda

Gustavo Cruz
Responder Con Cita
  #2  
Antiguo 28-02-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Se hace igual.
La consulta esta bien hecha, debe ser otro el problema.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 28-02-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola GustavoCruz,

Como le pasas el parametro :midato a la SQL, para ver un poco mas de luz

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #4  
Antiguo 28-02-2013
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.282
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
Nos haría falta ver el trozo de código completo, donde generas la SQL y asignas los parámetros.
Como te han comentado la sintaxis que has colocado parece estar bien.

Si te da algún error, estaría bien que comentaras exactamente el texto que te devuelve.
__________________
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 28-02-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gustavo.

Como ya te comentaron la consulta SQL es correcta, seguramente tengas problemas con el uso del TADOQuery.

Por si te sirve de ayuda, un ejemplo:
Código Delphi [-]
...
  with ADOQuery1 do
  begin
    Close;
    SQL.Text:= 'SELECT * FROM TABLA WHERE CAMPO1 = :PARAMETRO';
    Parameters.ParamByName('PARAMETRO').Value := Edit1.Text;
    Open
  end;
...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 28-02-2013
WkaymQ48 WkaymQ48 is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 43
Poder: 0
WkaymQ48 Va por buen camino
Con el TADOQuery hay que crear primero el parámetro para poder usarlo.

Yo utilizo algo como esto (siguiendo con el ejemplo de ecfisa)
Código Delphi [-]
with ADOQuery1 do
  begin
    Close;
    SQL.Text:= 'SELECT * FROM TABLA WHERE CAMPO1 = :PARAMETRO';
    // Aqui le indicamos que cree los parámetros a partir de la consulta
    Parameters.ParseSQL(SQL.Text,TRUE);
    Parameters.ParamByName('PARAMETRO').Value := Edit1.Text;
    Open
  end;
Responder Con Cita
  #7  
Antiguo 01-03-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Cita:
Empezado por WkaymQ48 Ver Mensaje
Con el TADOQuery hay que crear primero el parámetro para poder usarlo.
Primera vez que veo esto.
He usado el AdoQuery infinidad de veces y no se necesita estipular o crear nada.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 01-03-2013
WkaymQ48 WkaymQ48 is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 43
Poder: 0
WkaymQ48 Va por buen camino
Cita:
Empezado por Caral Ver Mensaje
Hola

Primera vez que veo esto.
He usado el AdoQuery infinidad de veces y no se necesita estipular o crear nada.
Saludos
Pues no te lo voy a discutir, pero si pongo el código de arriba en delphi y no incluyo la linea del "ParseSQL" al ejecutar el programa me salta una bonita excepción diciendo que el parámetro no existe.

Sera mi delphi que es caprichoso

O puede que le pase a alguien mas:
http://edn.embarcadero.com/es/article/20420

Saludos
Responder Con Cita
  #9  
Antiguo 01-03-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por WkaymQ48 Ver Mensaje
Pues no te lo voy a discutir, pero si pongo el código de arriba en delphi y no incluyo la linea del "ParseSQL" al ejecutar el programa me salta una bonita excepción diciendo que el parámetro no existe.
Hola WkaymQ48.

No soy tán conocedor de ADO como lo es mi amigo Caral y siendo sincero, desconozco las situaciones en que se debe crear el parámetro. Tampoco es mi intención discutir (para algo está la función), pero te puedo asegurar que el código que adjunté no me genera excepción alguna.

Busqué en la web sobre ParseSQL (no había visto tu enlace), pero ninguna de las referencia me dejó claro en que casos específicos es requisito usarlo. Si algún compañero me echa luz sobre ese punto le estaría muy agradecido.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 01-03-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
WkaymQ48,

Cita:
Empezado por WkaymQ48
...y no incluyo la linea del "ParseSQL" al ejecutar el programa me salta una bonita excepción diciendo que el parámetro no existe...
Revisa estos links:
Cita:
1- Data.Win.ADODB.TParameters.ParseSQL
http://docwiki.embarcadero.com/Libra...eters.ParseSQL

2- Parse params from an sql query using delphi
http://stackoverflow.com/questions/2...y-using-delphi
Cita:
Empezado por Embarcadero

Call ParseSQL to parse an SQL statement for parameters. For each parameter found in the SQL statement, a TParameter object is added to the calling TParameters object using the name of the parameter in the SQL statement.
Al usar el método ParseSQL con el segundo parámetro en True, estas creando una lista de los parámetros de la sentencia SQL como puedes ver en el Link-2, te sugiero revisar el diseño de tus tablas y verificar si efectivamente dicho atributo (Campo) existe realmente, lo más probable es que no exista como sugiere el Msg #8.

El Query debe funcionar adecuadamente como se indica en el Msg #5 una vez solventado el problema con el atributo.

Revisa esta información:



Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 01-03-2013 a las 19:52:25.
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
Trabajar con SQL GUN10 SQL 2 11-04-2010 09:42:40
Trabajar de a dos totote Varios 6 12-06-2008 15:16:35
Cómo trabajar con los parámetros de un procedimiento almacenado? efelix Conexión con bases de datos 7 16-02-2007 22:12:11
Parametros Opcionales no Parametros por defecto Velia Varios 7 19-08-2006 15:18:42
Trabajar con Firebird StartKill Firebird e Interbase 1 20-01-2004 23:31:25


La franja horaria es GMT +2. Ahora son las 11:40:31.


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