Escolar Documentos
Profissional Documentos
Cultura Documentos
Voc tem um problema: Precisa desenvolver uma aplicao em Visual Basic para controlar o atendimento de clientes em uma clinca.(Voc o programador da clnica e tem 5 dias para implantar o sistema, seno... ). Moleza hein Mas ... (Pensa que fcil ganhar 5 mil por ms) para complicar a situao a clinica esta distribuda em trs andares : ! " # e $ andar . %om o se&uinte la'out de e(uipamentos distribudos:
)esumindo : sua aplicao dever* compartilhar o banco dados em um ambiente de acesso multiusu*rio. +e a esta altura voc ,* esta suando -rio. .o se desespere pedras... . /stou a(ui para mostrar o caminho das
0 primeira per&unta (ue deve estar passando pela sua cabea 1 : Como eu fao uma aplicao em Visual asic para um am!iente multiusurio " # $a!ia pergunta ...% 0 sua sorte 1 (ue o site tem dois arti&os sobre este assunto. Ve,a os lin2s:
+eria bom voc dar uma olhada nos arti&os para ter uma viso &eral do problema. .o entanto eu posso lhe adiantar o se&uinte: 0o escrever uma aplicao multiusu*rio " &eralmente " voc deve somente se preocupar (uando vai escrever no banco de dados . 3sto envolve as tare-as de incluso " e4cluso e atualizao dos re&istros do banco de dados. /stas tare-as podem &erar con-litos (uando mais de um usu*rio tenta realizar a mesma tare-a no mesmo instante. 5odas as demais tare-as (ue envolvam a leitura do banco de dados no &eram con-litos 0&ora eu vou -alar uma coisa (ue talvez possa parecer estranha mas eu tenho vivenciado isto na pr*tica e no tenho tido problemas. 6 o se&uinte...: Para criar uma aplicao Visual Basic multiusu*rio voc no tem (ue -azer nada al1m de somente compartilhar o banco de dados 0ccess. ( /stou supondo (ue estamos trabalhando como 0ccess e (ue o acesso simult7neo no
se,a &i&antesco)
6 isto mesmo %rie a sua aplicao normalmente " compartilhe o banco de dados e pronto. +ua aplicao vai -uncionar sem problemas com acesso para os usu*rios na rede. (.aturalmente voc vai ter (ue
abrir o banco de dados no modo compartilhado.)
Como compartilhar Banco de dados ? Primeiro ve,amos o nosso ambiente: 8ma rede ponto a ponto com um servidor 9indo:s ;<<< e seis m*(uinas 9indo:s =>. /nto 1 simples " voc vai ter (ue adotar o se&uinte procedimento :
1. 3nstalar a aplicao em todas as m*(uinas e no +ervidor 2. %ompartilhar o banco de dados do servidor com as demais esta?es de trabalho
%om isto em mente voc vai ter (ue permitir (ue o seu banco de dados se,a acessado pelas esta?es @ para -azer isto basta voc mapear uma cone4o com o servidor " e" compartilhar esta cone4o em todas as esta?es. Perceba (ue voc no vai poder usar um caminho absoluto(-i4o) (uando -or abrir o seu banco de dados na aplicao . .o vai poder abrir o banco de dados como costuma abrir para uma aplicao monousu*rio :
Estrutura de um arquivo .INI Exemplo de arquivo INI : Win.ini (somente uma parte...) 8m ar(uivo .3.3 possui diversos cabe&alhos " cada (ual com diversas cha$es e a cada chave temos um $alor associado. Podemos ler e &ravar os valores de cada chave usando as 0P3Cs ( application Programming &nterface ) do :indo:s. Para manipular ar(uivos 3.3 &eralmente usamos duas -un?es :
1. *et+ri$ate+ro%ileString , utilizada para ler ar(uivos 3.3 2. -rite+ri$ate+ro%ileString D usada para escrever em ar(uivos 3.3
/nto a primeira coisa a -azer 1 declarar as -un?es acima em nosso pro,eto. Aazemos isto em um mEdulo padro. 0s declara?es so :
Beclare Aunction 9ritePrivatePro-ile+trin& Fib G2ernelH;G 0lias G9ritePrivatePro-ile+trin&0G (B'Val lp0pplication.ame 0s +trin&" B'Val lpIe'.ame 0s 0n'" B'Val lp+trin& 0s 0n'" B'Val lpAile.ame 0s +trin&) 0s Fon& Beclare Aunction JetPrivatePro-ile+trin& Fib G2ernelH;G 0lias GJetPrivatePro-ile+trin&0G (B'Val lp0pplication.ame 0s +trin&" B'Val lpIe'.ame 0s 0n'" B'Val lpBe-ault 0s +trin&" B'Val lp)eturned+trin& 0s +trin&" B'Val n+ize 0s Fon&" B'Val lpAile.ame 0s +trin&) 0s Fon&
0&ora podemos usar as chamadas a 0P3 e criar nossas -un?es. Ve,amos a se&uir como criar as -un?es para ler e escrever em ar(uivos 3.3. KD) 0 -uno )ead3.3 -az a leitura de um valor para uma chave de um ar(uivo 3.3 Public Function ReadINI(Section s Strin!" #e$ s Strin!" FileName s Strin!) %Filename&nome do arquivo ini %section&' que esta entre () %*e$&nome do que se encontra antes do sinal de i!ual +im retlen s Strin! +im Ret s Strin! Ret & Strin!,(-.." /) retlen & 0etPrivatePro1ileStrin!(Section" #e$" 22" Ret" 3en(Ret)" FileName) Ret & 3e1t,(Ret" retlen) ReadINI & Ret End Function Voc -az a chamada da -uno assim :
;D) Para escrever em um ar(uivo 3.3 usamos a -uno 9rite3.3 Public Sub WriteINI(Section s Strin!" #e$ s Strin!" 4ext %Filename&nome do arquivo ini %section&' que esta entre () %*e$&nome do que se encontra antes do sinal de i!ual %text& valor que vem depois do i!ual WritePrivatePro1ileStrin! Section" #e$" 4ext" FileName End Sub 0 chamada da -uno 1 -eita assim : s Strin!" FileName s Strin!)
bs: Ls nomes )ead3.3 e 9rite3.3 -oram nomes (ue eu usei " voc pode usar (ual(uer nome v*lido. Bem " a&ora (ue ,* sabemos como trabalhar com ar(uivos 3.3 vamos criar o nosso ar(uivo 3.3. FembreD se (ue nosso ob,etivo 1 de-inir a localizao do banco de dados. Primeiro temos (ue mapear o caminho
na rede para saber o caminho do banco de dados " -eito isto 1 sE criar o ar(uivo 3.3 e in-ormar o caminho mapeado. Vamos criar um ar(uivo 3.3 com o nome de con-i&.ini com a se&uinte estrutura:( Voc deve adaptar para o seu caso particular)
[%eral] Ca&inho='()!este)teste.&db
0(ui eu criei um ca!ealho com o nome *eral e uma cha'e chamada Caminho. L 'alor atribudo a chave Caminho usa o drive 12#teste#teste.mdb. #este o caminho mapeado na rede% 0&ora podemos de-inir o roteiro para instalar o sistema nas # esta?es e no servidor: D L sistema dever* ser instalado em todas as m*(uinas " mas banco de dados dever* estar presente somente no servidor. D L ar(uivo con-i&.ini dever* estar presente em todas as m*(uinas sendo (ue nas 3 esta&4es vamos usar o ar(uivo com o se&uinte contePdo:
[%eral] Ca&inho='()!este)teste.&db
D )o ser$idor o contePdo do ar(uivo con-i&.ini ser* outro pois nele o acesso ao banco de dados 1 local. Podermos ter ento al&o como:
[%eral] Ca&inho=C()!este)teste.&db
- L cEdi&o usado para ler o ar(uivo con%ig.ini poder* estar em um mEdulo 5ain com o se&uinte cEdi&o:
Sub 5ain() +im camin6o as strin! %veri1ica se 78 68 uma inst9ncia do pro!rama sendo executado I1 pp.PrevInstance & 4rue 46en +im Form s Form For Eac6 Form In Forms :nload Form Set Form & Not6in! Next Form End End I1 %de1ine camin6o para base de dados" 6elp e ima!ens
Q:O5esteOteste.mdb
0ssim " em todas as esta?es estaremos acessando o banco de dados teste.mdb (ue esta presente no servidor.
Pronto o seu banco de dados esta compartilhado e sua aplicao VB esta -uncionando em um ambiente multiusu*rio... +imples " no 1 mesmo...