Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   procedimiento almacenado ayuda con este codigo (https://www.clubdelphi.com/foros/showthread.php?t=28211)

pipecato 13-12-2005 16:28:38

procedimiento almacenado ayuda con este codigo
 
hola
codigo de sqlserver del procedimiento almacenado

CREATE PROCEDURE creacion_usuario (@usuario varchar(30), @pass varchar(30) ) AS
exec sp_addlogin @usuario,@pass
GO

delphi

tengo este codigo en delphi para crear un usuario y en sql server esta con parametro. me sale mensaje de errror @usuario no encontrado

datamodulo.ADOprocedimiento.ProcedureName:='creacion_usuario';
datamodulo.ADOprocedimiento.Parameters.ParamByName('@usuario').Value:=edtusuario.Text;
datamodulo.ADOprocedimiento.Parameters.ParamByName('@pass').Value:=edtcontrasena.Text;
datamodulo.ADOprocedimiento.ExecProc;


alguien me ayude cual error estoy cometiendo

jhonny 13-12-2005 16:48:39

Yo no soy un experto en Sql Server pero a simple vista parece estar bien hecho, pero seria muy bueno que nos inicaras que tipo de error te muestra(si es que muestra algunos), o que sintomas tienes.

pipecato 13-12-2005 17:27:20

mensaje de error
 
el siguiente mensaje sale

adoprocedimiento:parameter @usuario not found

jhonny 13-12-2005 19:10:15

Que sucede si le quitas las arrobas a los nombres de los parametros?
Osea en lugar de @usuario ponerle usuario.

asi:

Código Delphi [-]
datamodulo.ADOprocedimiento.ProcedureName:='creacion_usuario';
datamodulo.ADOprocedimiento.Parameters.ParamByName('usuario').Value:=edtusuario.Text;
datamodulo.ADOprocedimiento.Parameters.ParamByName('pass').Value:=edtcontrasena.Text;
datamodulo.ADOprocedimiento.ExecProc;

Pues el arroba indica que ese es un parametro pero no creo que sea necesario que el nombre del parametro desde delphi la necesite.

Aztaroth 14-12-2005 15:59:56

Procedimiento Almacenado
 
Yo intente hacerlo en mi servidor y si me permitio hacerlo

create proc Create_Usuario
@USUARIO nvarchar(30),
@PASSWORD nvarchar(30)
as

DECLARE @USER nvarchar(30)
DECLARE @PAS nvarchar(30)
exec sp_addlogin @USER, @PAS

Ctrl+E y wala, lo creo sin ningun problema.

CHiCoLiTa 16-12-2005 12:24:34

Te falla un pequeño detalle
Al asignar el nombre del procedimiento por codigo, tienes que refrescarlo para que recoga los parametros del servidor. Por su puesto los parametros con @

datamodulo.ADOprocedimiento.Parameters.Refresh;


La franja horaria es GMT +2. Ahora son las 11:10:15.

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