[firebase-br] De forma Estranha - Mas Resolvida a Questão do Firebird Embarcado - DBExpress
User-BA
meus_foruns em yahoo.com.br
Qui Out 20 14:15:48 -03 2005
Não fiz maiores mudanças no meu simples programinha de teste.
Mas o problema foi resolvido 100%.
Inseri na uses, as units "MidasLib e Dbexpint", dispensando assim a
necessidade de distribuir as DLLs "dbexpint.dll" e "midas.dll" na raiz
(ondo fica o .exe)
* LoadParamsOnConnect -> deixei como estava padrão (false), não era a
causa do problema.
* TM -> (nome da minha conexão) foi mantida (não era também a causa do
problema).
No final, ficou gravado no cd apenas :)
A pasta -> intl
O BD -> tm.fdb,
O Executável -> tm.exe
O Servidor Embeded -> gds32.dll
Sinistro hein :)
Todo o restante foi descartado, embora a maioria das literaturas que
recorri, orientam o contrário.
- Caso utilize UDFs (deve-se incluir a pasta -> UDF (e as UDFs :))
- O 2000 e o XP, por padrão instalam as DLLs "msvcp60.dll e msvcrt.dll",
então, só precisa incluir como precaução extra :)
- ib_util.dll, firebird.conf, aliases.conf (também foram descartado do
meu exemplo :))
* Só um detalhe...
* Utilizei o SQLDialect 3, mas não consegui fazer o ServerCharSet
WIN1252 (deixei como NONE).
* Testei incluindo todos arquivos e pastas omitidos, mas não consegui
compilar com o ServerCharSet (WIN1252).
Embora meu pequeno exemplo esteja funcional em 2000 e XP (no HD e
CDROM), se puderem acrescentar algo a respeito da utilidade dos arquivos
que eu descartei, ficarei grato, pois gostaria de ter um domínio maior
sobre este processo, já que o meu próximo passo é construir o meu
primeiro catálogo eletrônico (textos, fotos (talvez som)) utilizando o
Firebird Embeded. E não gostarie de ver meu aplicativo dando pau em
algum sistema por aí :).
* Delphi 7 + DBExpress + Firebird
Valeu gente
Abraços.
User-BA.
Felipe Giotto escreveu:
> Olá!!
>
> Provavelmente seu problema está na propriedade ConnectionName, do
> SQLConnection. Ela é utilizada quando vc define uma conexão global no
> micro, como um Alias do BDE. Alterando seus parâmetros, todos os
> aplicativos que utilizam aquela conexão passam a apontar para o outro
> local. No seu caso, você não está criando a conexão "TM", caso ela não
> exista, correto? Se vc não criá-la e o aplicativo tentar ler os
> parâmetros em um micro onde ela não esteja criada, seu aplicativo será
> fechado!! Se você tiver com a propriedade LoadParamsOnConnect, a
> SQLConnection vai procurar a conexão "TM" para conectar com o banco.
> Tente utilizar a conexão padrão (acho que é "IBConnection", ao invés
> de TM. Confira também se as DLLs necessárias para o dbExpress também
> estão acessíveis ao aplicativo (tente copiar para a mesma pasta do
> programa para ver o que acontece). São elas: "dbexpint.dll",
> "gds32.dll", "fbclient.dll" e, conforme o caso, "midas.dll".
>
> Espero ter ajudado,
>
> Felipe Giotto ;-)
>
>
>
> User-BA wrote:
>
>>
>> Oi gente!
>>
>> Preciso de uma força para entender o funcionamento de um aplicativo
>> embarcado.
>> São 23:19 e posso garantir que fui dormir nesta madrugada as 04:XX :)
>> Tentando entender o processo.
>> Estou com um livro do Eric Harmon, Cantu e Matérias da Net.
>>
>> Sou leigo...
>> Comecei a mexer com banco de dados a pouco tempo.
>> tô precisando de ajuda nisto...
>> e vou precisar de mais dicas em outras coisa :)
>>
>> Não sei se este é um procedimento correto ou ético sei lá.
>> Me inscrevi ontem em outros foruns...
>> Estou tentando esclarecer esta dúvida neste forum "firebase"...
>> Vou esperar respostas...
>> A depender vou colar este mesmo texto nos outros.
>> Achei melhor fazer assim do que postar logo em todos :)
>>
>> Toda dica a respeito,
>> inclusive sobre minha atitude
>> em relação aos cadastros nos foruns serão bem-vidas.
>>
>> * Desculpem a carta :)
>>
>> Meu aplicativo embarcado é para titulo de aprendizado.
>> Utilizei o IBExpert para criar e registrar um banco de dados Firebird
>> = Local
>> Tabela de caracteres = None
>> Dialecto = 3
>> Criei 2 tabelas (com campos char, varchar, blob (text), date);
>>
>> No delphi utilizado o BDexpress com o quarteto
>> (Sqlconnection + SqlDataSet + SQLProvider + ClientDataSet)
>> Botei meu aplicativo para funcionar
>> (novo, altera, cancela, exclui, grava, pesquisa :))
>>
>> Vejam minha string de conexão
>>
>> ConnectionName := 'TM';
>> DriverName := 'Interbase';
>> GetDriverFunc := 'getSQLDriverINTERBASE';
>> LibraryName := 'dbexpint.dll';
>> LoginPrompt := False;
>> Params.Clear;
>> Params.Add('DriverName=Interbase');
>> Params.Add('Database=TM.FDB');
>> Params.Add('RoleName=RoleName');
>> Params.Add('User_Name=sysdba');
>> Params.Add('Password=masterkey');
>> Params.Add('ServerCharSet=NONE');
>> Params.Add('SQLDialect=3');
>> Params.Add('BlobSize=-1');
>> Params.Add('CommitRetain=False');
>> Params.Add('WaitOnLocks=True');
>> Params.Add('ErrorResourceFile=');
>> Params.Add('LocaleCode=0000');
>> Params.Add('Interbase TransIsolation=ReadCommited');
>> Params.Add('Trim Char=False');
>> VendorLib := 'gds32.dll';
>>
>>
>> Seguindo as intruções de sites da net e de algumas literaturas
>> dispus os arquivos e pastas (teoricamente) necessários
>> para o funcionamento de meu aplicativo embarcado.
>>
>> Pasta -> intl
>> Pasta -> UDF (aparentemente não tem necessidade pois não utilizo udfs)
>> aliases.conf (aparente não necessidade)
>> firebird.conf (tá como o original (tudo identado(então imagino que
>> deva fucionar com valores padrões)))
>> TM.exe (meu exe :))
>> TM.FDB (meu banco :))
>> dbexpint.dll (essa parece que tem que ter mesmo por causa do
>> dbexpress :))
>> gds32.dll (a dll do servidor embarcado = 1.489 kb)
>> ib_util.dll (não sei para que server esta)
>> midas.dll (num livro li que teria que disponibilizar esta)
>> msvcp60.dll (inclui está para o caso do windows do usuário não ter)
>> msvcrt.dll (não sei para que serve)
>>
>> Agora vejam...
>>
>> Na minha maquina de desenvolvimento (XP com SP2)
>> (desligo o servidor normal do firebird)
>> executo o aplicativo e funciona normal
>>
>> Em outro máquina (com XP + SP2)
>> diz que o programa tem que ser fechado
>> (Não dá maiores detalhes, mas num botão prá gerar relatorios para
>> microsoft
>> vejo algumas informação do erro ligado ao kernel)
>>
>> Na mesma máquina em outra partição tenho um windows 2000
>> (só tem mesmo o sistema, sem nada instalado ligado a programação)
>> o aplicativo funciona normal :)
>>
>> Agora... vejam só esta joça.
>>
>> Eu gravo o aplicativo em cdrom...
>> Na minha maquina funciona normal apartir do cdrom ou numa pasta no hd
>> No windows 2000 na outra máquina também funciona normal no cdrom ou
>> numa pasta no hd
>> No windows XP que dava pau :) funciona normal no cdrom
>> Mas se eu copiar do cdrom para uma pasta no disco deste windows XP
>> ele funciona normal, desde que eu deixe o cd com o aplicativo no
>> drive :)
>> Pois se eu tirar o cd ele fica informando que não achou o cd no drive
>> e se eu cancelar, recebo a tal mensagem que o aplicativo será fechado :(
>>
>> Qause finalizando :)
>> fiz mais alguns testes.
>> Passei o banco para somente leitura utilizando o IBExpert...
>> Configurei no delphi os componentes para ReadOnly
>> Tirei algumas dos arquivos para distribuir...
>> Ficou assim a estrutura:
>>
>> Pasta -> intl
>> TM.exe
>> TM.FDB
>> dbexpint.dll
>> gds32.dll
>> ib_util.dll
>> midas.dll
>> msvcp60.dll
>>
>> Repeti o processo nas minhas duas máquina e sistemas
>> tudo funciona da mesma forma
>> no meu xp de produção (funciona no cdrom e no hd)
>> na outra maquina no windows 2000 (funciona no cdrom e no hd)
>> na outra maquina no windows xp (funciona somente no cdrom)
>>
>> Uaiiii...
>> Gente...
>> O que tá acontecendo? Onde estou errando?
>> O que eu tenho que fazer para um aplicativo embarcado
>> funcionar corretamente apartir do cdrom
>> ou apartir do hd em qualquer sistema?
>>
>> * Espero um dia poder esta respondendo mais do que perguntando.
>>
>> Abraços a todos.
>> User-BA
>>
>>
>> _______________________________________________________
>> Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula
>> cupons e concorre a mais de 500 prêmios! Participe!
>> http://yahoo.fbiz.com.br/
>>
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>>
>
_______________________________________________________
Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/
Mais detalhes sobre a lista de discussão lista