Erro da abertura de arquivos
Enviado: 26 Out 2007 11:28
Estive batalhando com o Harbour e GtWVW, e consegui funcionar o programa, mas estou com um problema na abertura de arquivos, tanto em console como em gráfico, horas roda normal horas não, consegui descobrir que é problema na função de abertura de arquivos temporários na função DbUseArea(), eu não consegui descobrir porque o db]]DbUseArea só no temporário não consegue rodar legal, visto que no clipper roda normalmente até hoje, não dando este erro.
Fico muito grato se alguém descobrir a saída deste novelo de lã. ´o)
Abaixo vai as linhas do código:
Esta função abaixo é utilizada logo após a identificaão do usuário.
Código: Selecionar todos
Procedure Seleciona_Caixa
ShowWait(,,"Selecionando Caixas Deste Usu rio...")
NetUseFile("CDOC0300",{"CDOC0300","CDOC0301"},.T.,,,,,,,wD_Instal)
NetUseFile("CDOC0400",{"CDOC0400","CDOC0401"},.T.)
NetUseFile("CDOC1200",{"CDOC1200"},.T.)
If wNetUse=.T.
Campos:={{"C_OPER" ,"C",03,0},;
{"C_CAIXA","C",02,0},;
{"DATA" ,"D",08,0},;
{"TICADO" ,"C",01,0}}
NomeCampos:={{"c_caixa+Abreviate(CDOC0400- nome,30)","data","ShSitCaixa(ticado)"},;
{"@R 99-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","@!","@!"},;
{"Caixa","Data","Situa‡Æo"}}
File1Tmp:=HoraTmp()
[b] OpenTmp(Campos,"C_CAIXA")[/b] //aqui da o erro que chama a função abaixo em negrito OPENTMP
NetRelFile("CDOC0300","C_OPER")
NetRelFile("CDOC0400","C_CAIXA")
waCxA :=.F.
waCaixa:=Space(2)
waData :=Date()
DbSelectArea("CDOC1200")
DbSeek(wCOper+"A")
If(!Found(),DbSeek(wCOper+"M"),.T.)
wTicado:=TICADO
If Found().And.SENHA==WSenha
While !Eof().And.C_OPER==wCOper.And.TICADO==wTicado
ShowWaitProc()
(File1Tmp)->(DbAppend())
(File1Tmp)->C_OPER :=C_OPER
(File1Tmp)->C_CAIXA:=C_CAIXA
(File1Tmp)->DATA :=DATA
(File1Tmp)->TICADO :=TICADO
DbSkip(1)
If wTicado=="A".And.TICADO#wTicado
wTicado:="M"
DbSeek(wCOper+"M")
EndIf
End
DbSelectArea(File1Tmp)
If LastRec()>=1
DbGoTop()
DbBusca(02,00,22,79,"Caixas Em Aberto Com o Usu rio "+RTrim(Abreviate(CDOC0300->NOME,30)),NomeCampos,,"<ENTER> Seleciona o Caixa <ESC> Abandona Sele‡Æo de Caixa")
EndIf
If LastRec()>0.And.LastKey()#27
waCxA:=.T.
waCaixa:=C_CAIXA
waData :=DATA
ElseIf LastRec()>0.And.LastKey()=27
waCxA:=.T.
ShowMessage(,,{"Usu rio, Vocˆ NÆo Selecionou Um Caixa,","Portanto NÆo Poder Efetuar Recebimentos!"},0)
EndIf
EndIf
CloseTmp()
CDOC0300->(DbCloseArea())
CDOC0400->(DbCloseArea())
CDOC1200->(DbCloseArea())
EndIf
CloseWindow()
wNetUse:=.T.
Return .T.
///////////
[b]função Opentmp[/b]
Procedure OpenTmp(Campos,Chave,Arquivo,Arquivo2,Chave2,Arquivo3,Chave3,aOd)
Private LArquivo:=If(Arquivo=Nil,File1Tmp,Arquivo),LArquivo2:=Arquivo2,LArquivo3:=Arquivo3
aOd:=If(aOd=Nil,"A",aOd)
ShowWait(,,"Abrindo arquivo tempor rio...")
DbCreate(wDir+"&LArquivo.",Campos)
wNetUse:=If(NetErr(),.F.,wNetUse)
If wNetUse=.T.
[b] DbUseArea(.T.,,wDir+LArquivo,,.F.,.F.)[/b] //nesta linha que da erro
ShowWaitProc()
wNetUse:=If(NetErr(),.F.,wNetUse)
If wNetUse=.T. //cria indices
If(lArquivo #Nil,IndexFile(Chave ,wDir+LArquivo ,aOd),.T.)
ShowWaitProc()
If(lArquivo2#Nil,IndexFile(Chave2,wDir+LArquivo2,aOd),.T.)
ShowWaitProc()
If(lArquivo3#Nil,IndexFile(Chave3,wDir+LArquivo3,aOd),.T.)
EndIf
DbCloseArea()
DbUseArea(.T.,,wDir+LArquivo,,.F.,.F.)
ShowWaitProc()
wNetUse:=If(NetErr(),.F.,wNetUse)
If wNetUse=.T. //abre indices
If(lArquivo#Nil,DbSetIndex(wDir+"&LArquivo."+"."+wRDD),.T.)
ShowWaitProc()
If(lArquivo2#Nil,DbSetIndex(wDir+"&LArquivo2."+"."+wRDD),.T.)
ShowWaitProc()
If(lArquivo3#Nil,DbSetIndex(wDir+"&LArquivo3."+"."+wRDD),.T.)
EndIf
EndIf
CloseWindow()
Return .T.
******************************* Error log file ********************************
Date ............: 26/10/2007
Available Memory : 225080
Multi Threading : No
Compiler : Borland C++ 5.5.1
xHarbour Version : xHarbour build 0.99.60 Intl. (SimpLex)
-------------------------- Environmental Information --------------------------
Exact is ........: Off
Fixed is ........: Off
Decimals is at ..: 2
Date Format is ..: DD/MM/YYYY
Epoch is ........: 1900
Path is .........:
Default is ......:
Exclusive is ....: On
SoftSeek is .....: Off
Unique is .......: Off
Deleted is ......: On
Cancel is .......: On
Debug is ........: False
Color is ........: N/W,GR+/N,N/N,N/N,N/W
Cursor is .......: 0
Console is ......: On
Alternate is ....: Off
AltFile is ......:
Device is .......: SCREEN
Printer is ......: False
PrintFile is ....: PRN
Margin is .......: 0
Bell is .........: Off
Confirm is ......: Off
Escape is .......: On
Insert is .......: Off
Intensity is ....: On
Scoreboard is ...: Off
Delimeters is ...: Off
Delimchars is ...: ::
Wrap is .........: On
Message is ......: 0
MCenter is ......: Off
=============================Detailed Work Area Items==============================
++++++++++++++++++++++ Internal Error Handling Information +++++++++++++++++++++++
Subsystem Call ..: BASE
System Code .....: 1003
Default Status ..: False
Description .....: Variable does not exist
Operation .......: CODIGO
Arguments .......:
Involved File ...:
Dos Error Code ..: 0
Trace Through:
----------------
DBUSEAREA : 0 in Module:
OPENTMP : 1,214 in Module: MEGALIB.PRG
SELECIONA_CAIXA : 404 in Module: CDOC0000.PRG
MAIN : 30 in Module: CDOCINI.PRG
################################ Video Screen Dump ################################
|Error BASE/1003 Variable does not exist: CODIGO |
|Error at ...: DBUSEAREA(0) in Module: |
|Called from : OPENTMP(1214) in Module: |
|Called from : SELECIONA_CAIXA(404) in Module: CDOC0000.PRG |
|Called from : MAIN(30) in Module: CDOCINI.PRG
:xau