Anterior Sumário Fale conosco! OpenBASE! o Banco de Dados inteligente.

Dúvidas mais freqüentes sobre OpenBASE

dlls - " Erro de Leitura na rotina <bd...>Client Error...". Como Proceder?

A mensagem é dada no cliente, mas é provocada por algum problema de comunicação com o servidor. Para saber qual é o problema ou corrigi-lo , basta tirar o BDSERV do ar, finalizar toda aplicação que está conectada ao bdserv e colocá-lo de novo no ar (nohup bdserv &). Com isso teremos um arquivo nohup.out vazio, no diretório onde foi dado esse comando nohup. Caso o erro persista, veja o conteúdo do arquivo nohup.out.

"Sistema Openbase não pode executar". Como Proceder?

Verifique se o arquivo FACPRINT está presente em sua máquina.

Só deve existir uma arquivo deste, para cada cópia instalada.

"Sistema Openbase não pode executar". Como Proceder?

Prazo de validade de sua cópia, terminou. Consulte o suporte.

"Sistema Openbase Já Instalado". Como Proceder?

Neste caso, sua cópia é shareware, ou seja funciona sem facprint.

Entretanto existe um facprint na máquina, se existir, remova-o.

Duas cópias OpenBASE podem estar na mesma máquina?

Sim, no ambiente unix. Basta que as cópias sejam instaladas em diretórios diferentes. Com isso, ao se logar na máquina, o usuário de acordo com os parâmetros definidos em seu .profile, acessarão uma determinada cópia. No ambiente windows95, será considerada a cópia que estiver instalada no diretório definido no path.

O que fazer se o utilitário BDCODI traz informações diferentes das da cópia instalada?

Procure pelo arquivo FACPRINT em sua máquina. Com certeza existe mais de um deles, e está sendo acessado o que não deveria.

Ao se levar dados de um banco para outro, em máquinas e sistemas operacionais diferentes, mesmo usando os utilitários BDDESC e BDADIC/BDRECA, ocorrem alguns erros. O que pode ser ?

Quando são duas máquinas com sistemas operacionais diferentes, recomenda-se o uso da opção -t do BDDESC para itens binários(D2,D4,I2,I4,O4,M4,Q4). Os arquivos devem ser transportados com ftp(ascii), com exceção do arquivo com extensão m (descarga de arquivos com ítens O4,Q4,M4), que é binário.

DLLS - Como converter uma aplicação local para cliente/servidor ?

São 3 passos:

  1. Alterar a declaração das rotinas de RotWin32.dll para CliWin32.dll;
  2. Executar a funçãoIniciaServidor antes da AbreBancoDeDados;
  3. Executar a função FinalizaServidor depois da FechaBancoDeDados;

Se alterar no banco de dados ítens do tipo M4 para ítens do tipo O4 ou Q4, é preciso que se faça alguma alteração nos fontes ?

Não. Internamente o OpenBASE trata a leitura e a gravação de maneira diferente, conforme for o tipo no banco de dados, mesmo sendo o mesmo comando ou função.

Ao se alterar um ítem do tipo M4 para tipo O4 ou Q4 ou vice-versa, deve-se descarregar o arquivo, alterar o esquema. compilar o esquema(define), recriando-se o dicionário de dados e o arquivo que foi alterado, e recarregar tal arquivo(bdadic).

Ao se compilar um fonte com o OPUS ou OPSWIN, vem "Compilação sem Erros", e logo após "Arquivo não Encontrado" 2 vezes, e o executável não é criado. Como Proceder ?

Podem estar ocorrendo duas possibilidades:

Se for o primeiro caso, instale o Compilador C. Se for o segundo, deve-se adicionar o tal diretório ao PATH do sistema operacional.

Programa recebeu sinal 11(ambientes DOS/UNIX). Ou Atenção, este programa executou uma operação ilegal e será fechado(Ambiente Windows). Como Proceder?

Este erro é ocasionado, por violação de compartilhamento quando um comando no programa em C que gera a Opus e suas bibliotecas tem alguma área de alocação de memória estourada.

Tal erro pode ser ocasionado, ao se tentar acessar algum arquivo a partir de um percurso que não existe.

O QUE FAZER SE, Ao tentar acessar um base de dados em outra máquina, ocorrerem as mensagens "inicli: não connect 2 " e "inicli: no such file or directory" ?

Não foi possível acessar a máquina servidor a partir de um aplicativo que roda na máquina cliente. Verifique se o arquivo bdserv está rodando no servidor, e se no comando $client=<nome ou "endereço IP do servidor"> está correto, no aplicativo que roda na máquina cliente.(em caso de se utilizar o endereço IP, este deve vir entre aspas.)

Por quê acontece o erro "Arquivo (nome do arquivo) não acessado" ?

Este erro ocorre, ao se tentar alterar ou excluir um registro do arquivo de dados que não foi, previamente, selecionado.

"Opus(varite) - Erro na conversão numérica". Como Proceder ?

Acontece ao se atribuir um valor numérico negativo, a um itém do banco definido como numérico positivo(N) ou na atribuição de um valor numérico de tamanho maior que o tamanho definido no ítem de dado . Para corrigir este erro, aumente o tamanho do ítem (numérico ou data) no banco ou mude o tipo do ítem de N(numérico sem sinal) para S(numérico com sinal).

Ao executar um programa acontece o seguinte erro "Opus(alodecl) - Não alocou vetor <nome do vetor> qtd=0". O que fazer ?

Este erro ocorre quando um programa tenta executar um vetor vazio. Basta carregar o vetor com pelo menos um registro, e tal erro não se repetirá.

Ao compilar um programa acontece o seguinte erro "Excedeu a tabela de símbolos locais". O que pode ser?

Recomenda-se usar $symbols=<número> no código fonte onde ocorre tal mensagem. Com isso o tamanho da tabela de símbolos utilizada pelo compilador OPUS é alterada, possibilitando que os programas que excedam tal limite sejam compilados sem erro. O parâmetro <número>, representa o número de símbolos para tabela e varia de 1 a 5000, onde o default é 512 símbolos.

"Opus(ctod) - erro na conversão de data". Como proceder ?

Este erro ocorre, quando se utiliza a função ctod(vartext) , onde vartext é uma variável alfanumérica , que representam uma data , mas a variável vartext não está no formato "dd/mm/aaaa" (set century on) ou no formato "dd/mm/aa"(set century off)

"DICIONÁRIO <banco> NÃO ACESSÁVEL". O QUE FAZER ?

Ocorre na tentativa de abertura de um banco de dados que não existe ou está protegido. Verifique:

"DICIONÁRIO <banco> INVÁLIDO". O QUE FAZER ?

Ocorre na tentativa de abertura ou (re)criação de um banco de dados quando já possuir um arquivo no mesmo diretório do dicionário de dados, com o nome deste, ou o arquivo do dicionário de dados possui algum problema físico.

Recomenda-se no primeriro caso, mudar o nome do dicionário de dados ou removê-lo e recriá-lo com define( segundo caso)

"CÓDIGO DE SEGURANÇA INCORRETO". O QUE FAZER ?

Ocorre na tentativa de abertura de um banco de dados, quando o código de segurança passado no programa no geral, não é igual ao definido no banco de dados. Verifique:

"BANCO DE DADOS NÃO FOI ABERTO". O QUE FAZER ?

Ocorre quando um banco de dados já está aberto, e o dicionário de dados é recriado ou acelerado (copiado). Verifique se ocorreu alguma modificação do dicionário de dados, após o banco ter sido aberto

"PALAVRA DE NÍVEL INCORRETA". O QUE FAZER ?

Ocorre na tentativa de abertura de um banco de dados quando a palavra de nível     passada no programa ou pelo geral, é diferente da definida no banco de dados. Verifique:

"MODO DE ACESSO <modo> INCORRETO". O QUE FAZER ?

Ocorre na tentativa de abertura de um banco de dados quando o modo de acesso     passado no programa ou pelo geral é diferente do definido no banco de dados. Verifique:

O QUE FAZER QUANDO RECEBER MENSAGEM "FALTA DE MEMÓRIA" ?

Ocorre na tentativa de acesso a um banco de dados quando não existe memória suficiente. Verifique:

"BANCO DE DADOS <banco> NÃO ESTÁ DISPONÍVEL PARA USO EXCLUSIVO". COMO FAZER PARA UTILIZÁ-LO ?

Ocorre na tentativa de abertura de um banco de dados em modo exclusivo (modo de abertura igual a 3), quando este já se encontra aberto. Verifique:

O QUE FAZER QUANDO ACONTECER O ERRO "ARQUIVO DE RECUPERAÇÃO NÃO ACESSÁVEL" ?

Ocorre quando for feito um pedido de recuperação das transações anteriores (bdrecu), e o arquivo de recuperação não existir ou não permitir o acesso. Verifique:

AO EXECUTAR UM PROGRAMA ACONTECE O SEGUINTE ERRO "PROGRAMA BDSGBD NÃO ACESSÁVEL". COMO RESOLVÊ-LO ?

Ocorre na tentativa de abertura de um banco de dados, sem que o BDSGBD esteja inicializado. Verifique:

"EXCEDIDO MÁXIMO DE USUÁRIOS". COMO RESOLVER ?

Ocorre quando exceder o número de usuários permitidos para a cópia. Verifique:

QUANDO UM PROGRAMA EMITE A MENSAGEM "ARQUIVO <arquivo> DE OUTRO BANCO NÃO ACESSÁVEL". O QUE SIGNIFICA ?

Ocorre na tentativa de abertura de um arquivo TABELA ou CONSULTA, quando esta não é encontrada ou os bits de segurança não permitem o acesso ao arquivo. Verifique:

O QUE SIGNIFICA MENSAGEM "ARQUIVO <arquivo> NÃO É ENTIDADE OU TABELA" ?

Ocorre na tentativa de pesquisa por chave primária em um arquivo que não esteja definido como ENTIDADE no esquema

PORQUE ACONTECE A MENSAGEM "ARQUIVO <arquivo> NÃO EXISTE" ?

Ocorre na tentativa de acesso a um arquivo que não exista no banco de dados. Verifique:

QUANDO ACONTECER ERRO "REGISTRO DO ARQUIVO ENTIDADE <arquivo> COM LIGAÇÃO". O QUE FAZER ?

Ocorre na tentativa de excluir um registro de uma entidade que tenha ligação com registros de outra entidade.

COMO RESOLVER ERRO "REGISTRO NÃO EXISTE NO ARQUIVO ENTIDADE <arquivo>" ?

Ocorre na tentativa de inclusão ou alteração dos valores de chaves em arquivos detalhe, quando o valor da chave de ligação não existir no arquivo-mestre. Verifique:

PORQUE ACONTECE ERRO "REGISTRO JÁ EXISTE NO ARQUIVO <arquivo>" ?

Ocorre na tentativa de inclusão ou alteração do valor de uma chave única que já exista no arquivo.

O QUE FAZER PARA RESOLVER ERRO "PALAVRA DE NÍVEL NÃO PERMITE GRAVAÇÃO DO ITEM <item>" ?

Ocorre na tentativa de alteração dos valores dos itens (inclusão, exclusão e alteração) que tenham nível de gravação superior ao referente a palavra de nível passada na abertura do banco de dados.

QUANDO ACONTECER ERRO "ITEM <item> NÃO PERTENCE AO ARQUIVO <arquivo>", O QUE FAZER PARA CORRIGÍ-LO ?

Ocorre na tentativa de leitura ou gravação dos itens de arquivos que não tenham ligação com o arquivo selecionado ou não pertençam ao arquivo selecionado. Verifique:

QUANDO ACONTECER ERRO "VALOR DO ITEM <item> NÃO CORRESPONDE COM O SEU TIPO", O QUE FAZER PARA CORRIGÍ-LO ?

Ocorre na tentativa de atribuição de valores, com tipo diferente do tipo definido para o ítem no esquema do banco de dados. Verifique:

"TENTATIVA DE ALTERAÇÃO DO ITEM CHAVE <chave>", COMO RESOLVER ?

Ocorre na tentativa de alteração do valor de uma chave primária de entidade. (veja tópico 42)

"ITEM <item> NÃO É ITEM CHAVE", COMO RESOLVER ?

Ocorre na tentativa de leitura direta de um registro(acesso pelo índice) por um item que não seja item chave.

"FALTOU ITEM CHAVE <chave>", COMO RESOLVER ?

Ocorre na tentativa de inclusão de um registro, onde na lista de itens incluídos falta algum item chave. Verifique:

"ITEM <item> NÃO TEM LIGAÇÃO COM O ARQUIVO <arquivo>", O QUE FAZER ?

Ocorre na tentativa de leitura de itens de outros arquivos através do arquivo selecionado (JOIN), quando estes itens pertençam a um arquivo que não tenha relação alguma com o arquivo selecionado. Verifique:

"ITEM <item> É CHAVE PRIMÁRIA EM ENTIDADE", COMO FAZER ?

Ocorre na tentativa de alteração do valor da chave primária de um arquivo -mestre. Verifique:

"REGISTRO FOI MODIFICADO APÓS LEITURA", COMO RESOLVER ?

Ocorre na tentativa de alteração de registros com o comando MODIFY SAME quando o valor do registro é alterado por outro usuário, entre a leitura e a gravação     do registro a ser alterado. Verifique se o registro é bloqueado(lock) para leitura

"EXCEDIDO MÁXIMO DE TENTATIVAS DE BLOQUEIO", COMO EVITÁ-LO ?

Ocorre quando exceder o máximo de tentativas de bloqueio em um banco já bloqueado por outro usuário. Verifique:

"BANCO SEM ARQUIVO DE RECUPERAÇÃO". O QUE FAZER SE O OPENBASE EMITIR ESSA MENSAGEM ?

Ocorre na tentativa de desfazer uma transação (comando UNDO), quando no esquema do banco de dados não se especificou a opção ARQRECUP. Pode ocorrer tal erro ao se tentar utilizar um delete cascade. Verifique o esquema do banco de dados.

"MODO INVÁLIDO". EM QUE OCASIÃO ESTE ERRO ACONTECE ?

Ocorre na tentativa de se desfazer uma transação (comando UNDO), quando o banco de dados foi aberto com modo de acesso diferente de 2 (dois). Verifique:

"Nao pode abrir arquivo- 'Erro 1012' ". COMO RESOLVÊ-LO ?

Este erro ocorre quando algum arquivo de dados ou de índice não foi encontrado. Tais arquivos podem estar protegidos, ou a posição dos números sequenciais dos nomes arquivos de índices, já existentes, está incorreta. Neste último caso, execute o utilitário bdcnfg e acerte a posição(ínício ou fim) do número do índice nos arquivos de índice e compile(define) o esquema do banco de dados, para que o dicionário de dados seja recriado.

"ERRO DE LEITURA E GRAVAÇÃO DO ARQUIVO<arquivo>". COMO RESOLVÊ-LO ?

Este erro, identificado pelo número 1035(leitura) ou 1036(gravação) é um erro indireto do OPENBASE, causado por algum problema físico no disco ou alguma configuração do sistema operacional estar sub-dimensionada.

O arquivo pode estar danificado ou este arquivo pode estar com o tamanho muito grande.

No primeiro caso, recomenda-se utilizar o fsck do unix, ou scandisk do windows que corrigirá a possível área do disco danificada

No caso de o arquivo em questão estar com o tamanho muito grande, recomenda-se alterar os parâmetros em maxfiles, nfile (HP UX) ou o tamanho máximo de arquivos no arquivo /etc/security/limits (aix)

Uma terceira causa deste erro, é o numero máximo de arquivos abertos simultaneamente, do sistema operacional Ter estourado. Neste caso, deve-se

Rever os parâmetros de configuração do sistema operacional ou utilizar a opção $file.

"Erro 815 - Erro na abertura do arquivo". O QUE FAZER ?

Se puder perder os dados já contidos no arquivo, simplesmente passe um define no esquema, recriando apenas aquele arquivo. Se os dados já existentes não puderem ser perdidos, utilize BDDESC no arquivo, e redefina o esquema, recriando apenas este arquivo. Depois utilize BDADIC para recuperar os dados do arquivo. Caso a sugestão acima não resolva, o problema pode estar no tamanho do arquivo que está muito grande ou no número de arquivos abertos ter ultrapassado o limite do sistema operacional . Neste caso ocorrerá o erro 1035, erro de leitura no arquivo. Recomenda-se alterar os parâmetros em maxfiles,nfile (hpux) ou o tamanho máximo de arquivos no arquivo /etc/security/limits (aix)

Ao atualizar a minha versão do Opebase, preciso compilar todos os fontes?

Depende: Se a mudança no OPENBASE afetar apenas as bibliotecas(libfacbib, libbd, libbdcli, facaux.lib, cliaux.lib, rotaux.lib) apenas o programa principal que faz a linkedição com estas novas bibliotecas, deve seve ser compilado.

Se a mudança no Openbase afetar a opus, opuscli, opuswin.exe ou opuswcli.exe aí devem-se recompilar o(s) programa(s).

Ao utilizar o comando chexm, não consigo acessar o conteúdo de um determinado ítem de um arquivo, estando no meu programa, posicionado em um ítem de outro arquivo, que é chave estrangeira em relação ao primeiro arquivo ?

Se sua base de dados estiver sendo acessada remotamente verifique se o arquivo bdsera esta carregado na máquina servidor.

Se o acesso for local, existe algum problema nos índices dos arquivos em questão. Utilize o utilitário bdindc para refazer os índices destes arquivos.

"Erro 813 -<arquivo <nome do arquivo> inválido tamanho no registro<num> no dicionário(num1>". COMO RESOLVÊ-LO ?

Este erro ocorre, quando algum item de algum arquivo no esquema do banco de dados é alterado de tamanho ou tipo ou a este item é atribuído a qualidade de chave; o esquema do banco é compilado(define), o dicionário de dados é regerado, mas o arquivo de dados que teve o item alterado, não foi recriado. Com isso, o dicionário de dados contém um determinado tamanho de registro diferente do tamanho do registro no arquivo de dados, já que como o arquivo não foi recriado, ele não alterou o tamanho do registro. Para corrigir este erro, antes de compilar o esquema(define), descarregue o arquivo que foi modificado(bddesc), recrie tal arquivo após compilar o esquema do banco (define) e por fim, recarregue o arquivo(bdadic).

Anterior Sumário Fale conosco! OpenBASE! o Banco de Dados inteligente.