我用ttable连接一张表,我通过用户点击treeview中的结点返回的text值,这个值是表当中一条记录对应的一个字段的值,现在我想就通过这个值来获得这条记录的其他字段对应值……谁能帮帮我! :(

解决方案 »

  1.   

    函数:
    function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean; override;例子:
    Table1.Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);
      

  2.   

    如果不用SQL就没办法了吗? 
    我自己想了想……不过不对!:(table1.SetKey;
    table1.fields[2].AsString:='小明';       //设置查找条件?这里小明在表里是唯一的。
    table1.GotoKey;                          //我想让他指向我要找的记录
    string1:=table1.fields[0].AsString;      //这里再获得这条记录的其他字段的值
    ……这样子获得的值不是我想找的那条记录的了,字段没错……痛苦!:(
      

  3.   

    谢谢大家!~
    to
    hanlin2004(渴死的鱼) 
    DaSaint(齐天大圣) 
    我想问问那个函数里面的参数能说详细点吗?我还是新手……:(
      

  4.   

    写 Table1.Loacete 然后在Locate上按 F1 看帮助Table1.Locate('字段名1;字段名2;...',VarArrayOf(['值1,值2,...']),[定位参数]);字段名之间用分号隔开,值之间用逗号隔开,定位参数的具体意思看帮助,也可以为空 []
    对于Table, Query, ADOTable, ADOQuery的 Locate好像稍有不同,主要是第二个参数。
    有的要用VarArrayOf(),有的不用,直接写 ['值1,值2,...'] 或 '值1,值2,...' 
    试一下就知道了上面这个函数的意思是,定位到第一条 字段名1=值1 并且 字段名2=值2 的记录,如果找到返回true
    否则返回false
      

  5.   

    如果是定位记录最好用Locate方法,如果是摔选则用filter属性来设置。
    还可以用Select语句来实现