[firebase-br] Firebird Embarcado - DBExpress

User-BA meus_foruns em yahoo.com.br
Qua Out 19 23:25:00 -03 2005


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/





Mais detalhes sobre a lista de discussão lista