[firebase-br] Firebird Embarcado - DBExpress
Felipe Giotto
felipe em metasoftware.com.br
Qui Out 20 08:07:13 -03 2005
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
>
>
--
Felipe Luiz Christófolli Giotto
Meta Tecnologia em Software, Ltda
Mais detalhes sobre a lista de discussão lista