Jump to content
Fórum Script Brasil
  • 0

Banco Paradox Na Mesma Pasta Do Programa[resolvido]


Eder
 Share

Question

Ola...Pessoal

Eu uso paradox somente, e tenho o costume de trabalhar com Tables e Querys.

Então pra configurar as tabelas em digito no DatabaseName da Table ou query...o alias ou o caminho do banco tipo c:\bdados

Mas eu gostaria de saber se tem alguma maneira de eu configurar pra pegar as tabelas aonde esta o programa executavel, ou seja, não usar nem alias e nem o endereço c:\bdados

Neste caso eu queria jogar as tabelas e o executavel(programa) numa unica pasta...e ai o programa seria inteligente o suficiente pra saber que as tabelas estão juntas e ai executar.....

Vamos supor que o usuario resolvesse pegar esta pasta com o executavel e as tabelas e renomear ou copiar pra outra pasta....o programa continuaria sempre funcionando..pois sempre estariam juntas o executavel + as tabelas...

Tem como??

Grato

Edited by Eder
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Tem como fazer isto sim, e uma das maneiras é ... se voce já definiu um Alias em tempo de projeto, basta colocar este codigo na primeira janela do seu programa no evento on create do form

procedure TForm1.FormCreate(Sender: TObject);
begin

     { se o alias não existir... }
   if not Session.IsAlias('MEU_ALIAS') then   // colocar o alias que voce criou
      begin
         { Adiciona o alias }
         Session.AddStandardAlias('MEU_ALIAS', 'C:\TESTE\ARQUIVOS', 'PARADOX');  // caminho do banco de dados 
         { Salva o arquivo de configuração do BDE }
         Session.SaveConfigFile;
      end; 

end;
A outra maneira é extraindo o caminho onde o programa estiver sendo executado:
procedure TForm1.FormCreate(Sender: TObject);
var  S: string;
begin
   S := extractFilepath(application.exename)+'ARQUIVOS\';   // se existir um subdiretorio arquivos onde esta rodando o programa
   showmessage(s);
   query1.DatabaseName := s; // caminho onde esta os arquivos
end;
OBS: como as instruções SQL já estão definidas com os respectivos arquivos, ao ativar as querys o caminho passado para o query1.DatabaseName fara o resto quando as querys forem ativadas; Como voce quer executavel e arquivos na mesma pasta é só trocar o comando
S := extractFilepath(application.exename);

Link to comment
Share on other sites

  • 0

Jonas, é isto aí.

A melhor opção e ideal é a primeira - utilizando um alias, você faz todo o programa em função deste alias e antes de utilizá-lo inicializa o caminho do mesmo.

Já se tiver que alterar o path em cada componente....

Tem algum tempo (dez/2006) eu havia feito um exemplo de uso para Alias Dinâmico. Se interessar, no link do 4Share (alí embaixo na minha assinatura), na pasta Programacao tem um carinha chamado BDEAlias-Dinamico.zip.

Link to comment
Share on other sites

  • 0
Tem como fazer isto sim, e uma das maneiras é ... se voce já definiu um Alias em tempo de projeto, basta colocar este codigo na primeira janela do seu programa no evento on create do form

CODE

procedure TForm1.FormCreate(Sender: TObject);

begin

{ se o alias não existir... }

if not Session.IsAlias('MEU_ALIAS') then // colocar o alias que voce criou

begin

{ Adiciona o alias }

Session.AddStandardAlias('MEU_ALIAS', 'C:\TESTE\ARQUIVOS', 'PARADOX'); // caminho do banco de dados

{ Salva o arquivo de configuração do BDE }

Session.SaveConfigFile;

end;

end;

R.: muito Bom Jonas....e pensar que eu configuro alias na mão, ou uso um programinha que faz a configuração....valeu...jóia..adorei esta dica.

A outra maneira é extraindo o caminho onde o programa estiver sendo executado:

CODE

procedure TForm1.FormCreate(Sender: TObject);

var S: string;

begin

S := extractFilepath(application.exename)+'ARQUIVOS\'; // se existir um subdiretorio arquivos onde esta rodando o programa

showmessage(s);

query1.DatabaseName := s; // caminho onde esta os arquivos

end;

OBS: como as instruções SQL já estão definidas com os respectivos arquivos, ao ativar as querys o caminho passado para o query1.DatabaseName fara o resto quando as querys forem ativadas;

Como voce quer executavel e arquivos na mesma pasta é só trocar o comando

CODE

S := extractFilepath(application.exename);

R.: Esta aqui é que eu precisava de momento....muito boa....

A Minha dúvida é a seguinte...como tenho table´s e query´s espalhadas em vários form´s do mesmo programa.....colocando no OnCreate este codigo acima no formPrincipal...vai funcionar em todos os outros forms que tem query e table´s??

Haaa.....neste caso...aqui no DatabaseName das queryes e table´s eu deixo em branco e o seu codigo é que na hora da execução vai gerenciar o caminho dos arquivos de dados ...é isto??

Tem algum tempo (dez/2006) eu havia feito um exemplo de uso para Alias Dinâmico. Se interessar, no link do 4Share (alí embaixo na minha assinatura), na pasta Programacao tem um carinha chamado BDEAlias-Dinamico.zip.

R.: Micheus eu já baixei o seu exemplo e vou testar em casa, pra ver seu funcionamento.

Valeu pessoal..estas dicas foram show..

muito Grato a todos.

Edited by Eder
Link to comment
Share on other sites

  • 0
A Minha dúvida é a seguinte...como tenho table´s e query´s espalhadas em vários form´s do mesmo programa.....colocando no OnCreate este codigo acima no formPrincipal...vai funcionar em todos os outros forms que tem query e table´s??

Haaa.....neste caso...aqui no DatabaseName das queryes e table´s eu deixo em branco e o seu codigo é que na hora da execução vai gerenciar o caminho dos arquivos de dados ...é isto??

Para este caso você talvez encontre resposta no exemplo que uso.

O que ocorre é que você adiciona ao seu projeto (form ou datamodule principal) um TDataBase, configura o drive (standard para paradox), define um nome na propriedade DataBasename, certo?!

Então, nos componentes em questão (table e query), você liga eles ao tal componente database como se ele fosse um dos seu alias do BDE (é só procurar que ele estará na lista). Deste modo, basta apenas que antes de ativar o componente DataBase, você inicialize a o caminho em Params. Tá lá no exemplo. Se tiver dúvida é só postar.

Abraços

Link to comment
Share on other sites

  • 0
Acho que o Micheus já respondeu a sua questão ... é isso ai ...

R. Sim esta semana vou dar uma estudada de novo....eu tava com umas pepas ai pra resolver...e não deu mais pra mexer..

Por enquanto valeu...você e o Micheus.

Grato :)

Link to comment
Share on other sites

  • 0

Vou reabrir o tópico porque estava com a mesma dúvida do Eder, e achei

uma solução bem rápida e prática...

Eder, em "PATH=", ao invés de colocar o caminho completo da base de dados,

basta apontar para a própria pasta com os seguintes caracteres: ".\". Ficaria

assim:

PATH=.\

DEFAULT DRIVER=PARADOX

ENABLE BCD=FALSE

Espero que seja útil a outras pessoas. Abraços!

Link to comment
Share on other sites

  • 0
Eder, em "PATH=", ao invés de colocar o caminho completo da base de dados,

basta apontar para a própria pasta com os seguintes caracteres: ".\".

Só para constar, na verdade não é necessário nem isto.

Como havia mencionado, adicionando um componente TDatabase (como você já faz), configure DriverName=STANDARD, dê um nome ao alias na propriedade DatabaseName (digamos "DBEder") e LoginPrompt=False. Assim, nos componentes TQuery ou TTable, este será o nome a ser selecionado na respectiva propriedade. Só isto!

Abraços

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...