I've the following SQL
Code: Select all
select top 100 l1.id, l1.id_first_titolare ,
 l2.id, l2.id_first_Titolare
from link l1 inner join link l2 on l1.id = l2.id_first_titolare
order by l1.id
When I try to get the fieldnames with tablealiases always "l1" is returned and never "l2".
Code: Select all
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
  FieldDesc: TCRFieldDesc;
  Field: TField;
  TblName: string;
begin
  msquery1.active := true;
  for i := 0 to msQuery1.Fields.Count - 1 do
  begin
    Field := msquery1.Fields[i];
    if Field.FieldKind <> fkData then
      continue;
    FieldDesc := TCRFieldDesc(msQuery1.GetFieldDesc(Field));
    TblName := FieldDesc.TableInfo.TableAlias;
    memo1.lines.add(TblName + '.' + FieldDesc.ActualName);
  end;
end;
best regards
Toni Santa