TQUERY(100分)

  • 主题发起人 主题发起人 小天
  • 开始时间 开始时间

小天

Unregistered / Unconfirmed
GUEST, unregistred user!
1、请问如何在一个Query里动态建立一个计算字段呢?
2、如何返回Query查询结果的某一个字段的类型及长度呢?


 
Query是从Tdataset继承下来的,
Tdataset有Fields属性,
其中每个field都有datatype和datasize属性。
 
1.TQuery 的属性SQL是一个TStrings,可以先clear,在加入你的查询语句
计算字段可以直接写进去,Fields都可以自动生成
 
var
tt:TIntegerField;
procedure TForm1.Button1Click(Sender: TObject);
begin
query1.close;
tt:=TIntegerField.Create(self);
tt.FieldName := 'Test1' ;
tt.FieldKind:=fkCalculated;
tt.DataSet:=query1;
query1.active:=true;
end
 
procedure TForm1.Button1Click(Sender: TObject);
var
tt:TIntegerField;
begin
query1.close;
tt:=TIntegerField.Create(self);
tt.FieldName := 'Test1' ;
tt.FieldKind:=fkCalculated;
tt.DataSet:=query1;
query1.active:=true;
if query1.Fields[1].DataType=ftString then
showmessage('ftString'+inttostr(query1.Fields[1].datasize));
end;
 
忘问了,动态生成的计算字段怎么赋值或怎么写Ongettext事件呢?
 
query1.fields[0].datasize就是长度, datatype就是类型:-)
 
直接写Ongettext事件句柄procname(.....
tt.OnGetText:=procname;
即可
 
多人接受答案了。
 
干嘛分了嘛,我还没解决呢
 
后退
顶部