Fórum Problema com ALIAS #230963

09/05/2004

0

Olá pessoal.

Estou fazendo uma aplicação que usa banco de dados paradox (sei que é velho, é ruim....) mas estou com um problema.

Eu preciso que o DatabaseName da Table1 siga o caminha da tabela onde ela estiver.

Por exemplo, ponho o executável na pasta C:\Arquivos de programas\gerenciamento preciso que a Table1 consiga ver de alguma maneira que a tabela está nessa pasta.

Como fazer algo assim, ou ao menos parecido sem ter que criar ALIAS no computador, pois o computador do cliente nao tem BDE.


Obrigado,
Rodrigo!


Ropesca

Ropesca

Responder

Posts

09/05/2004

Edilcimar

coloque um arquivo de configuração com o caminho onde está o arquivo e carregando-o de lá, eu utilizo filiais onde coloco cada uma em um diretório e no diretório raiz do programa coloco um arquivo onde digo qual filial é quem, ou seja filial1 = matriz, filial2 = loja bairro x, etc


Responder

Gostei + 0

09/05/2004

Aroldo Zanela

Colega,

Eu desconheço uma forma do paradox funcionar sem uma engine como o BDE, ADO ou algo do tipo. Como você mencionou ALIAS, acredito que você está utilizando BDE e na verdade estava se referindo que o cliente não possui BDE Administrator instalado.

Para criar um alias em tempo de execução, basta adicionar a unit DBTables na lista de uses e utilizar a seguinte rotina:

  if not Session.IsAlias(´NomeAlias´) then
  begin
    Session.AddStandardAlias(´NomeAlias´, ExtractFilePath(ParamStr(0)), ´PARADOX´);
    Session.SaveConfigFile;
  end;


A função ParamStr(0) retorno o caminho e nome do executável;
A função ExtractFilePath extraí o nome do caminho onde o seu programa foi instalado.

Desta forma, o seu programa vai verificar se o alias já existe e se não existir o cria e aponta para o diretório onde o executário foi executado.


Responder

Gostei + 0

10/05/2004

Ropesca

[quote:2f0f680536=´Aroldo Zanela´]Colega,

Eu desconheço uma forma do paradox funcionar sem uma engine como o BDE, ADO ou algo do tipo. Como você mencionou ALIAS, acredito que você está utilizando BDE e na verdade estava se referindo que o cliente não possui BDE Administrator instalado.

Para criar um alias em tempo de execução, basta adicionar a unit DBTables na lista de uses e utilizar a seguinte rotina:

  if not Session.IsAlias(´NomeAlias´) then
  begin
    Session.AddStandardAlias(´NomeAlias´, ExtractFilePath(ParamStr(0)), ´PARADOX´);
    Session.SaveConfigFile;
  end;


A função ParamStr(0) retorno o caminho e nome do executável;
A função ExtractFilePath extraí o nome do caminho onde o seu programa foi instalado.

Desta forma, o seu programa vai verificar se o alias já existe e se não existir o cria e aponta para o diretório onde o executário foi executado.[/quote:2f0f680536]

Olá amigo.

Obrigado pela ajuda, porém não consegui fazer isso funcionar.

Poderia explicar mais detalhadamento, por favor :wink:

Obrigado,
Rodrigo


Responder

Gostei + 0

10/05/2004

Ropesca

Amigos.

Consegui fazer funcionar este comando somente no meu computador (que tem BDE ADMINISTRATOR). Em outro computador que tentei rodar aqui já deu um erro de BORLANDO DATABASE ENGINE.

Como resolver este meu problema ?

Obrigado,
Rodrigo!


Responder

Gostei + 0

10/05/2004

Paulo_amorim

Amigos. Consegui fazer funcionar este comando somente no meu computador (que tem BDE ADMINISTRATOR). Em outro computador que tentei rodar aqui já deu um erro de BORLANDO DATABASE ENGINE. Como resolver este meu problema ? Obrigado, Rodrigo!


Perdão a ignorância, mas sempre que uso paradox eu nao crio ALIAS nenhum...eu simplesmente indico na propriedade Database o diretório que a tabela se encontra...

Não funcionaria no teu caso?

P.Ex. com uma query:
DataSet.DatabaseName := ExtractFilePath(Application.ExeName);

Até+


Responder

Gostei + 0

10/05/2004

Ropesca

[quote:426b7384f1=´ropesca´]Amigos. Consegui fazer funcionar este comando somente no meu computador (que tem BDE ADMINISTRATOR). Em outro computador que tentei rodar aqui já deu um erro de BORLANDO DATABASE ENGINE. Como resolver este meu problema ? Obrigado, Rodrigo!


Perdão a ignorância, mas sempre que uso paradox eu nao crio ALIAS nenhum...eu simplesmente indico na propriedade Database o diretório que a tabela se encontra...

Não funcionaria no teu caso?

P.Ex. com uma query:
DataSet.DatabaseName := ExtractFilePath(Application.ExeName);

Até+[/quote:426b7384f1]

Não consegui fazer este seu comando funcionar nao.

Alguem pode me ajudar ?

Obrigado,
Rodrigo


Responder

Gostei + 0

10/05/2004

Eduardo_lcouto

Utilizando o mesmo comando do nosso colega

´ExtractFilePath( Application.ExeName )´

Faça o seguinte, no evento oncreate do form da aplicação coloque mais ou menos assim.

procedure TForm1.FormCreate(Sender: TObject); var caminho_tabela: string; begin caminho_tabela:=ExtractFilePath( Application.ExeName ); minha_tabela.databasename:=caminho_tabela; minha_tabela.open; end; end.



Responder

Gostei + 0

10/05/2004

Aroldo Zanela

[quote:070178b44c=´Aroldo Zanela´]Colega,
Eu desconheço uma forma do paradox funcionar sem uma engine como o BDE, ADO ou algo do tipo.[/quote:070178b44c]


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar