Classe Usuario Delphi 2010 x DBX4 x sqlServer
Olá,
Estava usando Delphi 7 e UserControl Controle de Usuario. Não consegui instalar o UserContro no Delphi 2010.
Gostaria de usar a classe abaixo para controle de usuario.
Pode me ajuar a adptar para sqlserver2005?
unit uUsuario;
interface
uses
ActnList, DBXCommon, SqlExpr;
type
TPermissao = record
Incluir: Boolean;
Excluir: Boolean;
Alterar: Boolean;
Consultar: Boolean;
Imprimir: Boolean;
end;
TUsuario = class
private
FID: Integer;
FSenha: String;
FLogin: String;
FNome: String;
FPerfilID: Integer;
FLogado: Boolean;
FAcoes: TCustomActionList;
class var FInstance: TUsuario;
constructor CreatePrivate;
{ private declarations }
protected
{ protected declarations }
function LoadProfile: Boolean;virtual;
public
{ public declarations }
constructor Create;
function Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean;
function GetPerfilName: String;
function GetPerfilDescription: String;
function ChangePassword(strOldPassword, strNewPassword: String):Boolean;
function IsMaster: Boolean;
function GetPermissao(AFormulario: String): TPermissao;
class function GetInstance: TUsuario;
published
{ published declarations }
property ID: Integer read FID;
property Nome: String read FNome;
property Usuario: String read FLogin;
property Senha: String read FSenha;
property PerfilID: Integer read FPerfilID;
end;
implementation
uses
SysUtils, Dialogs, uDm;
{ TUsuario }
function TUsuario.ChangePassword(strOldPassword,
strNewPassword: String): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
T: TDBXTransaction;
begin
if FLogado then
begin
if FSenha = strOldPassword then
Begin
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
T := DBCon.BeginTransaction;
Command := DBCon.CreateCommand;
Command.Text := 'UPDATE USUARIOS SET SENHA = '+QuotedStr(strNewPassword)+
' WHERE USUARIOID = '+IntToStr(FID);
Command.ExecuteUpdate;
DBCon.CommitFreeAndNil(T);
Result := True;
except
DBCon.RollbackFreeAndNil(T);
end;
end
else
MessageDlg('A senha antiga não confere !!!!',mtInformation,[mbOK],0);
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end;
constructor TUsuario.Create;
begin
raise Exception.Create('Para obter uma instância de TUsuario utilize TUsuario.GetInstance !');
end;
constructor TUsuario.CreatePrivate;
begin
inherited Create;
end;
class function TUsuario.GetInstance: TUsuario;
begin
if not Assigned(FInstance) then
FInstance := TUsuario.CreatePrivate;
Result := FInstance;
end;
function TUsuario.GetPerfilDescription: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
// DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
// Command := DBCon.CreateCommand;
// Command.Text := 'SELECT DESCRICAO FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
DM.GenProduto('PERFIL','DESCRICAO', IntToStr(FPerfilID));
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end;
function TUsuario.GetPerfilName: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NOME FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end;
function TUsuario.GetPermissao(AFormulario: String): TPermissao;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
Temp: TPermissao;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+
' FROM ACESSOS WHERE USUARIOID = '+IntToStr(ID)+
' AND FORMULARIO = '+QuotedStr(AFormulario);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Temp.Incluir := Reader.Value[0].GetAnsiString = 'S';
Temp.Excluir := Reader.Value[1].GetAnsiString = 'S';
Temp.Alterar := Reader.Value[2].GetAnsiString = 'S';
Temp.Consultar := Reader.Value[3].GetAnsiString = 'S';
Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S';
end
else
begin
Temp.Incluir := True;
Temp.Excluir := True;
Temp.Alterar := True;
Temp.Consultar := True;
Temp.Imprimir := True;
end;
Result := Temp;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end;
function TUsuario.IsMaster: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('C:\MSSQL\DADOS\teste','admin','123');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Result := Reader.Value[0].GetAnsiString = 'S';
end;
end;
function TUsuario.LoadProfile: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
I: Integer;
Nm, Pr : String;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NAME, PREMISSAO FROM PERFIL_CONF WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
while Reader.Next do
begin
Nm := Reader.Value[0].GetAnsiString;
Pr := Reader.Value[1].GetAnsiString;
for I := 0 to Pred(FAcoes.ActionCount) do
begin
if TAction(FAcoes.Actions[I]).Name = Nm then
begin
TAction(FAcoes.Actions[I]).Enabled := 'V' = Pr;
break;
end;
end;
end;
Result := True;
end;
function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT * FROM USUARIOS WHERE LOGIN = '+QuotedStr(AUsuario)+
' and SENHA = '+QuotedStr(ASenha);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
FID := Reader.Value[0].GetInt32;
FPerfilID := Reader.Value[1].GetInt32;
FNome := Reader.Value[2].GetAnsiString;
FLogin := Reader.Value[4].GetAnsiString;
FSenha := Reader.Value[5].GetAnsiString;
FLogado := True;
FAcoes := Acoes;
if LoadProfile then
Result := True
else
MessageDlg('Não foi possível carregar o perfil !!',mtWarning,[mbOK],0);
end;
end;
end.
Att,
Ricardo Horoi
Frigorifico Sa
Curtidas 0
Respostas
Wesley Yamazack
26/06/2010
Olá Ricardo,
Compilei o projeto no Delphi 2010, e compilou, só deu erro no uDM pois eu não tenho o mesmo, qual é o erro ?
O que esta acontecendo ?
Qual mensagem de erro?
Quem fez esta classe TUsuario ?
Att,
Wesley Y
Compilei o projeto no Delphi 2010, e compilou, só deu erro no uDM pois eu não tenho o mesmo, qual é o erro ?
O que esta acontecendo ?
Qual mensagem de erro?
Quem fez esta classe TUsuario ?
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Dificuldades que encontrei.
unit uUsuario;
interface
uses
ActnList, DBXCommon, SqlExpr;
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('SDL77\SQLEXPRESS','ADMIN','123');
Att,
Ricardo Horoi
GOSTEI 0
Wesley Yamazack
26/06/2010
Olá Ricardo,
Você deve colocar o nome da Conexao que você criou no DataExplorer e não o nome do servidor/banco
AO invés de
'SDL77\SQLEXPRESS'
Coloque , que por sua vez deve ser montado no DataExplorer.
BDSDL77
Veja se isso irá resolver o seu problema. Senão resolver me diga o erro que acontece.
Att,
Wesley Y
Você deve colocar o nome da Conexao que você criou no DataExplorer e não o nome do servidor/banco
AO invés de
'SDL77\SQLEXPRESS'
Coloque , que por sua vez deve ser montado no DataExplorer.
BDSDL77
Veja se isso irá resolver o seu problema. Senão resolver me diga o erro que acontece.
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
O que esta acontecendo ?
Outro paramentro que tem que ser alterado é :
TBODbxDynalink; Esta unit tem que achar a do Sqlserver.
Qual mensagem de erro?
Invalid argument: TESTE
Quem fez esta classe TUsuario ?
Rodrigo Carreiro Mourão Curso Online
Curso online:Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas(básico) do Inicio ao Fim Vídeo
19) Criando todos os métodos que serão utilizados pela classe usuário
Descrição: Veremos também o DBX que poucas pessoas conhecem, classes como TDBXConnection, TDBXCommand e outras mais. |
[Marcar este item como lido/assistido] .
Quem fez esta classe TUsuario ?
Rodrigo Carreiro Mourão Curso Online
Curso online:Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas(básico) do Inicio ao Fim Vídeo
19) Criando todos os métodos que serão utilizados pela classe usuário
Descrição: Veremos também o DBX que poucas pessoas conhecem, classes como TDBXConnection, TDBXCommand e outras mais. |
[Marcar este item como lido/assistido] .
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo,
Peguei o mesmo exemplo que você fez, e modifiquei para o MySQL, a unica coisa que tive que fazer foi adicionar no Data Explorer uma conexão com o MySQL, pois existe um arquivo na pasta C:\Users\Public\Documents\RAD Studio\dbExpress\7.0\ dbxconnections, no qual o DBExpress utiliza para fazer e armazenar as conexões.
function TUsuario.Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean; var DBCon: TDBXConnection; Command: TDBXCommand; Reader: TDBXReader; begin DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection ('BDAPM', 'root', 'root'); Command := DBCon.CreateCommand; Command.Text := 'SELECT * FROM USUARIO WHERE DESCRICAO = ' + QuotedStr(AUsuario) + ' and SENHA = ' + QuotedStr(ASenha); Reader := Command.ExecuteQuery; if Reader.Next then begin FID := Reader.Value[0].GetInt32; FPerfilID := Reader.Value[1].GetInt32; FNome := Reader.Value[2].GetAnsiString; FLogin := Reader.Value[4].GetAnsiString; FSenha := Reader.Value[5].GetAnsiString; FLogado := True; FAcoes := Acoes; if LoadProfile then Result := True else MessageDlg('Não foi possível carregar o perfil !!', mtWarning, [mbOK], 0); end; end;Depois de criar o Data Explorere eu dei Uses em DBXMySQL, e você terá que dar uses em DBXMSSQL
unit uUsuario;
interface
uses ActnList, DBXCommon, SqlExpr, DBXMySql;
type TPermissao = record Incluir: Boolean; Excluir: Boolean; Alterar: Boolean; Consultar: Boolean; Imprimir: Boolean; end;Você criou a sua conexão no Data Explorer ?
R:
O que seria " Invalid argument: TESTE " ? O nome da Sua conexão ?
R:
Observação :
Gostei da classe TUsuario , mas não gostei da "engessada" que você deu, dando uses em uDM, e utilizando os recursos do DataModule, cada classe uma Responsabilidade. Mas isso é só uma dica meu velho.
Att,
Wesley Y
Peguei o mesmo exemplo que você fez, e modifiquei para o MySQL, a unica coisa que tive que fazer foi adicionar no Data Explorer uma conexão com o MySQL, pois existe um arquivo na pasta C:\Users\Public\Documents\RAD Studio\dbExpress\7.0\ dbxconnections, no qual o DBExpress utiliza para fazer e armazenar as conexões.
function TUsuario.Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean; var DBCon: TDBXConnection; Command: TDBXCommand; Reader: TDBXReader; begin DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection ('BDAPM', 'root', 'root'); Command := DBCon.CreateCommand; Command.Text := 'SELECT * FROM USUARIO WHERE DESCRICAO = ' + QuotedStr(AUsuario) + ' and SENHA = ' + QuotedStr(ASenha); Reader := Command.ExecuteQuery; if Reader.Next then begin FID := Reader.Value[0].GetInt32; FPerfilID := Reader.Value[1].GetInt32; FNome := Reader.Value[2].GetAnsiString; FLogin := Reader.Value[4].GetAnsiString; FSenha := Reader.Value[5].GetAnsiString; FLogado := True; FAcoes := Acoes; if LoadProfile then Result := True else MessageDlg('Não foi possível carregar o perfil !!', mtWarning, [mbOK], 0); end; end;Depois de criar o Data Explorere eu dei Uses em DBXMySQL, e você terá que dar uses em DBXMSSQL
unit uUsuario;
interface
uses ActnList, DBXCommon, SqlExpr, DBXMySql;
type TPermissao = record Incluir: Boolean; Excluir: Boolean; Alterar: Boolean; Consultar: Boolean; Imprimir: Boolean; end;Você criou a sua conexão no Data Explorer ?
R:
O que seria " Invalid argument: TESTE " ? O nome da Sua conexão ?
R:
Observação :
Gostei da classe TUsuario , mas não gostei da "engessada" que você deu, dando uses em uDM, e utilizando os recursos do DataModule, cada classe uma Responsabilidade. Mas isso é só uma dica meu velho.
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Classe original.
Usando fireBird.
Saberia me dizer onde consigo esta classe : TBODbxDynalink
unit uUsuario;
interface
uses
ActnList, DBXCommon, TBODbxDynalink; type
TPermissao = record
Incluir: Boolean;
Excluir: Boolean;
Alterar: Boolean;
Consultar: Boolean;
Imprimir: Boolean;
end; TUsuario = class
private
FID: Integer;
FSenha: String;
FLogin: String;
FNome: String;
FPerfilID: Integer;
FLogado: Boolean;
FAcoes: TCustomActionList;
class var FInstance: TUsuario;
constructor CreatePrivate;
{ private declarations }
protected
{ protected declarations }
function LoadProfile: Boolean;virtual;
public
{ public declarations }
constructor Create;
function Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean;
function GetPerfilName: String;
function GetPerfilDescription: String;
function ChangePassword(strOldPassword, strNewPassword: String):Boolean;
function IsMaster: Boolean;
function GetPermissao(AFormulario: String): TPermissao;
class function GetInstance: TUsuario;
published
{ published declarations }
property ID: Integer read FID;
property Nome: String read FNome;
property Usuario: String read FLogin;
property Senha: String read FSenha;
property PerfilID: Integer read FPerfilID;
end; implementation uses
SysUtils, Dialogs;
{ TUsuario } function TUsuario.ChangePassword(strOldPassword,
strNewPassword: String): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
T: TDBXTransaction;
begin
if FLogado then
begin
if FSenha = strOldPassword then
Begin
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
T := DBCon.BeginTransaction;
Command := DBCon.CreateCommand;
Command.Text := 'UPDATE USUARIOS SET SENHA = '+QuotedStr(strNewPassword)+
' WHERE USUARIOID = '+IntToStr(FID);
Command.ExecuteUpdate;
DBCon.CommitFreeAndNil(T);
Result := True;
except
DBCon.RollbackFreeAndNil(T);
end;
end
else
MessageDlg('A senha antiga não confere !!!!',mtInformation,[mbOK],0);
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; constructor TUsuario.Create;
begin
raise Exception.Create('Para obter uma instância de TUsuario utilize TUsuario.GetInstance !');
end; constructor TUsuario.CreatePrivate;
begin
inherited Create;
end; class function TUsuario.GetInstance: TUsuario;
begin
if not Assigned(FInstance) then
FInstance := TUsuario.CreatePrivate;
Result := FInstance;
end; function TUsuario.GetPerfilDescription: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT DESCRICAO FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPerfilName: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NOME FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPermissao(AFormulario: String): TPermissao;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
Temp: TPermissao;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+
' FROM ACESSOS WHERE USUARIOID = '+IntToStr(ID)+
' AND FORMULARIO = '+QuotedStr(AFormulario);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Temp.Incluir := Reader.Value[0].GetAnsiString = 'S';
Temp.Excluir := Reader.Value[1].GetAnsiString = 'S';
Temp.Alterar := Reader.Value[2].GetAnsiString = 'S';
Temp.Consultar := Reader.Value[3].GetAnsiString = 'S';
Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S';
end
else
begin
Temp.Incluir := True;
Temp.Excluir := True;
Temp.Alterar := True;
Temp.Consultar := True;
Temp.Imprimir := True;
end;
Result := Temp;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.IsMaster: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
Result := Reader.Value[0].GetAnsiString = 'S';
end;
end; function TUsuario.LoadProfile: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
I: Integer;
Nm, Pr : String;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NAME, PREMISSAO FROM PERFIL_CONF WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery; while Reader.Next do
begin
Nm := Reader.Value[0].GetAnsiString;
Pr := Reader.Value[1].GetAnsiString;
for I := 0 to Pred(FAcoes.ActionCount) do
begin
if TAction(FAcoes.Actions[I]).Name = Nm then
begin
TAction(FAcoes.Actions[I]).Enabled := 'V' = Pr;
break;
end;
end;
end;
Result := True;
end; function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT * FROM USUARIOS WHERE LOGIN = '+QuotedStr(AUsuario)+
' and SENHA = '+QuotedStr(ASenha);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
FID := Reader.Value[0].GetInt32;
FPerfilID := Reader.Value[1].GetInt32;
FNome := Reader.Value[2].GetAnsiString;
FLogin := Reader.Value[4].GetAnsiString;
FSenha := Reader.Value[5].GetAnsiString;
FLogado := True;
FAcoes := Acoes;
if LoadProfile then
Result := True
else
MessageDlg('Não foi possível carregar o perfil !!',mtWarning,[mbOK],0);
end;
end; end.
ActnList, DBXCommon, TBODbxDynalink; type
TPermissao = record
Incluir: Boolean;
Excluir: Boolean;
Alterar: Boolean;
Consultar: Boolean;
Imprimir: Boolean;
end; TUsuario = class
private
FID: Integer;
FSenha: String;
FLogin: String;
FNome: String;
FPerfilID: Integer;
FLogado: Boolean;
FAcoes: TCustomActionList;
class var FInstance: TUsuario;
constructor CreatePrivate;
{ private declarations }
protected
{ protected declarations }
function LoadProfile: Boolean;virtual;
public
{ public declarations }
constructor Create;
function Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean;
function GetPerfilName: String;
function GetPerfilDescription: String;
function ChangePassword(strOldPassword, strNewPassword: String):Boolean;
function IsMaster: Boolean;
function GetPermissao(AFormulario: String): TPermissao;
class function GetInstance: TUsuario;
published
{ published declarations }
property ID: Integer read FID;
property Nome: String read FNome;
property Usuario: String read FLogin;
property Senha: String read FSenha;
property PerfilID: Integer read FPerfilID;
end; implementation uses
SysUtils, Dialogs;
{ TUsuario } function TUsuario.ChangePassword(strOldPassword,
strNewPassword: String): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
T: TDBXTransaction;
begin
if FLogado then
begin
if FSenha = strOldPassword then
Begin
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
T := DBCon.BeginTransaction;
Command := DBCon.CreateCommand;
Command.Text := 'UPDATE USUARIOS SET SENHA = '+QuotedStr(strNewPassword)+
' WHERE USUARIOID = '+IntToStr(FID);
Command.ExecuteUpdate;
DBCon.CommitFreeAndNil(T);
Result := True;
except
DBCon.RollbackFreeAndNil(T);
end;
end
else
MessageDlg('A senha antiga não confere !!!!',mtInformation,[mbOK],0);
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; constructor TUsuario.Create;
begin
raise Exception.Create('Para obter uma instância de TUsuario utilize TUsuario.GetInstance !');
end; constructor TUsuario.CreatePrivate;
begin
inherited Create;
end; class function TUsuario.GetInstance: TUsuario;
begin
if not Assigned(FInstance) then
FInstance := TUsuario.CreatePrivate;
Result := FInstance;
end; function TUsuario.GetPerfilDescription: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT DESCRICAO FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPerfilName: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NOME FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPermissao(AFormulario: String): TPermissao;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
Temp: TPermissao;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+
' FROM ACESSOS WHERE USUARIOID = '+IntToStr(ID)+
' AND FORMULARIO = '+QuotedStr(AFormulario);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Temp.Incluir := Reader.Value[0].GetAnsiString = 'S';
Temp.Excluir := Reader.Value[1].GetAnsiString = 'S';
Temp.Alterar := Reader.Value[2].GetAnsiString = 'S';
Temp.Consultar := Reader.Value[3].GetAnsiString = 'S';
Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S';
end
else
begin
Temp.Incluir := True;
Temp.Excluir := True;
Temp.Alterar := True;
Temp.Consultar := True;
Temp.Imprimir := True;
end;
Result := Temp;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.IsMaster: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
Result := Reader.Value[0].GetAnsiString = 'S';
end;
end; function TUsuario.LoadProfile: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
I: Integer;
Nm, Pr : String;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NAME, PREMISSAO FROM PERFIL_CONF WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery; while Reader.Next do
begin
Nm := Reader.Value[0].GetAnsiString;
Pr := Reader.Value[1].GetAnsiString;
for I := 0 to Pred(FAcoes.ActionCount) do
begin
if TAction(FAcoes.Actions[I]).Name = Nm then
begin
TAction(FAcoes.Actions[I]).Enabled := 'V' = Pr;
break;
end;
end;
end;
Result := True;
end; function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT * FROM USUARIOS WHERE LOGIN = '+QuotedStr(AUsuario)+
' and SENHA = '+QuotedStr(ASenha);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
FID := Reader.Value[0].GetInt32;
FPerfilID := Reader.Value[1].GetInt32;
FNome := Reader.Value[2].GetAnsiString;
FLogin := Reader.Value[4].GetAnsiString;
FSenha := Reader.Value[5].GetAnsiString;
FLogado := True;
FAcoes := Acoes;
if LoadProfile then
Result := True
else
MessageDlg('Não foi possível carregar o perfil !!',mtWarning,[mbOK],0);
end;
end; end.
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Classe original.
Usando fireBird.
Saberia me dizer onde consigo esta classe : TBODbxDynalink
unit uUsuario;
interface
uses
ActnList, DBXCommon, TBODbxDynalink; type
TPermissao = record
Incluir: Boolean;
Excluir: Boolean;
Alterar: Boolean;
Consultar: Boolean;
Imprimir: Boolean;
end; TUsuario = class
private
FID: Integer;
FSenha: String;
FLogin: String;
FNome: String;
FPerfilID: Integer;
FLogado: Boolean;
FAcoes: TCustomActionList;
class var FInstance: TUsuario;
constructor CreatePrivate;
{ private declarations }
protected
{ protected declarations }
function LoadProfile: Boolean;virtual;
public
{ public declarations }
constructor Create;
function Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean;
function GetPerfilName: String;
function GetPerfilDescription: String;
function ChangePassword(strOldPassword, strNewPassword: String):Boolean;
function IsMaster: Boolean;
function GetPermissao(AFormulario: String): TPermissao;
class function GetInstance: TUsuario;
published
{ published declarations }
property ID: Integer read FID;
property Nome: String read FNome;
property Usuario: String read FLogin;
property Senha: String read FSenha;
property PerfilID: Integer read FPerfilID;
end; implementation uses
SysUtils, Dialogs;
{ TUsuario } function TUsuario.ChangePassword(strOldPassword,
strNewPassword: String): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
T: TDBXTransaction;
begin
if FLogado then
begin
if FSenha = strOldPassword then
Begin
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
T := DBCon.BeginTransaction;
Command := DBCon.CreateCommand;
Command.Text := 'UPDATE USUARIOS SET SENHA = '+QuotedStr(strNewPassword)+
' WHERE USUARIOID = '+IntToStr(FID);
Command.ExecuteUpdate;
DBCon.CommitFreeAndNil(T);
Result := True;
except
DBCon.RollbackFreeAndNil(T);
end;
end
else
MessageDlg('A senha antiga não confere !!!!',mtInformation,[mbOK],0);
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; constructor TUsuario.Create;
begin
raise Exception.Create('Para obter uma instância de TUsuario utilize TUsuario.GetInstance !');
end; constructor TUsuario.CreatePrivate;
begin
inherited Create;
end; class function TUsuario.GetInstance: TUsuario;
begin
if not Assigned(FInstance) then
FInstance := TUsuario.CreatePrivate;
Result := FInstance;
end; function TUsuario.GetPerfilDescription: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT DESCRICAO FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPerfilName: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NOME FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPermissao(AFormulario: String): TPermissao;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
Temp: TPermissao;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+
' FROM ACESSOS WHERE USUARIOID = '+IntToStr(ID)+
' AND FORMULARIO = '+QuotedStr(AFormulario);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Temp.Incluir := Reader.Value[0].GetAnsiString = 'S';
Temp.Excluir := Reader.Value[1].GetAnsiString = 'S';
Temp.Alterar := Reader.Value[2].GetAnsiString = 'S';
Temp.Consultar := Reader.Value[3].GetAnsiString = 'S';
Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S';
end
else
begin
Temp.Incluir := True;
Temp.Excluir := True;
Temp.Alterar := True;
Temp.Consultar := True;
Temp.Imprimir := True;
end;
Result := Temp;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.IsMaster: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
Result := Reader.Value[0].GetAnsiString = 'S';
end;
end; function TUsuario.LoadProfile: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
I: Integer;
Nm, Pr : String;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NAME, PREMISSAO FROM PERFIL_CONF WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery; while Reader.Next do
begin
Nm := Reader.Value[0].GetAnsiString;
Pr := Reader.Value[1].GetAnsiString;
for I := 0 to Pred(FAcoes.ActionCount) do
begin
if TAction(FAcoes.Actions[I]).Name = Nm then
begin
TAction(FAcoes.Actions[I]).Enabled := 'V' = Pr;
break;
end;
end;
end;
Result := True;
end; function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT * FROM USUARIOS WHERE LOGIN = '+QuotedStr(AUsuario)+
' and SENHA = '+QuotedStr(ASenha);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
FID := Reader.Value[0].GetInt32;
FPerfilID := Reader.Value[1].GetInt32;
FNome := Reader.Value[2].GetAnsiString;
FLogin := Reader.Value[4].GetAnsiString;
FSenha := Reader.Value[5].GetAnsiString;
FLogado := True;
FAcoes := Acoes;
if LoadProfile then
Result := True
else
MessageDlg('Não foi possível carregar o perfil !!',mtWarning,[mbOK],0);
end;
end; end.
ActnList, DBXCommon, TBODbxDynalink; type
TPermissao = record
Incluir: Boolean;
Excluir: Boolean;
Alterar: Boolean;
Consultar: Boolean;
Imprimir: Boolean;
end; TUsuario = class
private
FID: Integer;
FSenha: String;
FLogin: String;
FNome: String;
FPerfilID: Integer;
FLogado: Boolean;
FAcoes: TCustomActionList;
class var FInstance: TUsuario;
constructor CreatePrivate;
{ private declarations }
protected
{ protected declarations }
function LoadProfile: Boolean;virtual;
public
{ public declarations }
constructor Create;
function Login(AUsuario, ASenha: String; Acoes: TCustomActionList): Boolean;
function GetPerfilName: String;
function GetPerfilDescription: String;
function ChangePassword(strOldPassword, strNewPassword: String):Boolean;
function IsMaster: Boolean;
function GetPermissao(AFormulario: String): TPermissao;
class function GetInstance: TUsuario;
published
{ published declarations }
property ID: Integer read FID;
property Nome: String read FNome;
property Usuario: String read FLogin;
property Senha: String read FSenha;
property PerfilID: Integer read FPerfilID;
end; implementation uses
SysUtils, Dialogs;
{ TUsuario } function TUsuario.ChangePassword(strOldPassword,
strNewPassword: String): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
T: TDBXTransaction;
begin
if FLogado then
begin
if FSenha = strOldPassword then
Begin
try
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
T := DBCon.BeginTransaction;
Command := DBCon.CreateCommand;
Command.Text := 'UPDATE USUARIOS SET SENHA = '+QuotedStr(strNewPassword)+
' WHERE USUARIOID = '+IntToStr(FID);
Command.ExecuteUpdate;
DBCon.CommitFreeAndNil(T);
Result := True;
except
DBCon.RollbackFreeAndNil(T);
end;
end
else
MessageDlg('A senha antiga não confere !!!!',mtInformation,[mbOK],0);
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; constructor TUsuario.Create;
begin
raise Exception.Create('Para obter uma instância de TUsuario utilize TUsuario.GetInstance !');
end; constructor TUsuario.CreatePrivate;
begin
inherited Create;
end; class function TUsuario.GetInstance: TUsuario;
begin
if not Assigned(FInstance) then
FInstance := TUsuario.CreatePrivate;
Result := FInstance;
end; function TUsuario.GetPerfilDescription: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT DESCRICAO FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPerfilName: String;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NOME FROM PERFIL WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery;
if Reader.Next then Result := Reader.Value[0].GetAnsiString;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.GetPermissao(AFormulario: String): TPermissao;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
Temp: TPermissao;
begin
if FLogado then
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT INCLUIR, EXCLUIR, ALTERAR, CONSULTAR, IMPRIMIR '+
' FROM ACESSOS WHERE USUARIOID = '+IntToStr(ID)+
' AND FORMULARIO = '+QuotedStr(AFormulario);
Reader := Command.ExecuteQuery;
if Reader.Next then
begin
Temp.Incluir := Reader.Value[0].GetAnsiString = 'S';
Temp.Excluir := Reader.Value[1].GetAnsiString = 'S';
Temp.Alterar := Reader.Value[2].GetAnsiString = 'S';
Temp.Consultar := Reader.Value[3].GetAnsiString = 'S';
Temp.Imprimir := Reader.Value[4].GetAnsiString = 'S';
end
else
begin
Temp.Incluir := True;
Temp.Excluir := True;
Temp.Alterar := True;
Temp.Consultar := True;
Temp.Imprimir := True;
end;
Result := Temp;
end
else
MessageDlg('É necessário está logado para invocar este método !!',mtWarning,[mbOK],0);
end; function TUsuario.IsMaster: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
Result := Reader.Value[0].GetAnsiString = 'S';
end;
end; function TUsuario.LoadProfile: Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
I: Integer;
Nm, Pr : String;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT NAME, PREMISSAO FROM PERFIL_CONF WHERE PERFILID = '+IntToStr(FPerfilID);
Reader := Command.ExecuteQuery; while Reader.Next do
begin
Nm := Reader.Value[0].GetAnsiString;
Pr := Reader.Value[1].GetAnsiString;
for I := 0 to Pred(FAcoes.ActionCount) do
begin
if TAction(FAcoes.Actions[I]).Name = Nm then
begin
TAction(FAcoes.Actions[I]).Enabled := 'V' = Pr;
break;
end;
end;
end;
Result := True;
end; function TUsuario.Login(AUsuario, ASenha: String;
Acoes: TCustomActionList): Boolean;
var
DBCon: TDBXConnection;
Command: TDBXCommand;
Reader: TDBXReader;
begin
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT * FROM USUARIOS WHERE LOGIN = '+QuotedStr(AUsuario)+
' and SENHA = '+QuotedStr(ASenha);
Reader := Command.ExecuteQuery; if Reader.Next then
begin
FID := Reader.Value[0].GetInt32;
FPerfilID := Reader.Value[1].GetInt32;
FNome := Reader.Value[2].GetAnsiString;
FLogin := Reader.Value[4].GetAnsiString;
FSenha := Reader.Value[5].GetAnsiString;
FLogado := True;
FAcoes := Acoes;
if LoadProfile then
Result := True
else
MessageDlg('Não foi possível carregar o perfil !!',mtWarning,[mbOK],0);
end;
end; end.
GOSTEI 0
Wesley Yamazack
26/06/2010
Olá Ricardo,
Este exemplo foi feito em Delphi 2007, e o mesmo não tem suporte nativo a Firebird, esta unit senão me engano é do Thiago Borges, um driver de terceiro, que tem um driver nativo para delphi 2007 com Firebird, no teu caso, você não utiliza ela sacou ? Então ela não exite no Delphi 2010, pois já é nativo a sua conexão.
Sacou meu amigo ?
Um abraço
Wesley Y
Este exemplo foi feito em Delphi 2007, e o mesmo não tem suporte nativo a Firebird, esta unit senão me engano é do Thiago Borges, um driver de terceiro, que tem um driver nativo para delphi 2007 com Firebird, no teu caso, você não utiliza ela sacou ? Então ela não exite no Delphi 2010, pois já é nativo a sua conexão.
Sacou meu amigo ?
Um abraço
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Entendi.
Mas mesmo sem ela apresenta erro.
Invalid argument : DBVENDAS.
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('DBVENDAS','SYSDBA','masterkey');
Vou testar no mysql.
Segunda a gente se fala.
abcs.
Att,
Ricardo Horoi
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo,
Até segundo meu velho, tente no MySQL e nos falamos.
Att
Wesley Y
Até segundo meu velho, tente no MySQL e nos falamos.
Att
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Bom dia.
DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('COMERCIAL','SYSDBA','masterkey');
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID); // DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('lojaonline', 'root', 'root');
// Command := DBCon.CreateCommand;
// Command.Text := 'SELECT * FROM USUARIO WHERE DESCRICAO = ' + QuotedStr(AUsuario) + ' and SENHA = ' + QuotedStr(ASenha); Att, Ricardo Horoi
Command := DBCon.CreateCommand;
Command.Text := 'SELECT MASTER FROM USUARIOS WHERE USUARIOID = '+IntToStr(ID); // DBCon := TDBXConnectionFactory.GetConnectionFactory.GetConnection('lojaonline', 'root', 'root');
// Command := DBCon.CreateCommand;
// Command.Text := 'SELECT * FROM USUARIO WHERE DESCRICAO = ' + QuotedStr(AUsuario) + ' and SENHA = ' + QuotedStr(ASenha); Att, Ricardo Horoi
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Desculpe esqueci de falar o erro.
Ta dando o mesmo erro.
Tanto sql server
firebird
mysql
Invalid Argument.
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo,
Teria como você mandar seu projeto, não completo mas somente o que necessário para poder analisar aqui e fazer uns testes, seu banco de dados também, fique tranquilo que seus dados não serão utilizados para outros fins.
Fico no aguardo meu amigo.
Wesley Y
Teria como você mandar seu projeto, não completo mas somente o que necessário para poder analisar aqui e fazer uns testes, seu banco de dados também, fique tranquilo que seus dados não serão utilizados para outros fins.
Fico no aguardo meu amigo.
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Sem problemas.
http://video.devmedia.com.br/discovirtual/173622/Comercial37.zip
Att,
Ricardo Horoi
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo
Você essa aplicação esta em firebird, e não em MySql e também esta em Delphi 2007. Usando o Driver do Thiago Borges, queria a aplicação com MySQL, e a classe do Usuário que ta dando erro,somente, para ficar mais simples de achar este erro, entende ? Manda o Script Banco MySQL pra poder testar.
Att,
Wesley Y
Você essa aplicação esta em firebird, e não em MySql e também esta em Delphi 2007. Usando o Driver do Thiago Borges, queria a aplicação com MySQL, e a classe do Usuário que ta dando erro,somente, para ficar mais simples de achar este erro, entende ? Manda o Script Banco MySQL pra poder testar.
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Segue anexo.
http://video.devmedia.com.br/discovirtual/173622/Integradores.rar
Att,
Ricardo Horoi
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo,
Faltou o banco de dados no FB.
Att,
Wesley Y
Faltou o banco de dados no FB.
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo, acabei utlizando aqui um banco de dados meu.
Como esta o seu C:\Users\Public\Documents\RAD Studio\dbExpress\7.0\dbxconnections.ini ?
[BDAPTEL]
drivername=FIREBIRD
blobsize=-1
commitretain=False
Database=C:\SWAPTEL\APTELBD.FDB
localecode=0000
password=masterkey
rolename=RoleName
sqldialect=3
isolationlevel=ReadCommitted
user_name=sysdba
waitonlocks=True
trim char=False
E funcionou, cliquei no botão Usuario, do formulário principal e funcionou, você criou no seu data explorer esta conexão no firebird com o nome COMERCIAL ?
Att,
Wesley Y
Como esta o seu C:\Users\Public\Documents\RAD Studio\dbExpress\7.0\dbxconnections.ini ?
[BDAPTEL]
drivername=FIREBIRD
blobsize=-1
commitretain=False
Database=C:\SWAPTEL\APTELBD.FDB
localecode=0000
password=masterkey
rolename=RoleName
sqldialect=3
isolationlevel=ReadCommitted
user_name=sysdba
waitonlocks=True
trim char=False
E funcionou, cliquei no botão Usuario, do formulário principal e funcionou, você criou no seu data explorer esta conexão no firebird com o nome COMERCIAL ?
Att,
Wesley Y
GOSTEI 0
Wesley Yamazack
26/06/2010
Olá Ricardo,
Consegui resolver o problema ?Podemos fechar ?
Att,
Wesley Y
Consegui resolver o problema ?Podemos fechar ?
Att,
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Não consegui e não tive tempo ainda.
Preciso resolver este problema.
Se quiser fechar depois e abro outro chamado.
Estou quase desistindo de usar o FIRBIRD.
Att,
Ricardo Horoi
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo, não faça isso meu velho, o FB é muito bom, o que esta acontecendo ? Deu algum erro ? Mudou o erro ?
Um abraço
Wesley Y
Um abraço
Wesley Y
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo, fala comigo meu velho, o que esta havendo ? vamos resolver este problema, não desista.
Um abraço
Wesley Y
Um abraço
Wesley Y
GOSTEI 0
Wesley Yamazack
26/06/2010
Ricardo, desistiu meu amigo ?
Estou lhe aguardando para resolvermos o problema.
Um abraço
Wesley Y
Estou lhe aguardando para resolvermos o problema.
Um abraço
Wesley Y
GOSTEI 0
Frigorifico Sa
26/06/2010
Wesley,
Por enquanto sim.
Pode encerrar.
Obrigado.
GOSTEI 0
Wesley Yamazack
26/06/2010
Ok então amigo,
Att
Wesley Y
Att
Wesley Y
GOSTEI 0