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-01-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Problemas con TADOStoredProc

Hola a todos en la comunidad tengo serios problemas con una pequeña aplicacion que estoy realizando. Trabajo en Delphi 7 y empleo SQL 2000 como gestor de bd. Tengo unos cuantos sp almacenados en la bd y necesito llamar a un sp cuando cambio algo en un edit. Este sp recibe como parametro de entrada el texto del edit y he hecho algo asi:

Código Delphi [-]
procedure TPrincipal.txtPalabraChange(Sender: TObject);
begin
  // ADOsp es el TADOStoredProc
  with ADOsp do
  begin
    Close;
    Parameters[1].Value:= txtPalabra.Text;
    Open;
  end;

end;

y me sale un error que dice 'List index out of bounds(1)' lo cual es extraño xq cuando reviso el componente en los parametros aparecen los 2 valores que poseo. Cambie el codigo a:

Código Delphi [-]
procedure TPrincipal.txtPalabraChange(Sender: TObject);
begin
  // ADOsp es el TADOStoredProc
  with ADOsp do
  begin
    Close;
    Parameters.ParamByName('@Comienzo').Value:= txtPalabra.Text;
    Open;
  end;

end;

tambien sale un error a pesar de que el nombre del parametro en la herramienta visual es @Comienzo. No se que puedo hacer, donde me estoy equivocando o si debo intentar de otra manera. Gracias por su colaboracion.
Responder Con Cita
  #2  
Antiguo 28-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
  • La lista de parámetros es un arreglo cuyo primer elemento tiene índice cero (0).
  • Los parámetros en delphi se inician con el signo dos puntos (:), y no con la arroba (@). Independientemente de esto, siempre que se busca un parámetro por su nombre, no se incluye este caracter.

Hasta luego.

;)
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 28-01-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por jachguate Ver Mensaje
  • Los parámetros en delphi se inician con el signo dos puntos (, y no con la arroba (@). Independientemente de esto, siempre que se busca un parámetro por su nombre, no se incluye este caracter.
Hasta luego.


Eso es incorrecto. Parámetros de un Stored procedure en Sql server inician con @, Parámetros de un procedimiento en Db2, mysql y Oracle, solo requieren el nombre.

Probablemente te refieres a los querys paramétrizados, cuya definición efectivamente es con los dos puntos.

Ahora, retomando tu duda amigo luiggixD. Antes de realizar la asignación del valor, has creado los parámetros? de ser afirmativo, la definición en tu AdoSp es idéntica a la definición del Sp en SqlServer?.


Suerte
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #4  
Antiguo 29-01-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Sucede que establezco la conexion con un ADOConnection y el ADOsp tiene en la conexion a este ADOConnection. En el query analizer cuando efectuo la llamada a los sps q tengo los ejecuta de manera correcta pero cuando lo hago en el delphi me salen los errores que mencione arriba. Ad+, el ADOsp tiene en el ProcedureName el valor del Stored Procedure que necesito, cuando veo el editor de los Parameters en momento de diseño aparece la variable '@Comienzo' tal como explique, aparecen 2 elementos en ese vector. Lo malo es que parece que en tiempo de ejecucion parece que se eliminan todos los elementos de Parameter, xq incluso intente la locura d poner con Parameters[0] y m salia el mismo error. Estoy realmente abrumado no entiendo x q no sale u.u
Espero que alguien pueda resolver este problema
Responder Con Cita
  #5  
Antiguo 29-01-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Veamos.

prueba creando los parametros antes de invocar el sp usando:


Código Delphi [-]
AdoSp.Close;
With AdoSp.Parameters Do
  Begin
    Clear;
    CreateParameter(Definición);
    ParamByName('@Comienzo').Value:= txtPalabra.Text;
    Open;
 End;


Suerte
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #6  
Antiguo 29-01-2008
luiggixD luiggixD is offline
Miembro
 
Registrado: dic 2006
Ubicación: Lima - Peru
Posts: 32
Poder: 0
luiggixD Va por buen camino
Al parecer ha funcionado gracias x tu colaboracion poliburro espero no tener problemas mas adelante
Responder Con Cita
  #7  
Antiguo 26-08-2010
Avatar de julyus
julyus julyus is offline
Miembro
 
Registrado: jul 2006
Ubicación: IN TO PLACES COLOMBIA AND EE.UU
Posts: 121
Poder: 18
julyus Va por buen camino
Hola Poliburrro

[quote=poliburro;261741]Veamos.

prueba creando los parametros antes de invocar el sp usando:


Código Delphi [-]
AdoSp.Close; With AdoSp.Parameters Do   Begin     Clear;     CreateParameter(Definición);     ParamByName('@Comienzo').Value:= txtPalabra.Text;     Open;  End;



comoseria si el store procedure me tendria que retornar datos
y la necesito en una varible ???
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
direction en TADOStoredProc !! Confucio SQL 2 18-10-2007 14:43:41
Problemas con TADOStoredProc david.rguez Conexión con bases de datos 0 02-07-2006 19:52:23
TADOStoredProc & DBLookupComboBox TriLoCBA Conexión con bases de datos 0 23-09-2005 15:55:52
Locate de TADOStoredProc arantzal Varios 0 09-02-2005 16:19:20
TADOConnection/TADOStoredProc arantzal Varios 5 04-02-2005 11:23:06


La franja horaria es GMT +2. Ahora son las 08:54:17.


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