不好意思上面的还不完善!
procedure TForm1.Query1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := Sender.AsString;
用TQuery来查数据吧:
Query1.Close;
Query1.SQL.Text:='Select ViewField=case Field when'+
' 0 then null'
' else Field'+
' end '+
' from table'
Query1.Open;
//适合以SQL Server 2000 为后台
不好意思上面的还不完善!
procedure TForm1.Table1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := Sender.AsString;
procedure TForm1.Table1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := TSmallintField(Sender).AsString;
我又找到更好的一方法:
用到静态字段!
假设对TABLE1的Size字段操作,它是整形数!
procedure TForm1.Table1SIZEGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if TSmallintField(Sender).Value=0 then
Text:=''
else
Text:=TSmallintField(Sender).AsString;
end;
table.open;
table.first;
i:=table.fieldcount;
while not table.eof do
begin
for j=0 to i-1 do
begin
if table.fieldbyname(table.fields[i].fieldname).asinteger=0then
begin
table.fieldbyname(table.fields[i].fieldname).asstring:=''
end;
end;
table.next;
end;
table.open;
table.first;
i:=table.fieldcount;
while not table.eof do
begin
for j=0 to i-1 do
begin
if table.fieldbyname(table.fields[i].fieldname).asinteger=0then
begin
table.fieldbyname(table.fields[i].fieldname).asstring:=''
end;
end;
end;