我用ADOQuery连接Sql Server2000数据库,请问如何得到一个表的总列数?
再有我想在一个窗体上点按钮就生成一个新窗体,我怎样动态生成窗体?

解决方案 »

  1.   

    dbgrid1.fieldcount就可以了。
    先新建一个窗体,再在按钮的单击事件里form1.show(form1为新建窗体名称)
      

  2.   

    1. ADOQuery1.Fields.Count;//ADOQuery1要在Open状态。
    2. var f:TForm1;
       begin
         f:=TForm1.Create(self);
         f.ShowModal;
         //f.Free;  //这句应该放在需要的地方。
       end;
      

  3.   

    谢谢2位,你们的第一个方法都是可以的。第2个问题shusure() 可能没理解我的意思,我不想事先建好一个窗体,然后再让它显示,我想动态创建。我想问一下lili1(离奇) ,这样创建的f和主窗体是一样的,上面的控件都一样,能不能创建一个什么控件都没有的窗体?还有比如我在新创建的窗体上点按钮想卸载它,执行f.free不行,有错误。
      

  4.   

    dbgrid1.fieldcount就可以了。
    先新建一个窗体,再在按钮的单击事件里form1.show(form1为新建窗体名称)
     
    一楼说的也差不多啦,就这么写吧,反正其他语言都这么来的
      

  5.   

    var f:TForm1;
       begin
         f:=TForm1.Create(self);
         fsho   ;
          end;
      

  6.   

    二楼的方法有点问题.你得到的是DBGRID显示出来的列出而非数据库的列数.当DBGRID加了静态的烈的时候就不行.这种得到列数应该是直接操作数据源.而且要得到你的数据库的列数还得让你打开所有的列才行 ADOQuery1.Fields.Count;
    要想在一个窗体中打开另一个窗体先得USES 另一个窗体的PAS文件.
     窗体名字.Create(self);
         窗体名字.ShowModal;
        就可以了
      

  7.   

    1. ADOQuery1.Fields.Count  记录级数目
    2 application.CreateForm(Tform,form1);//创建新窗体
      

  8.   

    谢谢大家的帮助,我最后在程序上是用 pengwenshen() 的方法实现的。
    小弟第一次发帖,能得到这么多人的帮助,心里非常高兴,谢谢大家!