各位:
大家知道dbgrid是数据感应组件,只有与adotable或adoqqquery或adodataset相连
才能显示,运行。而录入库单之类,一般是空白页面,用来输入数据,那怎么采用dbgrid录呢?难到dbgrid可以呈现一张空白数据页面吗?
谢谢前辈解释。

解决方案 »

  1.   

    空数据集不行吗
    select * from table1 where 1<>1
      

  2.   

    当然可以啦,当你根据条件选择的数据为空时,dbgrid的当然就为空了。
    通常生成单据编号,根据当前单据编号选择录入单信息,如果当前单据号的单据还未录入,自然就为空了,你就可以在dbgrid 中录入单据了。
      

  3.   

    谢谢,问题是我录入的数据所对应的表adotable或query是不存在的,录完数据,可能把数据分别保存在几个不同的表内?所以,这个空的dbgird怎么呈现呢?
      

  4.   

    DBGrid必须要有数据源的,建议你用一张临时表存储数据,然后再根据需要对其进行处理
      

  5.   

    Yesxwl():
    你的建议可行。那有没有直接利用内存的?clientdataset有什么用?能够运用到我这里吗?解决我的问题?另外,用stringgrid行不行?stringgrid能否象dbgrid一样,有pickuolist
    及buttonstyle设置,以便运用快捷的录入方式?
      

  6.   

    使用ClientDataSet创建内存表吧
      

  7.   

    可以是可以,但如果你要grid的效果实现你的要求,我个人觉得其他的几种方法都不算简便
      

  8.   

    其他方法可行是可行,但如果你用grid实现你现在的库单录入,我个人觉得编写代码最少的还是临时表,比较简便,其他方法你要做的控制更多一些
      

  9.   

    是呀,很方便的
    Query.sql.add(delete xx);
    Query1.execsql
      

  10.   

    你好!
    我现在用一个空数据表做试验:
    发现它起呈现只有一条记录,那我怎么样让它连续输,在最后一格输完后,回车可以新添一记录在下面呢?在dngrid中怎么样新添一条记录,谢谢!
      

  11.   

    我用adotable1.append;或adotable1.insert;均不行。
      

  12.   

    procedure TForm1.DBGrid2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
           if Key=13 then
           adotable1.Append;
           DBGrid2.Fields[0].FocusControl;end;
      

  13.   

    谢谢你!
    可以了!
    再问一下:
    我用adotable与dbgrid相连,有没有方法将dbgird中显示的整张表一起删掉。