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创建字段
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; 现在应该完全没问题了
例如:你在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创建字段
a b 是表里面的字段
c就是自定义字段
for i:=0 to AdoQ.FieldCount-1 do
DBGrid.Columns[i].FieldName:=AdoQ.Fields[i].FieldName;
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;
现在应该完全没问题了