ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Gerar executável + banco de dados [Resolvido]

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
marcos@marcos
Novato
Novato


Registrado: Sábado, 26 de Março de 2011
Mensagens: 22

MensagemEnviada: Sáb Nov 19, 2011 1:11 am    Assunto: Gerar executável + banco de dados [Resolvido] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sáb Nov 19, 2011 8:00 pm    Assunto: Re: Gerar executável + banco de dados Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Borland_Linuxer
Moderador
Moderador


Registrado: Terça-Feira, 11 de Outubro de 2005
Mensagens: 4252
Localização: Manaus - Am

MensagemEnviada: Sáb Nov 19, 2011 11:15 pm    Assunto: Re: Gerar executável + banco de dados Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário MSN Messenger
marcos@marcos
Novato
Novato


Registrado: Sábado, 26 de Março de 2011
Mensagens: 22

MensagemEnviada: Dom Nov 20, 2011 9:52 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Dom Nov 20, 2011 8:47 pm    Assunto: Re: Gerar executável + banco de dados Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcos@marcos
Novato
Novato


Registrado: Sábado, 26 de Março de 2011
Mensagens: 22

MensagemEnviada: Seg Nov 21, 2011 10:00 pm    Assunto: lendo arquivo .ini Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Nov 21, 2011 11:06 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcos@marcos
Novato
Novato


Registrado: Sábado, 26 de Março de 2011
Mensagens: 22

MensagemEnviada: Ter Nov 22, 2011 8:50 pm    Assunto: lendo arquivo .ini Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB