function FindDBMemoFieldName(ADataSet: TQuery);
var
  I: Integer;
begin
  for I := 0 to ADataSet.Fields.Count - 1 do
    if ADataSet.Fields[i].DataType = ftMemo then  //如果是字段类型是Memo类型的
    begin
      Result := ADataSet.Fields[i].FieldName;  //如果有多个,再传个Fieldname比较。
      Exit;
    end;
end;

解决方案 »

  1.   

    由于查询到的内容通常不止一条,所以我通常是先将找到的东西放在DBGrid里,下面再放一个关联到同一数据源的DBMemo,这样,用户指到那里,DBMemo的内容自然就会显示到该条记录。
      

  2.   

    我就是用dbmemo1.datafield:=query1.fields[11].fieldname不行
    提示list index out of bounds(11)
      

  3.   

    fangao,我就是这样做的,问题是dbmemo关联的字段如何设置,在ttable里设置都没出
    问题,在tquery里就出问题了
      

  4.   

    你的意思是不是要动态的把DBMemo指向不同的字段?
      

  5.   

    正是此意,指定到ttable很好办,但指定到tquery我就不知道该怎么样了
    dbmemo1.datafield:=query1.fields[11].fieldname又不对
      

  6.   

    dbmemo1.datafield:=query1.fields[11].fieldname为什么不对?
    query有没有open?
      

  7.   

    query是open了的,就是这我才苦恼啊
      

  8.   

    对不住各位老大,是我的错
    我在query里select中没有写要查询的字段,怪不得list index out of bounds(11)
    给分给这三位仁兄
    其中两位帮过我不只一次了,感谢