给DBGrid添加了一个自定义字段后,其他的数据可以从数据库中提取,但不知道这一列的数据该怎样填写?
   谢谢。

解决方案 »

  1.   

    没有弄懂是什么意思CSDN论坛浏览器:http://CoolSlob.ys168.com/
      

  2.   

    1。如果你使用query组件创建计算字段:
    例如:你在SQL语句中这么写  select a,b,c,(a-b) as d from tablea
    那么你的d就是一个计算字段,d是别名,你可以这样访问,query.fieldbyname('d').asstring2.如果你通过table组件创建计算字段:那么一定要在table组件中添加一个字段,例如d,
    那么多这个d的赋值,你要通过重载table的oncalcFields,
    例如:
    procedure TForm1.tablecalcFields(dataset:TDataSet)
    begin
      Tabled.value := Tablea.value-Tableb.value;
    end;访问这个计算字段,你可以直接通过tabled.value访问。创建这种字段,
    你要在双击TABLE组件,然后在弹出的界面中,点反键,然后点add fields创建字段
      

  3.   

    select (a*b) as c  from 表
    a b 是表里面的字段
    c就是自定义字段
      

  4.   

    首先,你是自定义的。按正常来讲就没有什么数据可填写,填写数据可以用adoquery增加字段的方式,也可以用。dbgrid.colums[7].就可以了
      

  5.   

    这个不是DBGRID赋值的问题,而是构造数据集的问题,构造完成采用
    for i:=0 to AdoQ.FieldCount-1 do
    DBGrid.Columns[i].FieldName:=AdoQ.Fields[i].FieldName;
      

  6.   

    是这样的,如果数据库中有一个表有姓名、年龄等个人信息,但在用DBGrid进行显示的时候,希望添加一个第一列,显示记录的序号,现在不知道这个序号字段怎样处理?
      

  7.   

    AdoQuery.Close;
    AdoQuery.Sql.clear;
    AdoQuery.Text:='Select  Identity(int 1,1) as RecNo, * into #Temp From TableName Select * From #Temp drop Table #Temp';
    AdoQuery.Open;
    for i:=0 to AdoQ.FieldCount-1 do
     begin
       DBGrid.Columns.Add;
       DBGrid.Columns[i].FieldName:=AdoQuery.Fields[i].FieldName;
     end;
    现在应该完全没问题了
      

  8.   

    严格说来在sql语句中生成的字段不是计算字段,只有在本地数据集组件中生成的字段才是计算字段,他们产生的机制不同。