Sistema na rede

31/03/2006

Pessoal, a alguns dias atraz me deparei com um sistema desenvolvido em Visual Basic, Banco Access, que rodava na rede da seguinte forma:

1. compartilhava-se a pasta do sistema no servidor
2. Mapeava-se uma unidade de rede (estação), da pasta do sistema
3. criava-se um atalho do executavel que estava no servidor, na area de trabalho da estação.

- Isso rola em delphi 7 / Firebird 1.5 ???
- Quais as vantagens, desvantagens, problemas, etc...?

conto com o esclarecimento de voces...

Abraços!


Mahdak

Respostas

31/03/2006

Paullsoftware

Acho que funciona com qq banco, mais...
1 - O sistema ficará lento com muitos conectados a ele ao mesmo tempo.
2 - Se houver um problema na hora de ligar a estação a unidade mapeada não será restaurada! (tive muita dor de cabeça com isso).
3 - O sistema funciona de forma bem mais rápida se vc copiar somente o executável nas estações e criar um atalho para o mesmo.
4 - De todo jeito vc terá que instalar o módulo client do FireBird/Interbase...
e outros problemas q já ocorreram comigo e não lembro agora!


Responder Citar

31/03/2006

Mahdak

Acho que funciona com qq banco, mais... 1 - O sistema ficará lento com muitos conectados a ele ao mesmo tempo. 2 - Se houver um problema na hora de ligar a estação a unidade mapeada não será restaurada! (tive muita dor de cabeça com isso). 3 - O sistema funciona de forma bem mais rápida se vc copiar somente o executável nas estações e criar um atalho para o mesmo. 4 - De todo jeito vc terá que instalar o módulo client do FireBird/Interbase... e outros problemas q já ocorreram comigo e não lembro agora!


humm... vamos ver se eu entendi:

- até rola, mas ficaria lento, alem de ter que instalar o firebird client na estação...

- se eu fizesse da maneira como descrevi no começo desse topico, nao teria problemas do tipo: dois usuarios estarem no mesmo formulario inserindo um registro e o sistema gerar o mesmo código pros dois usuários???, ou seja violação da chave primaria
Obs: nos meus sistemas eu gero o código dando um Select Max(codigo) as prox from tabela

- como funciona esse lance de copiar somente o executável nas estações e criar um atalho para o mesmo??? ja pesquisei a respeito aqui no forum, vi topicos falando do componente IBINI, atualizei minha paleta, mas tive problemas... de que maneira vc faz isso???

abração


Responder Citar

31/03/2006

Paullsoftware

vamos por etapa:
- até rola, mas ficaria lento, alem de ter que instalar o firebird client na estação...
Certo!
se eu fizesse da maneira como descrevi no começo desse topico, nao teria problemas do tipo: dois usuarios estarem no mesmo formulario inserindo um registro e o sistema gerar o mesmo código pros dois usuários???, ou seja violação da chave primaria Obs: nos meus sistemas eu gero o código dando um Select Max(codigo) as prox from tabela
nesse caso daria os mesmo problemas...
como funciona esse lance de copiar somente o executável nas estações e criar um atalho para o mesmo??? ja pesquisei a respeito aqui no forum, vi topicos falando do componente IBINI, atualizei minha paleta, mas tive problemas... de que maneira vc faz isso???
nesse caso, você criaria uma pasta na estação tipo C:\Sistema\MeuExe.exe
criaria um atalho para ele normalmente (acho q vc sabe criar né??) mais vc deveria informar a localização do servidor do banco de dados na sua rede, tipo: Eu uso arquivo Ini para isso com a informação:
Meu ini...
[Base&93;
Caminho = Servidor:C:\Sistema\MinhaBase.GDB

daí quando o sistema do terminal abrir ele ler esse arquivo e atribui o valor a uma variável que por sua vez é passa para proprieada DataBaseName do meu DataBase...
deu pra entender? :?:


Responder Citar

31/03/2006

Mahdak

entendido.... agora só tenho que baixar um tutorial pra aprender como se cria um atalho na area de trabalho. uhaeuhaeuhe :P


Responder Citar

03/04/2006

Paulocesar1301

Criando Atalho:

function CriarAtalho(Arquivo, Atalho, Local: String): Boolean;
Var Temp1: IUnknown;
    Temp2: IShellLink;
    Temp3: WideString;
    Temp4: IPersistFile;
begin
  Try
    Temp1 := CreateComObject(CLSID_ShellLink);
    Temp2 := Temp1 as IShellLink;
    Temp4 := Temp1 as IPersistFile;

    Temp2.SetPath(PChar(Arquivo));
    Temp2.SetWorkingDirectory(PChar(ExtractFileDir(Arquivo)));

    Temp3 := Local + ´\´ + Atalho + ´.lnk´;

    Temp4.Save(PWChar(Temp3),False);

    Result := True;
  Except
    Result := False;
  End;
end;


Onde [b:0a9b42d258][i:0a9b42d258]Local[/i:0a9b42d258][/b:0a9b42d258] é a onde queres o atalho: [b:0a9b42d258]Startup[/b:0a9b42d258], [b:0a9b42d258]Desktop[/b:0a9b42d258], [b:0a9b42d258]CommonStartMenu[/b:0a9b42d258], etc

Ex.:
CriarAtalho(´C:\MeuExe.exe´, ´Meu Atalho´, ´C:\Documents and Settings\usuario\Menu Iniciar\Programas\Inicializar\´);


[u:0a9b42d258]Quanto a usar ini para trabalhar com caminhos dos bancos:[/u:0a9b42d258]
[Base] Caminho = Servidor:C:\Sistema\MinhaBase.GDB


Eu pensaria usar o Registro do Windows de acordo com o perfil do usuário. É simples e bem mais seguro... Afinal o usuário não tem a meor possibilidade de apagar suas configurações.
E, pensando nos espertinhos... retire o acesso ao regedit :wink:

Abs e Bons Códigos :wink: [/u]


Responder Citar

03/04/2006

Mahdak

paulo cesar... eu estava brincando quanto a baixar um tutorial para aprender como criar um atalho na area de trabalho.. uhauhua mas valleu a sua dica sobre o RegEdit... eu ja havia pensado nessa possibilidade

Abração brother!


Responder Citar