Problema com ALIAS
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!
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
Curtidas 0
Respostas
Edilcimar
09/05/2004
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
GOSTEI 0
Aroldo Zanela
09/05/2004
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:
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.
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.
GOSTEI 0
Ropesca
09/05/2004
[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:
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
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
GOSTEI 0
Ropesca
09/05/2004
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!
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!
GOSTEI 0
Paulo_amorim
09/05/2004
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é+
GOSTEI 0
Ropesca
09/05/2004
[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
GOSTEI 0
Eduardo_lcouto
09/05/2004
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.
´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.
GOSTEI 0
Aroldo Zanela
09/05/2004
[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]
Eu desconheço uma forma do paradox funcionar sem uma engine como o BDE, ADO ou algo do tipo.[/quote:070178b44c]
GOSTEI 0