Вы находитесь на странице: 1из 4

03/02/2015

Criandoumaaplicao"embarcada"comoFirebird
Seguir@linhadecodigo

HOME

DESENVOLVIMENTO

FRONTEND

BANCODEDADOS

EMDESTAQUE

2.459

Pesquisar

LogIn/Cadastrese

Enviar

3.166seguidores

TODOS

PUBLIQUE
Publicidade

BancodeDadosFirebird

Criandoumaaplicao"embarcada"comoFirebird
OFirebirdumbancodedadosleve,rpidoebastanteflexivel,umadessasflexibilidadesacapacidadede
"embarcar"aplicaescomele...
porGladistonSantana

19

Like

OFirebirdumbancodedadosleve,rpidoebastanteflexivel,umadessasflexibilidadesa
capacidadede"embarcar"aplicaescomele.
Comoassim"embarcar"?Talvezvocepergunte.
"Embarcar"significaquevocepodecriarumaplicativoeembutiroFirebirddentrodeseucdigode

REVISTASDEVMEDIA

formatransparenteedistribuilodeformafcil,bastaexecutarseuaplicativoepronto.Nenhuma
instalaodoFirebirdserexecutada,ouconfiguraoexistentesermexida,nemmesmoser
necessriopararoFirebird/Interbasequeestejaexecutandonaqueleinstante.
Vamosumexemploparaficarmaisfacilentender,digamosqueprecisedistribuirumCDROMcom
umcatalogodepreos,nesteCDROMvocevaiquerergravarseuaplicatiboeacessarosdadosque
estogravadoslocalmentenoCDROM.Vocenoquerutilizarumbancodedadosflattablecomo
Paradox,AccessouDBFporquevocejpossuioaplicativocriadoparaacessarosdadosem
Firebird/Interbase.Adificuldadeserianadistribuiodetalaplicativo,poisforaosusuriosainstalaro

.netMag119

Firebird/InterbaseapenasparaverumCDROMpodesero"fimdapicada".Umaoutrasugestoseria
embutirdentrodoseuaplicativoCatalogoEletronico.EXEoFirebird"Embeded"ouembutido,ento

Easy.netmag39
VERTODAS

ASSINE

nessecasoapenasaexecuodoCatalogoEletronico.EXEjseriaautosuficienteparaacessarabase
dedadosnoCDROM.Entendeu?
Podeparecerdificilfazerissoaprimeiravista,massevocepercebernesteartigo,oquosimples,
tosimplesquetalvezvocedesejeutilizalosemtodososaplicativosquevocecrie,pormdeantemo
devolheavisarqueaversoembarcadadoFirebirdpossuiasseguintescaractersticas:
Apenasparaacessolocal(HD,CDROM,...)enoimplementanenhumacessoviaprotocolode
rede,mesmo"localhost"nofunciona,poressarazonotarqueaperformanceeoconsumo
dememoriaserootimizadosquandoseuaplicativoforexecutado
QualquerconfiguraodoFirebirdouInterbasejinstaladonamquinaignorado,ouseja,
noprecisodesinstalarnadaoupararoservio,nadamodificadoemconfiguraes

TOP10ARTIGOS

TOP10AUTORES

ComandosbsicosemSQLinsert,
update,deleteeselect

HTMLBsico

Excel:Comoverificarseexistevalores
duplicados

MenuemCSSMenudropdownhorizontal
comHTML5eCSS3

Criandoumsistemadecadastroelogin
comPHPeMySql

SQL:UtilizandooOperadorUNIONe
UNIONALL

Excel:ComparandoListas

CopiandodadoscomoRobocopy

Quantovaleoseuservio?Aprendaa
cobrarpeloseutrabalho.

existentes,issoumalvioparaquemjestavaacustumadoaterproblemasquandotinhade
distribuiroarcaicoBDE.Paraseterumaidia,oFirebirdembarcadosequerfazusoderegistry
Naquestodesegurana,averso"embarcada"noimplementanenhummecanismode
autenticao,asenhaignorada,apesardissosevocelogarsecomo"Pedro"eseestepossuir
certasrestriesemtabelas,estasrestriesserorespeitadas.Paraquemdesejacriaruma
aplicaoembarcadadesejavelqueusesempreaconta"SYSDBA"paranoesbarrarem
problemasdepermisses
Naquestodecompatibilidadevocepoderprogramarexatamentecomofaziaantes,sevoce
programadorDelphieusavaoIBXparaacessaroFirebird,continueusandooIBX,sevoce
usavaoIBO,continueausaroIBO...nadamudanoseuestilodeprogramao,apenasotipo
deacessoquepassaraserlocalaoinvsdeTCP/IP,NetBIOSouIPX/SPX
Vocepodedispararquantasaplicaes"embarcadas"simultaneamentequiserquenohaver

10

AlertemJavascript

nenhumconflito,mesmoqueexistaoutrasaplicaesusandooFirebird/Interbaseemrede,
apenastenhacertezadetermemriaosuficientepararodartodaselas

VERTODOS

AarquiteturausadanomodeloembarcadoaSuperServer,cadaaplicativo"embarcado"
abrirumanovainstanciadoSuperServer,commuitosaplicativos"embarcados"rodando
simultaneamentepoderhaverproblemasdelentidosenohouvermemriasuficiente,sem
falar,quedoisoumaisaplicativosacessandoamesmabasedevesetercuidado,poisoFirebird
embarcadonofoiidealizadoparaessasituao

http://www.linhadecodigo.com.br/artigo/113/criandoumaaplicacao%22embarcada%22comofirebird.aspx

1/4

03/02/2015

Criandoumaaplicao"embarcada"comoFirebird

InstalandooFirebirdEmbarcado
Primeiramentebaixeaverso"Embeded"(Embarcado)doFirebird,seforcriaraplicativosLinux,ter
depuxaroCVSdoFirebirdecompilalocomadiretriz"embeded"egerarum"sharedobject"(.so)
quedeverserincorporadosuaaplicaoKylix,C++,Phyton,....epoderusalocomonas
instruesqueseseguiroparaoWindows.SevoceescreveprogramasemambienteWindows,a
situaomaissimples,poisjexisteaDLLdoFirebirdEmbededdisponivelem:
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download(715KB)
Parainstallofaaoseguinteprocedimento:
CrieumapastanodriveC:\MY_APPedescompacteoFirebirdEmbedednela(socercade4
arquivoscontandooREADME)
CrietambemumapastaemC:\MY_APP\FBemovaoarquivofirebird.msgparaessapasta
CopieoseubancodedadosFirebird(.gdbououtro)paraapastaC:\MY_APP
AmaioriadoscomponentesdeacessonoDelphi/Kylixestopreviamenteconfiguradospara
usarDLLclientdoInterbasechamadagds32.dll,essaDLLnoFirebirdEmbarcadochamase
fbembed.dll,noentanto,sevoceusaDelphi/Kylixprovavelquetaiscomponentesqueiro
utilizaragds32.dllentofaaoseguinte:renomeieoarquivoC:\MY_APP\fbembed.dllpara
C:\MY_APP\gds32.dll
Editeoarquivofirebird.confqueseencontraemC:\MY_APPemodifiqueaseguintelinha:
RootDirectory=C:\MY_APP\FB
SeseubancodedadosutilizaUDF"s,entocrieapastaC:\MY_APP\FB\UDFecopietais
UDF"s(queemgeralficariamemc:\arquivosdeprogramas\firebird\udf)paral
Seseubancodedadosutilizacharsetsoucollatesdeterceiros,entocrietambemumapasta
C:\MY_APP\FB\INTLecopieasDLL"s(queemgeralficariamemc:\arquivosde
programas\firebird\intl)paral.
NarealidadeapastaC:\MY_APP\FBseramesmacoisadoqueC:\ARQUIVOSDE
PROGRAMAS\FIREBIRDcomasmesmasestruturas,equepodeounonecessitardaspastasINTLe
UDF.NomeucasoquenofaousodecollatesdeterceirosenemUDF,ficaassimaestrutura:
C:\MY_APP\firebird.conf
C:\MY_APP\meu_aplicativo.exe
C:\MY_APP\meus_dados.gdb
C:\MY_APP\gds32.dll
C:\MY_APP\FB\firebird.msg
C:\MY_APP\FB\UDF\
C:\MY_APP\FB\INTL\

Criandoumaaplicaoparaserembarcada
Umaaplicaoparaser"embarcada"precisateraseguintescaracteristicas:
Opathdobancodedadosdeverseridentificadonocomponentedeacessocomopartindose
dodiretorioondeseencontraseuaplicativo,porexemplo,seseubancodedadosestem
"localhost:c:\my_app\meus_dados.gdb"entouseopath"meus_dados.gdb",umpathde
conexaocomobancodedadoscomo"localhost:c:\my_app\dados\meus_dados.gdb"serna
realidadecomo"dados\meus_dados.gdb"
Usesempreasenha"SYSDBA/masterkey"paranoterproblemascompermisses.
Oprotocolodecomunicaodeverser"local"enuncaremota:
UmexemplodeconexousandooIBObjects:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

withIB_Connection1do
begin
Username:="SYSDBA";
Password:="masterkey";
Database:="meus_dados.gdb";
Protocol:=cpLocal;
Open;
end;
UmexemplodeconexousandoIBX(InterbaseExpress):
withIB_IBDatabase1do
begin
DatabaseName:="meus_dados.gdb";
Params.Clear
Params.Add("user_name=SYSDBA");
Params.Add("password=masterkey");
Open;
end;

http://www.linhadecodigo.com.br/artigo/113/criandoumaaplicacao%22embarcada%22comofirebird.aspx

2/4

03/02/2015

Criandoumaaplicao"embarcada"comoFirebird

Sevoceforespertovaiperceberqueseusararquivos.INIouentradasnoRegistryparagravaressas
definies,entopoderfacilmentesemnenhumarecompilaodoprojetotornarseuaplicativo
"embarcado"ouno.Alias,euacreditoqueamaioriadosprogramadoresjfazemissoparanoter
queengessarseuprogramaaumlocalespecificoparaservirderecipientededados.

Consideraesfinais
Osarquivosembarcadosnasuaaplicaocabemnumsimplesdisquetede1.44K,umaaplicao
embarcadaconsumirapenas1MBdeRAMamaisdoqueumaaplicaonomodeloclassico.Eso
apenas3arquivos(firebird.conf,fbembeded.dll,firebird.msg)quedevemserinstaladosjuntamente
comoseuaplicativo.Istosimplificabastantedistribuiodecatalogoseletrnicos,programascom
acessoadadosnocompartilhado,quiosques,etc...somentenorecomendariaquevocedeixasseo
modelotradicionalparausalocomo"modismo"poisomodelotradicionalcliente/servidorparatais
tarefasaindaomelhor.
OprimeiroexemplodeexecutarCatalogoEletronico.EXEapartirdeumCDROMfoiapenasuma
suposio,aversoembarcadadoFirebirdpossuiumproblemaqueaindanofoiresolvido,ao
executarqualquerprogramacomoFirebirdembarcadosocriadosarquivosdelock(.lck)napastado
servidor,emnossoexemploposteriorseriaemC:\MY_APP\FB,massefossenumCDROMhaveria
problema,poistalpastaseriadeapenasdesomenteleitura.Ataversofinaldo"FirebirdEmbeded"
surgiralgumaopodentrodoarquivofirebird.confquepossaresolvertalquesto.

Arquivosparadownload:
ParabaixaroFirebirdEmbarcadoentocliqueaqui(apenas715KB).
EsteartigoestsobformadelicenaGPL(GeneralPublicLicense)epodeserreproduzidoe
distribuidolivrementeemoutrostiposdemdiadiferentesdondeesteartigofoioriginalmentepublicado,
noentanto,atenteseparafatodequequalquerprodutoassociadoesteartigotambmherdaras
caractersticasGPLetambmdeverserfornecidolivremente.
ParamaioresesclarecimentosleiasobreaGPLem:http://www.gnu.org/philosophy/philosophy.pt.html

GladistonSantanaProgramadoreEspecialistaemBancodeDados.

19

Like

Leiatambm
IntroduoaoMorfikUmasoluoparavriosseguimentos
Delphi

ODBAdeAltaPerformance
Firebird

UtilizandoSGBDFireBird2.0comADO.NET
Firebird

PassoapassocomoacessarobancodedadosFireBirdusandoC#.Net,FireBird.NetDataProvider...
C#

2FirebirdDevelopersDayAcompanheaquicomofoioevento
Firebird

Estamosaqui:
LinhadeCdigofazpartedogrupoWeb03

Polticadeprivacidadeedeuso|Anuncie|Cadastrese|Faleconosco

http://www.linhadecodigo.com.br/artigo/113/criandoumaaplicacao%22embarcada%22comofirebird.aspx

3/4

03/02/2015

Criandoumaaplicao"embarcada"comoFirebird
LinhadeCdigo
Curtir
12.110pessoascurtiramLinhadeCdigo.

PluginsocialdoFacebook

2015LinhadeCdigo.Todososdireitosreservados

http://www.linhadecodigo.com.br/artigo/113/criandoumaaplicacao%22embarcada%22comofirebird.aspx

4/4

Вам также может понравиться