 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
marcos@marcos Novato

Registrado: Sábado, 26 de Março de 2011 Mensagens: 22
|
Enviada: Sáb Nov 19, 2011 1:11 am Assunto: Gerar executável + banco de dados [Resolvido] |
|
|
Caros mais uma vez preciso da orientação de vocês.
Fiz um programa no delphi7, acessando banco no access, usei os componente ADO. Minha dúvida é como faço para levar apenas o executável e o banco para outras máquinas (lógicamente de forma que o programa continue funcinando).
Obrigado.
Editado pela última vez por marcos@marcos em Qui Nov 24, 2011 6:13 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sáb Nov 19, 2011 8:00 pm Assunto: Re: Gerar executável + banco de dados |
|
|
| marcos@marcos escreveu: | Caros mais uma vez preciso da orientação de vocês.
Fiz um programa no delphi7, acessando banco no access, usei os componente ADO. Minha dúvida é como faço para levar apenas o executável e o banco para outras máquinas (lógicamente de forma que o programa continue funcinando).
Obrigado. | Não conheço o Interbase 2009, mais antigamente usavamos como ferramenta nativa do delphi o IBConsole para criar o banco e as tabelas Interbase, ai veio o dominio do Firebird que foi feito a partir do codigo aberto do Interbase quando a antiga Borland resolveu abrir seu codigo, depois usamos a ferramenta Ibexpert pq é melhor que a IBConsolce para manipular o banco de dados firebird.
Não posso lhe aconselhar a mudar de Interbase 2009 para Firebird, pq não conheço esta versão do Interbase, mais posso lhe assegurar que hj em dia o Firebird alem de ser totalmente free é um banco bem confiável. Acho que todos que utilizavam interbase na época migraram para firebird.
Mais falando de ferramenta, alem do IBExpert (que eu uso)
http://ibexpert.net/ibe/
existe também EMS SQL Management Studio for InterBase/Firebird
http://www.sqlmanager.net/en/products/studio/ibfb _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
Borland_Linuxer Moderador

Registrado: Terça-Feira, 11 de Outubro de 2005 Mensagens: 4252 Localização: Manaus - Am
|
Enviada: Sáb Nov 19, 2011 11:15 pm Assunto: Re: Gerar executável + banco de dados |
|
|
| marcos@marcos escreveu: | Caros mais uma vez preciso da orientação de vocês.
Fiz um programa no delphi7, acessando banco no access, usei os componente ADO. Minha dúvida é como faço para levar apenas o executável e o banco para outras máquinas (lógicamente de forma que o programa continue funcinando).
Obrigado. |
Sistema que usa acess e ADO talves você precise levar so executável, banco, algum arquivo para configurar o caminho do banco.
A minha dica e testar a sua aplicação em máquina da rede sem delphi ou numa máquina virtual.
Se estiver usando clientdataset tem que levar a dll midas.dll.
Abraços _________________ Abraços
Sérgio Guedes
www.lsisistemas.com.br
www.scvarejo.com.br - Projetos para parceiros e desenvolvedores |
|
| Voltar ao Topo |
|
 |
marcos@marcos Novato

Registrado: Sábado, 26 de Março de 2011 Mensagens: 22
|
Enviada: Dom Nov 20, 2011 9:52 am Assunto: |
|
|
Inicialmente quero agradecer as dicas de vocês, é bom poder contar com pessoas experientes para auxiliar um iniciante como eu. Isso nos estimula a continuar estudando e aprendendo.
Caro Sérgio, você citou exatamente uma das maiores dúvidas que tenho hoje, por exemplo, construí um banco no access e usei os componentes da paleta ADO para acessar e manipular os dados desse banco. Porém o meu componente ADOConnection configurei o caminho do banco como C:\bd\<nome>.mdb. Fazendo o teste como você orientou já constatei que basta colar "bd" no disco local C da máquina onde vou implantar esse pequeno sistema, logicamente com o banco dentro desta pasta, que meu programa está funcionando. Mas agora vem a grande dúvida, caso o usuário tenha alterado o nome da unidade durante a formatação colocando, por exemplo, seu nome no disco local. Nestas situações imagino que talvez tenha que fazer uso de um arquivo ".ini" mas já pesquisei muito e até o momento não consegui entender como criar um arquivo desses de forma que ele funcione como uma "ponte" entre o executável e o banco de dados (como apontar o ADConnection para este arquivo ini).
Aproveitando sua boa vontade venho te pedir se há possibilidade de explicar ou indicar-me um link onde consiga informações mais claras sobre o assunto.
Desde já muito obrigado pela atenção. |
|
| Voltar ao Topo |
|
 |
adriano_servitec Colaborador

Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Dom Nov 20, 2011 8:47 pm Assunto: Re: Gerar executável + banco de dados |
|
|
| adriano_servitec escreveu: | | marcos@marcos escreveu: | Caros mais uma vez preciso da orientação de vocês.
Fiz um programa no delphi7, acessando banco no access, usei os componente ADO. Minha dúvida é como faço para levar apenas o executável e o banco para outras máquinas (lógicamente de forma que o programa continue funcinando).
Obrigado. | Não conheço o Interbase 2009, mais antigamente usavamos como ferramenta nativa do delphi o IBConsole para criar o banco e as tabelas Interbase, ai veio o dominio do Firebird que foi feito a partir do codigo aberto do Interbase quando a antiga Borland resolveu abrir seu codigo, depois usamos a ferramenta Ibexpert pq é melhor que a IBConsolce para manipular o banco de dados firebird.
Não posso lhe aconselhar a mudar de Interbase 2009 para Firebird, pq não conheço esta versão do Interbase, mais posso lhe assegurar que hj em dia o Firebird alem de ser totalmente free é um banco bem confiável. Acho que todos que utilizavam interbase na época migraram para firebird.
Mais falando de ferramenta, alem do IBExpert (que eu uso)
http://ibexpert.net/ibe/
existe também EMS SQL Management Studio for InterBase/Firebird
http://www.sqlmanager.net/en/products/studio/ibfb | Esquece meu post, li outro post e acabei respondendo neste aqui. Desculpe _________________ Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree |
|
| Voltar ao Topo |
|
 |
marcos@marcos Novato

Registrado: Sábado, 26 de Março de 2011 Mensagens: 22
|
Enviada: Seg Nov 21, 2011 10:00 pm Assunto: lendo arquivo .ini |
|
|
Após algumas tentativas acabei conseguindo fazer, estou postando aqui o passo do que fiz para que vocês possam me orientar dizendo se está certo ou se minha aplicação vai dar "pau" a qualquer momento.
1º criei um arquivo na seguinte estrutura e salvei com o nome "confi.ini" no diretório "c:\bd\":
| Código: |
[configuracoes]
banco=C:\BD\agenda_telefonica.mdb
[relatorio]
relat_simples=C:\BD\Relatorios\rel_simples
relat_completo=C:\BD\Relatorios\relatorio
relat_email=C:\BD\Relatorios\rel_emails
|
estou fazendo a conexão usando o ADOCONNECTION.
2º na seção pública do datamodule declarei as variáveis:
| Código: | | caminho, relat_simples,relat_completo,relat_email:string; |
3º no evento ONCREATE do data module fiz:
| Código: | procedure TDM.DataModuleCreate(Sender: TObject);
var
arquivoini:TIniFile;
begin
ADOConnection1.Connected:=false;
arquivoini:=TIniFile.Create('C:\BD\confi.ini');
caminho:=arquivoini.ReadString('configuracoes','banco',caminho);
relat_simples:=arquivoini.ReadString('relatorio','relat_simples','');
relat_completo:=arquivoini.ReadString('relatorio','relat_completo','');
relat_email:=arquivoini.ReadString('relatorio','relat_email','');
ADOConnection1.ConnectionString:=caminho;
try
ADOConnection1.Connected:=true;
except
end;
end; |
4º no formulario principal coloquei uma barra de status, que mostrará o caminho do banco, ou seja, ela recebe o conteúdo da variável "caminho" que foi declarada no datamodule
| Código: | | StatusBar1.Panels[1].Text:=dm.caminho; {dm é o nome do datamodule} |
5º coloquei o caminho dos relatórios no arquivo .ini porque acreditar que com certeza alguem lá no escritório vai querer mudar a pasta relatorios junto com o banco. Assim basta informar o novo caminho até ela que os relatórios continuarão a funcionar.
Dessa forma está funcionando, já fiz vários testes mudando o banco de diretório e editando o arquivo confi.ini informando o novo caminho até o banco e funcionou, mas por não ter experiencia ainda estou em dúvida se bastam apenas essas configurações.
Obrigado pela atenção. |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Nov 21, 2011 11:06 pm Assunto: |
|
|
Não tenho experiência nenhuma com Access, mas vou fazer 2 observações sobre o seu código.
Sobre a pasta e o nome do arquivo INI, é comum utilizar o código abaixo para trabalhar com o arquivo INI na mesma pasta e com o mesmo nome do executável, mudando apenas a extensão; desta forma a pasta e o nome do arquivo não ficam fixos no código:
| Código: | | arquivoini := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI')); |
Procure também evitar ao máximo as "exceções silenciosas". No seu código, se houver falha na conexão com o banco de dados não será exibida nenhuma mensagem sobre o erro, e a execução vai proseguir normalmente. Ex:
| Código: | try
ADOConnection1.Connected:=true;
except
on E: Exception do
begin
ShowMessage('Falha de conexão com o banco de dados.' +
sLineBreak +
E.Message);
Application.Terminate;
end;
end; |
Espero que seja útil.
Editado pela última vez por imex em Qua Out 18, 2023 11:09 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
marcos@marcos Novato

Registrado: Sábado, 26 de Março de 2011 Mensagens: 22
|
Enviada: Ter Nov 22, 2011 8:50 pm Assunto: lendo arquivo .ini |
|
|
imex, obrigado pela dica! Com certeza ajudou e muito.
agora apenas um detalhe, pelo menos no meu caso, foi necessário declarar na seção 'USES' do DataModule "FORMS".
Sem esta declaração apresentava erro (identificador não declarado) exatamente nesta linha:
arquivoini := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI'));
Feito isso resolveu o problema.
Valeu mesmo pela dica.
Obrigado. |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|