Página 1 de 1
Erro ORDLISTCLE
Enviado: 01 Mar 2007 16:27
por kirua
olá...
meu eu to com um erro na seguinte linha
acontece o erro na seguinte hora.....
Quando eu entro na função de cadastrar produto, saio dela entro em qualquer uma e volta pra ela....
da um erro chamado
Error DBCMD/2001 Workarea not in use: ORDLISTCLE
Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
e na linha do erro é o codigo bem acima..
alguem ja passou por isso ou sabe como me tirar dessa???
VLW pessoal..
Desde Já agradeço..
By Kirua
Enviado: 01 Mar 2007 17:21
por sygecom
Bem provavel que vc esteja deixando os arquivos abertos quando sai de alguma funçao ...de um DBCLOSSEALL() no final de sua funçao ou no inicio das outras !!!
Abraços
Enviado: 02 Mar 2007 16:22
por MARCELOG
Abra o arquivo dbf relativo ao índice.
MarceloG
Enviado: 05 Mar 2007 13:54
por kirua
sygecom...
eu fiz o q vc falou até funcionou mas deu outro erro logo em seguida...
da erro agora no meu dbedit...
o erro chama
Error DBCMD/2001 Workarea not in use: DBGOBOTTON
no seguinte movimento:
quando eu abro o dbedit uma vez blz funciona normal mas quando eu abro a segunda vez da esse erro acima...
E MARCELOG
ja tah aberto
VALEU PESSOAL
Enviado: 05 Mar 2007 14:43
por sygecom
Tche é mais facil vc postar sua função ai e nos dar uma olhada.....mas a principio agora sim é a falta de abertura do DBF...
Abraços
Enviado: 05 Mar 2007 15:17
por MARCELOG
Eu não uso dedit em meu programas.
Contudo, acho que ele tem ação sobre o banco de dados em uso.
Então, basta abrir o arquivo de dados e respectivo índice, ou selecionar a área em que se encontra com a função DBSELECTAREA(cNomedaArea) e usar o dbedit.
O erro citado ocorre porque você está tentando ir para o final de um arquivo que não é o atual, ou o alias não foi indicado.
Use arquivo1 new
dbgobottom() //abre arquivo1 e vai para o final
Use arquivo2 new
dbgobottom() //abre arquivo2 e vai para o final - o arquivo2 é o atual e ativo
arquivo3->(dbgobottom()) // tenta ir para o final do arquivo3
Vai provocar um erro, pois o arquivo3 não é o atual e também não está aberto em nenhuma área.
Workarea not in use (área de trabalho não está em uso)
MarceloG
Ps: crie procedimento para, quando chamar o dbedit, salvar a área corrente, mudar para aquela necessária ao funcionamento do dbedit e, após, restabelecer a área corrente.
Enviado: 06 Mar 2007 08:17
por ederxc
:? Isso acontece pq vc estas usando um prog com varios bancos de dados abertos oK's? então quando vc vai de uma função para outra função vc esta esquecendo de selecionar o campo correto para a função e quando volta da funçào estas esquecendo de voltar a função corrente ex: eu uso assim o comando select
sele A
use fonecedor index xforn
sele B
use meucarro index xdevolva
sele C
use empresto index xpago // até aqui apenas selecionei os bancos que //vou usar nessa tabela mas me prog começa usando o banco fornecedor então
sele A
do while .t.
continua ...
//aqui irei chamar a função de pesquisa da segunda area selecionada
carro() // chamei a função
v
v
v
function carro()
sele B // aqui esta a sacada , ja mudei o banco , repare que estou
usando a segunda area selecionada , a area B
//pesquisei achei o que eu queria
return // volto para a tabela
Obs: quando voltar para a tabela tera novamente de selecionar o banco que for trabalhar se for alternativo ao sele B , ou seja vc tem que indicar cada banco que vai trabalhar e se tiver mais que um indice por banco tera tbm de usar o SET ORDER to 1 ou 2 ou 3 ... 6 se ainda percistir as duvidas poste ae que os masters dào conta
Enviado: 06 Mar 2007 09:42
por kirua
eu tirei o dbedit mas o erro da area de trabalho continua quando eu entro na função....
Código: Selecionar todos
Function propesquisa
Local save_v
Local codig_v := space (3)
save_v := savescreen(0,0,24,79)
SetColor ("7/8*")
@ 08, 39, 8, 47 Box []
@ 08, 39 Say "Pesquisar"
SetColor("15/9")
USE PRODUTO NEW ALIAS PRODUTO
IF !FILE("INDIC3.NTX")
INDEX ON CODIGO TO INDIC3
ENDIF
SET INDEX TO INDIC3
SetColor ("7/8*")
@ 9, 39 SAY "Codigo:"
@ 9, 45 GET codig_v
Read
SetColor("15/9")
Clear screen
Restscreen (0,0,24,79, save_v)
If Lastkey()=27
Return
EndIf
GO TOP
SEEK codig_v
IF FOUND( )
Alert('Registro Encontrado')
@ 07, 00 Clear To 19, 57
@ 07, 00 To 19, 57 double
@ 08, 01 To 10, 56
@ 09, 02 Say 'Cadastro de Produto:'
SetColor ("14/9")
@ 09, 02 Say "Cadastro de Produto:"
SetColor("15/9")
@ 11, 02 Say "Codigo.......: "
@ 12, 02 Say "Nome.........: "
@ 13, 02 Say "Tipo.........: "
@ 14, 02 Say "Quantidade...: "
@ 15, 02 Say "Peso.........: Tamanho....: "
@ 16, 02 Say "Preco Venda..: Preco Custo: "
@ 17, 02 Say "Fornecedor...: "
@ 18, 02 SAY "Observacao...: "
SetColor("15/9")
@ 11, 17 Say codig_v
@ 12, 17 Say nome
@ 13, 17 Say tipo
@ 14, 17 Say quanti
@ 15, 17 Say Peso
@ 15, 43 Say taman
@ 16, 17 Say precv
@ 16, 43 Say precc
@ 17, 17 Say forne
@ 18, 17 Say obser
Inkey (0)
clear screen
Restscreen (0,0,24,79, save_v)
Else
Alert("Nao foi encontrado nenhum registro")
clear screen
Restscreen (0,0,24,79, save_v)
Endif
dbcloseall()
Return
Por favor, vcs consegue ver o erro pois eu não achei!
Obrigado
Enviado: 06 Mar 2007 10:01
por Clipper
O problema parece ser porque você dá um DBCLOSEALL(), ou seja, quando volta para a rotina que chamou todos os arquivos foram fechados.
Até logo.
Marcelo
Enviado: 06 Mar 2007 12:17
por kirua
mas quando eu saio e entro de novo a função na abre o banco de dados?
Enviado: 06 Mar 2007 13:48
por sygecom
Código: Selecionar todos
Function propesquisa
Local save_v
Local codig_v := space (3)
save_v := savescreen(0,0,24,79)
DO WHILE .T.
DBCLOSEALL()
SetColor ("7/8*")
@ 08, 39, 8, 47 Box []
@ 08, 39 Say "Pesquisar"
SetColor("15/9")
USE PRODUTO NEW ALIAS PRODUTO
IF !FILE("INDIC3.NTX")
INDEX ON CODIGO TO INDIC3
ENDIF
SET INDEX TO INDIC3
SetColor ("7/8*")
@ 9, 39 SAY "Codigo:"
@ 9, 45 GET codig_v
Read
SetColor("15/9")
Clear screen
Restscreen (0,0,24,79, save_v)
If Lastkey()=27
Return
EndIf
GO TOP
SEEK codig_v
IF FOUND( )
Alert('Registro Encontrado')
@ 07, 00 Clear To 19, 57
@ 07, 00 To 19, 57 double
@ 08, 01 To 10, 56
@ 09, 02 Say 'Cadastro de Produto:'
SetColor ("14/9")
@ 09, 02 Say "Cadastro de Produto:"
SetColor("15/9")
@ 11, 02 Say "Codigo.......: "
@ 12, 02 Say "Nome.........: "
@ 13, 02 Say "Tipo.........: "
@ 14, 02 Say "Quantidade...: "
@ 15, 02 Say "Peso.........: Tamanho....: "
@ 16, 02 Say "Preco Venda..: Preco Custo: "
@ 17, 02 Say "Fornecedor...: "
@ 18, 02 SAY "Observacao...: "
SetColor("15/9")
@ 11, 17 Say codig_v
@ 12, 17 Say nome
@ 13, 17 Say tipo
@ 14, 17 Say quanti
@ 15, 17 Say Peso
@ 15, 43 Say taman
@ 16, 17 Say precv
@ 16, 43 Say precc
@ 17, 17 Say forne
@ 18, 17 Say obser
Inkey (0)
clear screen
Restscreen (0,0,24,79, save_v)
Else
Alert("Nao foi encontrado nenhum registro")
clear screen
Restscreen (0,0,24,79, save_v)
exit
Endif
enddo
dbcloseall()
Return
Testa ai.....
Enviado: 06 Mar 2007 17:03
por kirua
Meu valeu.....
agora tah indo até agora não deu nenhum pau...
vou aplicar nos outros PRGs......
OBRIGADO A TODOS!!!!!!!!!
Enviado: 06 Mar 2007 17:21
por sygecom
Qualquer coisa posta ai, agente não é macaco gordo mas quebra o galho..
Abraços