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.
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.
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.
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.
Procure pelo arquivo FACPRINT em sua máquina. Com certeza existe mais de um deles, e está sendo acessado o que não deveria.
Quando são duas máquinas ou sistemas operacionais diferentes, recomenda-se o uso da opção -t do BDDESC.
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;
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).
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.
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.
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.)
Este erro ocorre, ao se tentar gravar em um arquivo do banco de dados, que não foi previamente selecionado.
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).
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á.
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.
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".
Ocorre na tentativa de abertura de um banco de dados, quando este não existir ou estiver protegido.
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.
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:
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:
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:
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:
Ocorre na tentativa de acesso a um banco de dados quando não existe memória suficiente.
Verifique:
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:
Ocorre na tentativa de abertura de um banco de dados, que já esteja aberto em modo exclusivo (modo de acesso igual a 3).
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:
Ocorre na tentativa de abertura de um banco de dados, sem que o BDSGBD esteja inicializado.
Verifique:
Ocorre quando exceder o número de usuários permitidos para a cópia.
O limite de usuários de sua cópia.
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:
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:
Ocorre na tentativa de acesso a um arquivo que não exista no banco de dados.
Verifique:
Ocorre na tentativa de excluir um registro de uma entidade que tenha ligação com registros de outros arquivos.
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:
Ocorre na tentativa de inclusão ou alteração do valor de uma chave única que já exista no arquivo.
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.
Ocorre na tentativa de leitura ou gravação dos itens de arquivos que não tenham ligação com o arquivo selecionado.
Verifique:
Ocorre na tentativa de atribuição de valores, diferentes do tipo definido para o item no esquema do banco de dados.
Verifique:
Ocorre na tentativa de alteração do valor de uma chave primária de entidade.
Neste caso, consulte DBA ou verifique:
Ocorre na tentativa de leitura direta de um registro por um item que não seja item chave.
Ocorre na tentativa de inclusão de um registro, onde na lista de itens falta algum item chave.
Verifique:
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:
Ocorre na tentativa de alteração do valor da chave primária de um arquivo-mestre.
Verifique:
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:
Ocorre quando exceder o máximo de tentativas de bloqueio em um banco já bloqueado por outro usuário.
Verifique:
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:
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:
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.
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)
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)
Não, apenas o programa principal, que faz a linkedição com as bibliotecas do OpenBASE que foi instalado.
Se sua base de dados estiver sendo acessada remotamente verifique se o arquivo bdsera esta carregado na máquina servidor.
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).