[firebase-br] Firebird X BDE

Gladiston Santana gladiston em vidy.com.br
Ter Abr 7 10:37:04 -03 2020


Eu acho que é porque o netdir dos dois programas embora ajustados para
serem o mesmo dir tem conflitos quando .exe tentam escrever ali.
O padrão do BDE era criar seus arquivos em C:\, mas o Windows não deixa
usuário comum fazer mais isso.
Além disso, o netdir deveria ser para o piradox, e o banco legado que tento
acessar é o SQL Server 6.5 velho para dedéu, mas que não tem  nada a ver
com o piradox.
Eu migrei o sistema comercial deles inteiro para o Firebird. Mas módulos
considerados menos importantes foram deixados para trás e tive que criar
algo que consultasse esse banco e infelizmente drivers ODBC para SQL 6.5
não são compatíveis com Win8+.

Sobre o erro de falha de inicialização, ele é bem comum, alguns programas
se fecham sozinhos(ou são matados) e por causa disso criei um programa
especial para esse problema cujo único propósito é:
procedure BDEKill;
begin
  Sessions.Free;
  Sessions := nil;
end;

Daí mata qualquer vestigio de BDE na RAM e tudo volta a funcionar outra vez
sem ter que reiniciar o computador.

Mas o meu problema com o BDE é mesmo de dois programas sendo carregados de
diretorios diferentes, isso é bem evidente.
Se coloco o netdir diferente para cada um deles, eles encrespam e o
primeiro programa carregado toma a dianteira e outros programas que foram
executados de diretorio diferente e usem netdir diferente são recusados
pelo BDE com uma mensagem de erro que não inicializa o bde. Se carrego
ambos os programas de diretorios diferentes com netdir sendo o mesmo,
funciona, mas vira e mexe vem com uma mensagem onde só lembro do '$2501'
porque tive que tratá-lo na exception como "falha do BDE, feche o programa
e começe outra vez".

inte+


Em seg., 6 de abr. de 2020 às 14:39, Gustavo Novaes <gutonovaes19 em gmail.com>
escreveu:

> Se sei?
>
> Outro dia dei suporte a um programa que ainda usa BDE, mas tive que fazer
> módulos
>  no meu programa para se comunicar com o deles precisando do BDE.
> Tive que relembrar algumas coisas, mas não usei alias não.
> Usei o TDatabase e a propriedade DatabaseName.
>
> - Está configurando o caminho da base ou pode usar o alias
> Mas deu muito problema, eu tinha o meu programa que tinha que usar BDE com
> o programa antigo, ambos em paths diferentes, mas ajustei para ter o mesmo
> netdir. Ainda dá erros, falei pro pessoal que é problema com a tecnologia,
> mas a verdade é que não dá erro quando usa-se o meu programa ou o programa
> deles, mas dá quando se usa os dois.
> teria que saber qual o erro (mensagem) ou comportamento que está ocorrendo:
> Mas algumas coisas que somos obrigados a fazer ainda:
>
> - pasta do BDE em que estar com privlégios comuns a todos os usuários. Do
> contrário, criará uma pasta virtual sob a pasta user do windows.Essa
> configuração, nos windows 8 em diante, pode ser necessária fazer no
> regedit, chave onde o BDE está. Talvez não fosse necessário se, ao
> instalar, houvesse a pergunta de se para todos usuário ou apenas aquele
> logado
> - Localshare true se acesso em rede-
>
> Noutro dia encontrei código que iniciava o BDE "na mão" e não o encerrava
> dbinit. GEralmente dá um erro não permitindo uma nova instância do BDE.
> (não tenho o código do erro aqui $306 acho)
>
>  Tentei remediar, mas é a tecnologia
>
> prá lá de zuado e não achei solução, mesmo usando algo chamado TSession que
> nunca lembrei de ter usado antes.
>
> Arrisco dizer que seja o problema acima mesmo, de inicialização de bde sem
> fechar.
>
> Não sou fã do BDE, ok? kkkk. força das circunstancias somos obrigados a
> tirar leite de pedra.
>
> Se conseguir as mensagens de erro, mande que tento ajudar. Vcs já me
> ajudaram muito aqui no forum. Abraço.
>
>
>
> *Gustavo Novaes *
>
>
>



Mais detalhes sobre a lista de discussão lista