Página 2 de 2
Enviado: 26 Fev 2008 11:55
por ederxc
janio escreveu:
Grande Eolo,
Estou precisando exatamente desse negócio para ir exibindo um relatório em TXT antes de este estar concluso.
Vc pode passar o caminho das pedras??
Jânio
Janio conseguil fazer alguma coisa , estou pelando pra fazer ...
té++ :f
Enviado: 26 Fev 2008 12:08
por janio
Ainda não tentei, porque não tive tempo pra nada.
A correria tá grande de +.
Jânio
Enviado: 26 Fev 2008 15:40
por ederxc
janio escreveu:Ainda não tentei, porque não tive tempo pra nada.
A correria tá grande de +.
Jânio
Que dureza...
Pois bem , amigos ! A dias venho tentando desenvolver um relatório que seja gerado com MT , porem venho tendo o seguinte erro
hb_cdxIndexLockread: lock failure(*) erro 9170
Ao iniciar a MT e voltar para meu "browse" ele fica louco como se os indices estivessem corrompidos.
1- Apos copiar todo o DB abro o temp.dbf em uma nova area
então não mexe na area do browse()
Ps: IMPORTANTE
"Se deixar a thread ser concluida sem mexer em nada , o sistema funciona normalmente e não da esses erros estranhos de browse maluco e nem o erro sitado acima
Código: Selecionar todos
func main()
select A
user cadmaq Shared via "dbfcdx";
index xmaquinas
browse()
thr:=StartThread("imprime")
*_____________________imprimir
func imprime()
dbcopstruct("temp.dbf")
copy to temp
Select B //abro em uma nova area
use temp VIA "DBFCDX"
dbgotop()
**Rotina de impressão
Close B
return(.t.)
Enviado: 27 Fev 2008 13:49
por sygecom
Eder, vc deve abrir o mesmo DBF nas duas function, com alias diferente sendo que a primeira vc pode abrir como READONLY e a segunda func vai ser a que vai registrar nos dbf, claro que a primeir a func deve ter um dispositivo de dar um refresh no DBF.
Enviado: 27 Fev 2008 16:19
por ederxc
sygecom escreveu:Eder, vc deve abrir o mesmo DBF nas duas function, com alias diferente sendo que a primeira vc pode abrir como READONLY e a segunda func vai ser a que vai registrar nos dbf, claro que a primeir a func deve ter um dispositivo de dar um refresh no DBF.
Leo , é o contrario , quem vai abrir como readonly é o segundo .DBF pois irei continuar usando o primeiro enquanto o relatorio é processador no segundo
Tentei abrir o
mesmo DBF em outra area e da erro "dbf in use "
Enviado: 27 Fev 2008 20:54
por sygecom
Eder, veja bem, o primeiro vai apenas visualizar o que o segundo vai esta acresentando , ou seja o primeiro abre como READONLY e o segundo como SHARED para poder gravar, mostre como vc tentou abrir.....não pode usar o mesmo alias.
Enviado: 27 Fev 2008 21:07
por Maligno
Uma pergunta: alguém um dia já fez algo semelhante (duplo acesso) com sucesso? Se não, outra pergunta: o RDD do xHarbour é thread safe? Se não, pode ser esse o problema.
Exemplo simples, pra quem não entendeu: na VCL da Borland, quando se quer fazer coisa semelhante com um SGBD qualquer, não se deve usar a mesma conexão para o duplo acesso. Uma thread extra sempre requer uma conexão exclusiva. Senão, é pau na certa. Isso porque, numa conexão única, as threads devem concorrer pelo mesmo recurso usando o mesmo espaço de nomes, e tudo acaba virando uma salada.