SISTEMA EM REDE COM BANCO FIREBIRD

NEGRON 19/07/2012 23:22:26
#406301

Boa noite galera!!!!!

Galera é o seguinte desenvolvi um sistema, onde utilizo ADO e firebird, até ai normal... agora me pediram para que o sistema trabalhe em rede... fui lá instalei ele normalmente e o firebird cliente... liberei a porta no firewall.. conectou normal.

mas agora a minha duvida é em relação ao código que gera de forma automática. Eu utilizei a rotina abaixo para pegar o código do banco(firebird - gera o codigo automatico quando salva) ai acrescenta mais um e exibe na tela.



Public Function GeraID_USUARIO(VARUSUA As Object) As Long
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim Numero As String
Dim CONVER As String
Dim cobaia, X As String
Numero = [Ô][Ô]
CONVER = [Ô][Ô]
cobaia = [Ô][Ô]
X = [Ô][Ô]
rs.Open [Ô]Select GEN_ID( GEN_USUARIOS_ID, 0) From RDB$DATABASE[Ô], CONECTABANCO
GeraID_USUARIO = rs(0)
Numero = GeraID_USUARIO + 1
CONVER = Numero [ô]Format(Numero, [Ô]000000[Ô])
VARUSUA = CONVER
rs.Close
Set rs = Nothing
End Function


A minha dúvida é de como fazer para ele gerar um código diferente nos terminais de rede...

Alguem poderia me ajudar ou me indicar um exemplo para eu analisar

é que nunca fiz sistema para trabalhar em rede


KERPLUNK 19/07/2012 23:28:56
#406303
Resposta escolhida
Juro que não entendi o que você quer...
NEGRON 19/07/2012 23:38:17
#406305
é o seguinte amigo KERPLUNK

quando abro a tela. de cadastro no servidor ele vai me gerar o codigo por exemplo 01, se abro a mesma tela de cadastro em outro terminal tambem o codigo vai ser 01.

a minha dúvida é - como faço para que no serviço apareça o codigo 01 e no terminal 02
essa é minha dúvida.... espero que tenha esclarecido
Brigadão
KERPLUNK 19/07/2012 23:49:11
#406307
Ah, sim, agora sim entendi
Bem, tem várias alternativas, algumas mais simples e algumas mais complicadas:
1 - Crie uma tabela que contenha um número, cada vez que entrar na tela que você quer contar, pegue esse número e some mais um, e use esse código para inserir. Essa é uma alternativa simples mas não é muito segura.
2 - Ao entrar na tela, já crie o registro na tabela, usando o maior número (use a função MAX para isso), e ao gravar, simplesmente faça um update no registro
3 - Pode usar um contador automático na tabela(teria que pesquisar como fazer isso no FB porque eu não sei).
GOODSPEAKERS 20/07/2012 09:04:58
#406324
Seguinte .

Se voce quiser mostrar o novo codigo na tela assim que abrir o form, voce teria que criar uma tabela auxiliar de codigos e usar o generator para criar esse codigo e dar updade nessa tabela assim que obter o novo codigo.

Teria que fazer isso porque dois ou mais usuarios podem estar cadastrando ao mesmo tempo, e o segundo usuario nao teria acesso aos codigos enquanto a sua transacao nessa tabela auxiliar nao der o commit.

Agora se voce não necessitar mostrar o proximo codigo na tela, basta usar o generator na gravação do registro que sempre vai ser o proximo assim nao necessita da tabela auxiliar.

Assim nao da problema de jeito nenhum.
Tópico encerrado , respostas não são mais permitidas