var
  ts:Tstrings;
  i:integer;
begin
  ts:=Tstringlist.Create;
  //adoconnection1.GetTableNames(ts,false);
  //for i:=0 to ts.Count-1 do
  // showmessage('第'+inttostr(i+1)+'个表名是'+ts.Strings[i]);
  adoconnection1.GetFieldNames('stu',ts);
  for i:=0 to ts.Count-1 do
      showmessage('第'+inttostr(i+1)+'个字段名是'+ts.Strings[i]);
end;
 //注:用session控件也可以完成以上的功能

解决方案 »

  1.   

    select syscolumns.name from syscolumns left join sysobjects on syscolumns.id=sysobjects.id where sysobjects.name='需要的表名'
      

  2.   

    楼上朋友tommychim(大脚鸟)的方法我试了,结果是:找出了该数据表的所有字段,
    我的本意是指获得数据表的所有主键字段的名称,我是通过ODBC同异地数据库(Microsoft SQL Server 2000)关联的!
      

  3.   

    到syscolumns找一下是主鍵的,看一下与别的字段有什么不同,然后以这个为条件来select
      

  4.   

    到syscolumns找一下是主鍵的,看一下与别的字段有什么不同,然后以这个为条件来select
      

  5.   

    我是通过ODBC(驱动程序是SQL Server)同异地数据库(Microsoft SQL Server 2000)关联的,用SQL语句:select * from syscolumns 返回的记录中无'name,这个字段,而通过Microsoft SQL Server 同异地数据库进行连接时,用SQL语句:select * from syscolumns 返回的记录中却有'name,这个字段,不知何故?请高手指教!
      

  6.   

    select syscolumns.name from syscolumns left join sysobjects on syscolumns.id=sysobjects.id
    left join sysindexkeys on syscolumns.colid=sysindexkeys.colid and sysobjects.id=sysindexkeys.id
    where sysindexkeys.indid=1 and sysobjects.name='你的表名'
    PS;你提到的ODBC问题我不清楚怎么回事,但应该不会存在这样的问题,你重新建ODBC看看,或者更新ODBC驱动,在SQL里上面的语句可以找到一个表中的关键字段
      

  7.   

    请您(tommychim(大脚鸟))自己用ODBC(驱动程序是SQL Server)连接本地数据表试试,结果也是如此!不信吗?我试过好几台机子!!!
      

  8.   

    请您(tommychim(大脚鸟))自己用ODBC(驱动程序是SQL Server)连接本地数据表试试,结果也是如此!不信吗?我试过好几台机子!!!
      

  9.   

    我使用的是Delphi5.
    在Delphi自带的SQL Explore 使用 SQL语句"select * from syscolumns "这条简单的语句的.
    如果创建数据库别名时数据库类型用MSSQL,即通过Micrsosoft SQL Server 2000与数据库连接,这时使用SQL语句"select * from syscolumns "返回的结果中包括"name"字段;如果创建数据库别名时数据库类型用SQL Server,即通过ODBC数据源与数据库连接,这时使用SQL语句"select * from syscolumns "返回的结果中就不包括"name"字段,好像返回的记录数倒是相同.你们说奇不奇怪?
    用'sp_pkeys tablename'也出现类似的现象:无'COLUMN_NAME'字段!与本地数据库连接,结果也是如此!不信吗?我试过好几台机子!!! 我之所以测试用ODBC与异地数据库进行连接是由于ODBC驱动程序是windows(Win2000)系统自带的,不需要额外再用专门的Micrsosoft SQL Server!请楼上的各位兄弟帮忙解决!
      

  10.   

    你说这个我倒也遇到过,后来只能把类型由SQL Server改为MSSQL,好象是delphi的bde的问题
      

  11.   

    呀,问题还没有解决啊,换MSSQL算了
      

  12.   

    关键字段,字段吧,DBTable单元有许多方法,包括对BDE的操作
      

  13.   

    换MSSQL倒是可以,要安装Micrsosoft SQL Server 2000客户端程序,需要额外费用的!
    如果ODBC可以的话,当然采用ODBC了!楼上的兄弟们,前面所说的情况,如果真是delphi的bde的问题,该如何解决?
    是不是没有办法了?