Ver Mensaje Individual
  #3  
Antiguo 19-01-2015
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Reputación: 21
marcial Va por buen camino
Hola a todos:
Respondo yo mismo. He conseguido cargar en un Memo la información de la Int.Referencial de una tabla paradox así:


Código Delphi [-]
procedure GetRintDesc(Table: TTable; Lines: TStrings);
var
  hCur: hDBICur;
  RIDesc: RINTDesc;
  rslt: DBIResult;
  B: Byte;
  Temp: string;
begin
  Check(DbiOpenRIntList(Table.DBHandle, PChar(Table.TableName), nil, hCur));
  try
    Lines.Clear;
    Check(DbiSetToBegin(hCur));
    rslt := DBIERR_NONE;
    while (rslt = DBIERR_NONE) do begin
      rslt := DbiGetNextRecord(hCur, dbiNOLOCK, @RIDesc, nil);
      if (rslt <> DBIERR_EOF) then begin
        Check(rslt);
        Lines.Add('RI Number: ' + IntToStr(RIDesc.iRintNum));
        Lines.Add('RI Name: ' + RIDesc.szRintName);
        case RIDesc.eType of
          rintMASTER: Lines.Add('RI Type: MASTER');
          rintDEPENDENT: Lines.Add('RI Type: DEPENDENT');
        else
          Lines.Add('RI Type: UNKNOWN');
        end;
        Lines.Add('RI Other Table Name: ' + RIDesc.szTblName);
        case RIDesc.eModOp of
          rintRESTRICT: Lines.Add('RI Modify Qualifier: RESTRICT');
          rintCASCADE: Lines.Add('RI Modify Qualifier: CASCADE');
        else
          Lines.Add('RI Modify Qualifier: UNKNOWN');
        end;
        case RIDesc.eDelOp of
          rintRESTRICT: Lines.Add('RI Delete Qualifier: RESTRICT');
          rintCASCADE: Lines.Add('RI Delete Qualifier: CASCADE');
        else
          Lines.Add('RI Delete Qualifier: UNKNOWN');
        end;
        Lines.Add('RI Fields in Linking Key: ' + IntToStr(RIDesc.iFldCount));
        Temp := '';
        for B := 0 to (RIDesc.iFldCount)  do
          Temp := Temp + IntToStr(RIDesc.aiThisTabFld[b]) + ', ';
        SetLength(Temp, Length(Temp) - 2);
        Lines.Add('RI Key Field Numbers in Table: ' + Temp);
        Temp := '';
        for B := 0 to RIDesc.iFldCount - 1 do
          Temp := Temp + IntToStr(RIDesc.aiOthTabFld[b]) + ', ';
        SetLength(Temp, Length(Temp) - 2);
        Lines.Add('RI Key Field Numbers in Other Table: ' + Temp);
        Lines.Add('');
      end;
    end;
  finally
    Check(DbiCloseCursor(hCur));
  end;
end;
y la llamada :

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
GetRintDesc(Cabeceras, Memo1.Lines);
end;


"Cabeceras" es el nombre de la tabla a consultar. No olvideis poner en el USES: BDE

Gracias a todos por intentarlo.
Responder Con Cita