Ver Mensaje Individual
  #1  
Antiguo 16-11-2007
Avatar de jooooseph
jooooseph jooooseph is offline
Miembro
 
Registrado: oct 2007
Posts: 50
Reputación: 17
jooooseph Va por buen camino
Cool 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 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
Responder Con Cita