Transferencia de dados DBF para Paradox...

Delphi

13/03/2006

Estou transferindo o banco de dados com extensão DBF para DB (Paradox), estou fazendo um while pegando os dados dos campos DBF em uma table e jogando em outra Table com banco paradox. OK ele transfere, mas nos campos de descrição qdo tem algum tipo de acentuação, sempre fica com caracteres estranhos nos lugares dos acentos os Ç, coisas assim... Tem como fazer algo que não deixe acontecer isso, q transfira os dados sem q de esse problema nos caracteres?


Janete

Janete

Curtidas 0

Respostas

Edilcimar

Edilcimar

13/03/2006

Eu já fiz este tipo de transferência e nunca tive problema, quais os componentes que está utilizando?


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

13/03/2006

Colega,

O BDE possui componente e métodos (TBatchMove) para efetuar este tipo de transferência, sem necessidade de código. Sobre o seu problema, verifique as configurações de inicialização do BDE no BDE Administrator -> Configuration -> INIT ->Langdriver.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

13/03/2006

Colega,

Estava verificando com maior atenção no BDE Administrator e constatei que por padrão, a configuração do Paradox e dBase são realmente diferentes. Verifique então:

Configuration -> Drivers -> Nativo -> Paradox -> LangDriver
Configuration -> Drivers -> Nativo -> dBase-> LangDriver

Como nunca fiz este tipo de tarefa, não tenho certeza, mas acho que é o caminho.


GOSTEI 0
Janete

Janete

13/03/2006

Eu já fiz este tipo de transferência e nunca tive problema, quais os componentes que está utilizando?


Table


GOSTEI 0
Edilcimar

Edilcimar

13/03/2006

eu coloco uma table para um dbf(clipper), e depois uma table para o piradox 7, jogo todos os campos do dbf para uma variável e depois faço um append no piradox


GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

se fores tratar registro a registro manualmente, podes tentar:

function AjustaAcento(Str: ShortString): WideString; Export; StdCall;
Const SemAjuste = ´àâêôûãõáéíóúçü´;
      ComAjuste = ´ÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;

Var x: Integer;
begin
  for x := 1 to Length(Str) do
    if Pos(Str[x],SemAjuste) <> 0 then
      Str[x] := ComAjuste[Pos(Str[x], SemAjuste)];

  Result := Str;
  Result := UpperCase(Trim(Result));
end;



GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

se fores tratar registro a registro manualmente, podes tentar:

function AjustaAcento(Str: ShortString): WideString; Export; StdCall;
Const SemAjuste = ´àâêôûãõáéíóúçü´;
      ComAjuste = ´ÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;

Var x: Integer;
begin
  for x := 1 to Length(Str) do
    if Pos(Str[x],SemAjuste) <> 0 then
      Str[x] := ComAjuste[Pos(Str[x], SemAjuste)];

  Result := Str;
  Result := UpperCase(Trim(Result));
end;



GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

se fores tratar registro a registro manualmente, podes tentar:

function AjustaAcento(Str: ShortString): WideString; Export; StdCall;
Const SemAjuste = ´àâêôûãõáéíóúçü´;
ComAjuste = ´ÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;

Var x: Integer;
begin
for x := 1 to Length(Str) do
if Pos(Str[x],SemAjuste) <> 0 then
Str[x] := ComAjuste[Pos(Str[x], SemAjuste)];

Result := Str;
Result := UpperCase(Trim(Result));
end;


GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

se fores tratar registro a registro manualmente, podes tentar:

function AjustaAcento(Str: ShortString): WideString; Export; StdCall;
Const SemAjuste = ´àâêôûãõáéíóúçü´;
ComAjuste = ´ÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;

Var x: Integer;
begin
for x := 1 to Length(Str) do
if Pos(Str[x],SemAjuste) <> 0 then
Str[x] := ComAjuste[Pos(Str[x], SemAjuste)];

Result := Str;
Result := UpperCase(Trim(Result));
end;


GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

se fores tratar registro a registro manualmente, podes tentar:

function AjustaAcento(Str: ShortString): WideString; Export; StdCall;
Const SemAjuste = ´àâêôûãõáéíóúçü´;
ComAjuste = ´ÀÂÊÔÛÃÕÁÉÍÓÚÇÜ´;

Var x: Integer;
begin
for x := 1 to Length(Str) do
if Pos(Str[x],SemAjuste) <> 0 then
Str[x] := ComAjuste[Pos(Str[x], SemAjuste)];

Result := Str;
Result := UpperCase(Trim(Result));
end;


GOSTEI 0
Paulocesar1301

Paulocesar1301

13/03/2006

Amigos Administradores/Moderadores...

Não sei o que estava acontecendo, um pequeno erro na hora de encaminhar mensagens, porém não me retornada tal informação... desculpem as duplicidades.

PS.: se for possível excluí-las seria providencial


GOSTEI 0
POSTAR