[firebase-br] Invalid KeyLinks entry: A.ID_PC

Gladiston Santana gladiston em vidy.com.br
Qua Set 11 09:48:56 -03 2013


Estou escrevendo um aplicativo que transfere os dados de um database para
outro database (ambos Firebird), exatamente igual, e transfere dados tabela
a tabela, campo a campo.

Tenho dentro desse database, uma simples tabela que só tem 2 campos:
CREATE TABLE PC_FORN_MINIMO (
    MOTIVO   VARCHAR(255) DEFAULT NULL ,  <--- PK
    MINIMO  SMALLINT DEFAULT 0 NOT NULL CHECK (VALUE >=0 AND VALUE <= 255)
);

Não sei o motivo, mas usando o IB_Query, quando dou um :
SELECT a.* FROM PC_FORN_MINIMO a
Ocorre a seguinte mensagem de erro :
Invalid KeyLinks entry: A.ID_PC

Já tentei de tudo como voces podem ver nas linhas que comentei:
  ISQL_TO:=TIB_Query.Create(Self);
  ISQL_TO.IB_Connection:=FB_TO;
  ISQL_TO.IB_Transaction:=FB_TRANS_TO;
  ISQL_TO.SQL.Clear;
  ISQL_TO.SQL.Add('SELECT a.* FROM '+sTabelaTo+' a ');
{
  ISQL_TO.KeySeeking:=false;
  ISQL_TO.KeyLinks.Clear;
  ISQL_TO.MasterLinks.Clear;
  ISQL_TO.JoinLinks.Clear;
  ISQL_TO.KeyRelation:='';
  ISQL_TO.MasterSearchFlags:=[];
  ISQL_TO.KeyLinksAutoDefine:=false;
  ISQL_TO.FetchWholeRows:=false;
}
  try
    // PAU BEM AQUI
    ISQL_TO.Open;
  except
  on e:exception do
     begin
       if not AddtoLog(e.message,'Erro ao transferir tabela de
['+sTabelaFrom+'] para ['+sTabelaTo+'] :',ISQL_TO.SQL.Text) then
       begin
         LimparMemoria;
         Exit;
       end;
     end;
  end;

Todas as demais tabelas a transferência ocorre numa boa, inclusive bem mais
complexas do que esta, parece que essa tabela paga o preço por ser simples
demais.

Alguem aí já passou por isso e soube como resolver?



Mais detalhes sobre a lista de discussão lista