我的是access数据库,例如我的query的SQL是:SELECT * FROM table1
我可以用field[]得到字段属性,可怎么得到哪个是主键字段?或者其他有什么可以得到主键的方法?多谢

解决方案 »

  1.   


    Query.Open;
    Query.First;
    while not Query.Eof do
    begin
    赋值xx对象:=Query.FieldByName('主键字段名').AsString;
    Query.Next;
    end;这个,问下,LZ是要主键的值么?
      

  2.   

    if self.ADOQuery1.FieldByName('id').IsIndexField then showmessage('主键');
      

  3.   

    'stockorderdetail'是表名第一种方法: sp_pkeys 'stockorderdetail'.第二种方法:sp_helpindex  'stockorderdetail'第三种方法:
    sp_MStablekeys 'stockorderdetail'
    cKeyCol1-cKeyCol16不为空的就是.第四种方法:
    select 
    TABLE_QUALIFIER = convert(varchar(32),db_name()),
    TABLE_OWNER = convert(varchar(32),user_name(o.uid)),
    TABLE_NAME = convert(varchar(32),o.name),
    COLUMN_NAME = convert(varchar(32),c.name),
    KEY_SEQ = convert(smallint,c1.colid),
    PK_NAME = convert(varchar(32),i.name)
    from
    sysindexes i, syscolumns c, sysobjects o, syscolumns c1
    where
    o.name = 'stockorderdetail'
    and o.id = c.id
    and o.id = i.id
    and (i.status & 0x800) = 0x800
    and c.name = index_col ('stockorderdetail', i.indid, c1.colid)
    and c1.colid <= i.keycnt 
    and c1.id = o.id
    order by 1, 2, 3, 5