Acesso a dois bancos iguais dependendo da senha
27/01/2006
0
Olá a todos.
Tenho uma aplicação de controle de pedidos já pronta e funcionando.
O banco de dados é Firebird e o nome do Data module é DMDADOS,
neste datamodule tenho 33 tabelas.
Uso DbExpress e criei variáveis para cada tipo de componente.
===
V_SqlCnctn : TSqlConnection;
V_CliDtSt : TClientDataSet;
V_SqlDtSt : TSqlDataSet;
V_DtStPrv : TDataSetProvider;
V_DtSource : TDataSource;
===
Ao selecionar uma opção no menu faço:
begin
try
V_CliDtSt := DmDados.CliDtStPedidos;
V_SqlDtSt := DmDados.SqlDtStPedidos;
V_DtSource := DmDados.DsPedidos;
FrC1070 := TfrC1070.Create(Application);
FrC1070.ShowModal;
finally
FrC1070 := Nil;
end;
end;
===
O meu problema é, tenho outro banco de dados com o nome DMDADOS_,
com as mesmas 33 tabelas, só que dependendo da senha informada ao
entrar no sistema preciso abrir um banco (DMDADOS) ou o outro (DMDADOS_), DEPENDENDO DA SENHA.
Mas as rotinas de chamada dos programas no menu estão conforme acima.
Uma solução seria:
begin
If senha = 1 then
begin
try
V_CliDtSt := DmDados.CliDtStPedidos;
V_SqlDtSt := DmDados.SqlDtStPedidos;
V_DtSource := DmDados.DsPedidos;
FrC1070 := TfrC1070.Create(Application);
FrC1070.ShowModal;
finally
FrC1070 := Nil;
end;
else // senha 2
begin
try
V_CliDtSt := DmDados_.CliDtStPedidos;
V_SqlDtSt := DmDados_.SqlDtStPedidos;
V_DtSource := DmDados_.DsPedidos;
FrC1070 := TfrC1070.Create(Application);
FrC1070.ShowModal;
finally
FrC1070 := Nil;
end;
end;
===
Ainda não tenho uma solução para este caso mas acredito que não
deva ser esta a melhor.
Penso que deva haver uma forma mais inteligente para resolver este problema.
Caso possam me ajudar agradeço.
Um Abraço a todos e Obrigado
Neto
Neto
Posts
27/01/2006
Rjun
27/01/2006
Neto
Ao informar a senha eu estou fazendo uma validacão assim:
If Senha = 1 then
begin
V_SqlCnctn := DmDados.SQLCnctnConexao;
V_SqlCnctn.Connected := true;
end;
else // abrir a segunda conexão - DMDADOS_
begin
V_SqlCnctn := DmDados_.SQLCnctnConexao;
V_SqlCnctn.Connected := true;
end;
Até ai para abrir uma conexão ou outra tudo bem, mas o problema
é ao chamar abrir as tabela, todos as rotinas se referenciam a
conexão DMDADOS. Será que é possível criar tipo um mesmo ALIAS,
para hora uma conexão e hora outra????
Obrigado
Neto
27/01/2006
Rjun
27/01/2006
Neto
De qualquer forma se sua dica resolver meu problema tudo bem.
Poderia me dar um exemplo de como fazer duas strings de conexão??
Obrigado novamente
Neto
27/01/2006
Rjun
27/01/2006
Neto
Muito obrigado pelas preciosas dicas.
Vou implementar isso, mas já saquei e não tenho duvidas de que vai funcionar.
T+
Neto
Clique aqui para fazer login e interagir na Comunidade :)