Código: Selecionar todos
Error DBCMD/1011 Nome de alias duplicado: ATCAM.
Alguém poderia me ajudar, por favor?
Estou compilando com o Harbour, hbmk2. A máquina onde deu o erro está com o XP instalado.
Moderador: Moderadores
Código: Selecionar todos
Error DBCMD/1011 Nome de alias duplicado: ATCAM.
Código: Selecionar todos
If Select( "ATCAM" ) = 0
Use ATCAM Shared New
Else
Select ATCAM
Endi
Código: Selecionar todos
IF !Abre_Dbf("Arquivo","Alias",.T.,10) ou IF !Abre_Dbf("Arquivo","1",.T.,10)
Alert("Não foi possível abrir o Arquivo")
RETURN
ENDIF
Não, pelo contrário... é sempre recomendável quando se trabalha em rede, então deve sempre usar-se SHARED.embora não seja recomendável, é possível abrir o mesmo arquivo duas vezes com a cláusula shared
Sim! Era pra dar erro! Você interpretou errado. Como você mesmo disse: Abrir o Arquivo. Arquivo é uma coisa, e Alias é outra totalmente diferente. Shared = Compartilhado, permite você abrir o arquivo tantas vezes quantas máquinas na rede o estiverem usando, e na mesma máquina quantas vezes se fizer necessário. Pessoalmente entendo que necessário é apenas uma. Porém, no mesmo ambiente, ou seja, na mesma máquina, o ALIAS pode usar SOMENTE UMA AREA. Se você quer o mesmo arquivo aberto um monte de vezes, tem que atribuir nomes de aliases diferentes:cjp escreveu:Jairo, o que achei mais estranho é que, ao estudar a shared no NG, observei que ele informa que, embora não seja recomendável, é possível abrir o mesmo arquivo duas vezes com a cláusula shared. Não era pra dar erro, né?
Código: Selecionar todos
Function Main()
Use ATCAM Alias Atcam1 Shared New
Use ATCAM Alias Atcam2 Shared New
Use ATCAM Alias Atcam3 Shared New
// Use etc...
Sele Atcam1
? Alias()
Sele Atcam2
? Alias()
Sele Atcam3
? Alias()
//Sele etc...
Return Nil
Abrir no mesmo computador ? Ahhh eu achava que referia-se abertura na rede... por isso respondi daquele jeito. rs deve ter sido cansaço pelo horário. Mas não abra duas vezes o arquivo !Jairo, o que achei mais estranho é que, ao estudar a shared no NG, observei que ele informa que, embora não seja recomendável, é possível abrir o mesmo arquivo duas vezes com a cláusula shared. Não era pra dar erro, né?
Código: Selecionar todos
if select(nomebase)#0
sele (nomebase)
return .t.
else
use (nomebase) shared
endif
Código: Selecionar todos
IF SELECT(nomebase) == 0
USE &nomebase. SHARED NEW
ELSE
DbSelectArea(nomebase)
ENDIF
Código: Selecionar todos
function usebase(nomebase,exclusivo)
vezusb=0
do while .t.
use &nomebase. shared
if neterr()
vezusb++
if ("TAR2P"$upper(hb_progname()) .and. vezusb>160) .or. (at("TAR2P",upper(hb_progname()))=0 .and. vezusb>80)
return .f.
endif
@ maxrow(),1 clear to maxrow(),79
@ maxrow(),5 say "Base "+upper(nomebase)+" ocupada; aguarde liberação ("+alltrim(str(vezusb))+")"
desiste:=inkey(8)
if desiste= 27 //K_ESC
conf="N"
@ maxrow()-2,1 clear to maxrow(),79
@ maxrow()-1,5 say "Confirma abandono da tentativa da utilização?"get conf pict "@!"
read
@ maxrow()-2,1 clear to maxrow(),79
if conf="S"
return .f.
endif
endif
else
exit
endif
@ maxrow(),5 clear to maxrow(),79
else
return .f.
endif
enddo
return .t.
Código: Selecionar todos
Ocorreu o erro: Error DBCMD/1011 Nome de alias duplicado: ATCAM
Data: 16/12/12; hora: 22:52:17
Programa......: C:\criancas\criancas.exe Na função.....: DBUSEAREA Na linha......: 0 Base em uso...:
Área em uso...: 3
Pasta.........: criancas
Usuário.......: Y
Versão........: 11/12/12
Área 1........: ATCAM
Área 2........:
Área 3........:
Área 4........:
Área 5........:
Área 6........:
Código: Selecionar todos
function usebase(nomebase,exclusivo)
vezusb=0
do while .t.
//(---Inicio ALteração---)//
//use &nomebase. shared
if select(nomebase) = 0
use &nomebase. shared new
else
DbSelectArea(nomebase)
endif
//(---Fim ALteração---)//
if neterr()
vezusb++
if ("TAR2P"$upper(hb_progname()) .and. vezusb>160) .or. (at("TAR2P",upper(hb_progname()))=0 .and. vezusb>80)
return .f.
endif
@ maxrow(),1 clear to maxrow(),79
@ maxrow(),5 say "Base "+upper(nomebase)+" ocupada; aguarde liberação ("+alltrim(str(vezusb))+")"
desiste:=inkey(8)
if desiste= 27 //K_ESC
conf="N"
@ maxrow()-2,1 clear to maxrow(),79
@ maxrow()-1,5 say "Confirma abandono da tentativa da utilização?"get conf pict "@!"
read
@ maxrow()-2,1 clear to maxrow(),79
if conf="S"
return .f.
endif
endif
else
exit
endif
@ maxrow(),5 clear to maxrow(),79
else
return .f.
endif
enddo
return .t.