我要运行sp_pkeys   @table_name= tname以找该表的主键
用adoquery可以用,但用query提示“field 'COLUMN_NAME' not found",用法如下:
query1.Close;
        query1.SQL.Clear;
        query1.SQL.Add('sp_pkeys   @table_name=  '+tname);
        query1.Open();
        
        query1.First;
        while not query1.Eof do
        begin
            colKeyList.Add(Query1.FieldbyName('COLUMN_NAME').value);            Query1.Next;
        end;
如果把query1换成adoquery1就没问题,不明白是什么问题,知道的指导下!!

解决方案 »

  1.   

    最好不要使用BDE,BDE的BUG多,而且不支持Unicode,例如當你要查詢SQL Server中的NVARCHAR類型字段時,使用BDE就沒有辦法。
      

  2.   

    没有问题!
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      with Query1, SQL do
      begin
        Close;
        Add('sp_pkeys Goods');
        Open;
        while not eof do
        begin
          ListBox1.Items.Add(FieldByName('column_name').AsString);
          Next;
        end;
        Close;
      end;
    end;
      

  3.   

    虽然在用Delphi,但对数据库这块不是很熟悉,真是遗憾
      

  4.   

    是没有问题的,或许你的'COLUMN_NAME'没有包含在query中,注意双击TQuery ,把字段都加近来.
      

  5.   

    BDE不是BUG太多,boblaw 说那个问题并不存在,不过如果nvarchar字段的长度为10,那么在DBEdit等控件里只能输入5位,所以设计数据库都要加长一倍,BDE的速度还比ADO快,只不过BDE已经处于维护期,也就是不会再有新版本了,放弃它吧,可以用ADO或者DBExpress,后者完全支持Unicode,但还不是很完善。
      

  6.   

    chenzhuo说的,在我这里还是不行,我都试了。
    wewaa说的,增加所有字段,只加了一个KEY_SEQ,其他的都没有,奇怪!
    我的系统:win2003+ delphi 6+sqlserver2000