1) dlls - "Client Error...". Como Proceder?

A mensagem é dada no cliente, mas sempre é provocada por algum problema no servidor. Para saber qual é o problema no servidor, basta tirar o BDSERV do ar e colocá-lo de novo. Com isso teremos um nohup.out vazio. Provoque o mesmo erro e depois veja os erros listados no nohup.out.

2) "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.

.Verifique o prazo de validade(execute BDCODI). de sua cópia.

3) 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(dirinc.dirlib,path) 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.

4) O Bug do Ano 2000: Como converter sistemas e respectivas datas ?

Se nos programas houver a necessidade de se apresentar as datas com quatro dígitos para ano, basta que se coloque o "Set Century ON" no fonte e compilá-lo. A partir disso todas as funções , que manipularem datas(rotinas do OpenBASE) vão interpretar internamente os quatro dígitos para o ano. Mascaras como @D ou 99/99/9999, vão exibir o ano com quatro dígitos. O comando set centurywindow to <num> estabelece que todo ano de dois dígitos menores que <num> serão interpretados com o (20<num>) e <19<num) para valores maiores ou igual a <num>, estando o "set century on" setado. Com isso, as datas gravadas no banco com dois dígitos no ano, não precisam ser alteradas. Caso se deseje alterar as datas gravadas no banco para 4 dígitos, basta descarregar os arquivos, alterar os itens D2 para D4, e recarregar tais arquivos. Para datas do tipo u6 ou n6, os arquivos devem ser descarregados, os itens do tipo datas devem ser alterados para u8 e n8 respectivamente, o banco definido, recriando-se os arquivos que foram descarregados, , recarregar os arquivos Em seguida deve-se fazer um programa para incluir 19, a frente das duas últimas posições dos itens u8 ou n8.

Caso se deseje selecionar uma data com 4 dígitos no ano pelo geral, digite o comando "ligue seculo" no geral.

5) 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.

6) 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 ou sistemas operacionais diferentes, recomenda-se o uso da opção -t do BDDESC.

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

São 3 passos:

A) Alterar a declaração das rotinas de RotWin32.dll para CliWin32.dll;

B) Executar a função IniciaServidor antes da AbreBancoDeDados;

C) Executar a função FinalizaServidor depois da FechaBancoDeDados;

8) Se alterar no banco de dados ítens do tipo m para ítens do tipo O, é 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 item do tipo M para tipo O 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).

9) 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:

A) O Compilador C não está instalado na máquina;

B) O executável do Compilador C não está sendo acessado, ou seja, o seu diretório não está no PATH.

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

10) 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.

11) 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.)

12) Porquê acontece o erro "Arquivo(nome do arquivo) não acessado" ?

Este erro ocorre, ao se tentar gravar em um arquivo do banco de dados, que não foi previamente selecionado.

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

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

14) 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á.

15) 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.

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

Este erro ocorre, quando se utiliza ctod(var) , onde var é uma variável alfanumérica contendo seis dígitos, que representam uma data("aammdd"). Neste caso, tal deve-se concatenar a esta variável, as duas barra (/) ficando a variável no formato "dd/mm/aa".

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

Ocorre na tentativa de abertura de um banco de dados, quando este não existir ou estiver protegido.

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

Ocorre na tentativa de abertura de um banco de dados quando este não for um arquivo no formato do dicionário de dados. Neste caso, verifique se nome do banco que se deseja abrir está correto.

19) "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 não é igual ao definido no banco de dados.

Verifique:

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

Ocorre na tentativa de acesso às informações de um banco de dados (USE, INSERT, REPLACE, FMODIFY( ), FCHAIN( ), etc...), quando este não se encontra aberto.

Verifique:

21) "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 é diferente da definida no banco de dados.

Verifique:

22) "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 é diferente do definido no banco de dados.

Verifique:

23) 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:

24) "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 acesso igual a 3), quando este já se encontra aberto.

Verifique:

25) "BANCO DE DADOS <banco> NÃO ESTÁ DISPONÍVEL NO MOMENTO". COMO FAZER PARA UTILIZÁ-LO ?

Ocorre na tentativa de abertura de um banco de dados, que já esteja aberto em modo exclusivo (modo de acesso igual a 3).

26) 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, e o arquivo de recuperação não existir ou não permitir o acesso.

Verifique:

27) 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:

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

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

O limite de usuários de sua cópia.

29) 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:

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

Ocorre na tentativa de acesso às informações de um arquivo que não seja ENTIDADE ou TABELA, com elementos da linguagem não utilizáveis para o acesso do arquivo-corrente.

Verifique:

31) 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:

32) 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 outros arquivos.

33) 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.

Caso tenha certeza da exclusão, utilizar a opção cascade na opus ou cascata no geral.

Verifique:

34) 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.

35) 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 passado na abertura do banco de dados.

36) 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.

Verifique:

37) 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, diferentes do tipo definido para o item no esquema do banco de dados.

Verifique:

38) "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.

Neste caso, consulte DBA ou verifique:

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

Ocorre na tentativa de leitura direta de um registro por um item que não seja item chave.

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

Ocorre na tentativa de inclusão de um registro, onde na lista de itens falta algum item chave.

Verifique:

41) "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 em nível algum com o arquivo selecionado.

Verifique:

42) "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:

43) "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:

44) "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:

45) "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:

46) "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:

47) "Não 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 seqüenciais dos nomes arquivos de índices, já existentes, está incorreta. Neste último caso, execute o utilitário bdcnfg e acerte a posição(início ou fim) do número do índice nos arquivos de índice e compile(define) o esquema do banco de dados.

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

Este erro, identificado pelo número 1035(leitura) ou 1036(gravação) é causado por algum problema físico no disco. O disco pode estar danificado ou este arquivo pode estar com o tamanho muito grande. No primeiro caso, recomenda-se utilizar o fsck do unix, que corrigirá a possível área do disco danificada. Em seguida deve-se baixar o backup deste arquivo. No caso de o arquivo em questão estar com o tamanho muito grande, recomenda-se alterar os parâmetros em maxfiles, nfile (hpux) ou o tamanho máximo de arquivos no arquivo /etc/security/limits (aix)

49) "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, passe BDDESC no arquivo, e redefina o esquema, recriando apenas este arquivo. Depois passe 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. 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)

50) Ao atualizar a minha versãd do Opebase, preciso compilar todos os fontes?

Não, apenas o programa principal, que faz a linkedição com as bibliotecas do OpenBASE que foi instalado.

51) Ao utilizar o comando chexm, nao consigo acessar o conteúdo de um determinado ítem de um arquivo, estando no meu programa, posicionado em um ítem de outo 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.

52) "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, o esquema é compilado(define), o dicionário de dados é regerado, mas o arquivo 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 que o arquivo contém, 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(define) e por fim, recarregue o arquivo(bdadic).