Array
(
)

Sistema na rede

Mahdak
   - 31 mar 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!


Paullsoftware
   - 31 mar 2006

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!


Mahdak
   - 31 mar 2006


Citação:
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


Paullsoftware
   - 31 mar 2006

vamos por etapa:

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

Citaçã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
nesse caso daria os mesmo problemas...

Citação:
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...
#Código

[Base]
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? :?:


Mahdak
   - 31 mar 2006

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


Paulocesar1301
   - 03 abr 2006

Criando Atalho:

#Código


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 Local é a onde queres o atalho: Startup, Desktop, CommonStartMenu, etc

Ex.:
#Código

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]

Citação:

[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]


Mahdak
   - 03 abr 2006

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!