Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   problemas con parametros y con con mi store (https://www.clubdelphi.com/foros/showthread.php?t=50398)

jooooseph 16-11-2007 07:34:30

problemas con parametros y con con mi store
 
Buen dia....

Tengo este problema.. He desarrollado una clase conexion a una base d datos y dentro de ella tengo una funcion que valida el usuario. Mi tabla Usuario en sql tiene los siguiente campos Cod_usuario, Usuario, Password. Mi estore procedure ejecutado del mismo sql esta bien, pero cuando quiero hacerlo de delphi no se llega a ejecutar. Quisiera saber que parte esta mal. Aca les pongo una parte del store. y la mi clase conexion.

Mi Clase Conexion en Delphi
Código Delphi [-]
CConexion = Class
 private
 vBD      : string;
 published
 function of_dbconnnect ():boolean;
 function uf_valida_usuario (Usuario,Password:string): integer;
 constructor create ();
 destructor destruye();
  end;
implementation
function CConexion.of_dbconnnect : boolean;
var O_conexion : TADOConnection;
begin
try
O_conexion := TADOConnection.Create(nil);
O_conexion.ConnectionString:=vBD;
O_conexion.Provider:='SQLOLEDB.1';
O_conexion.Connected:=true;
if O_conexion.Connected
then
 begin
 Showmessage('Conexion Establecida1');
 result:=true;
 end;
Except
on EDatabaseError Do begin
                Showmessage  ('Conexion rota');
                result:= False;
                end;
end;
end;
function CConexion.uf_valida_usuario(Usuario,Password:string):integer;
var Commando:TADOCommand;
begin
Commando:=TADOCommand.Create(nil);
commando.ConnectionString:=vBD;
commando.CommandType:= cmdStoredProc;
commando.CommandText:= 'ValidaUsuario;1';
commando.Parameters.Clear;
commando.Parameters.CreateParameter('@Usuario', ftString  , pdInput, 50, Usuario);
commando.Parameters.CreateParameter('@Password', FtString, pdInput, 50, Password);
commando.Parameters.CreateParameter('@Existe', FtBoolean, pdOutput, 2, 0);
commando.Execute;
end;
constructor CConexion.create;
begin
vBD:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BDPrueba';
end;
destructor CConexion.destruye;
begin
end;

Este es mi Store Procedure ValidarUsuario

Código SQL [-]
CREATE PROCEDURE ValidaUsuario 
@Usuario char(50) , 
@Password char(50),
@Existe bit output 
AS
Set @Existe = 0
If (SELECT count(1) From usuarios(nolock) WHERE Usuario = @usuario and Password  = @Password ) > 0
Begin
      Set @Existe = 1
      print 'Usuario Correcto'
End
Else
begin
print 'Usuario Incorrecto'
End

Y este es mi codigo que uso en la interfaz en donde llamo a mi clase.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var O_Conexion : CConexion;
begin
O_Conexion:= CCOnexion.create;
O_Conexion.of_dbconnnect;
if O_Conexion.uf_valida_usuario(edit1.Text,edit2.Text)= 1
then Showmessage ('Usuario y contraseña correcta')
else if O_Conexion.uf_valida_usuario(edit1.Text,edit2.Text)= 0 then showmessage ('Usuario o contraseña incorrecta');
end;

Mi problema :confused:es que no se ejecuta mi funcion Uf_valida_usuario y no se si esta bien enlazado con los parametros y con mi store.

De antemano gracias por sus respuestas.

Atte

Joseph Obando:D

Al González 16-11-2007 10:04:07

No especificas qué servidor de bases de datos estás utilizando, pero por el código supongo que se trata de SQL Server.

jooooseph 17-11-2007 09:04:23

Sql
 
Cita:

Empezado por Al González (Mensaje 246572)
No especificas qué servidor de bases de datos estás utilizando, pero por el código supongo que se trata de SQL Server.

Estoy utilizando SQL, mi base d daros se llama BDPrueba

Al González 17-11-2007 10:26:40

Cita:

Empezado por jooooseph (Mensaje 246800)
Estoy utilizando SQL, mi base d daros se llama BDPrueba

¿Con "SQL" te refieres a SQL Server, SQL Firebird, SQL Oracle, MySQL...? :confused:

Casi todas las bases de datos relacionales manejan Lenguaje de Consulta Estructurado.

Saludos.

Al González. :)

Digo, no vaya a ser que pase lo que en México con la marca "LADA", que el 99% de la población la usa como sinónimo de "larga distancia" o "área" o "código de área". Luego así es como se perpetúan los monopolios. ;) :(

jooooseph 17-11-2007 16:00:00

hola., la funcion de mi clase of_dbconnnect funciona bien, lo unico q me falta de esta funcion es saber bien que tipo de error tengo que poner para salga mi mensaje, porq en esta funcion sale el mensaje del mismo delphi. Pero con mi funcion uf_valida_usuario no se que pasa. no se si estan bien dado los parametros, no se si es correcto el sintaxis que uso, en fin. Ojala me puedan ayudar. Atte Joseph Obando


La franja horaria es GMT +2. Ahora son las 15:17:58.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi