试试这种方法:
首选不能将此字段设为Required!(包括数据库表格和客户端);
用循环语句遍历事个表!Table1.open;
while not Table1.Eof do
begin
if Table1.fieldbname('Number').asInteger=0 then
Table1.fieldbyname('Number').Clear;
Table1.Next;
end;
首选不能将此字段设为Required!(包括数据库表格和客户端);
用循环语句遍历事个表!Table1.open;
while not Table1.Eof do
begin
if Table1.fieldbname('Number').asInteger=0 then
Table1.fieldbyname('Number').Clear;
Table1.Next;
end;
语句里用 case 语句处理,呵呵,偶一直都是这样
干的。譬如你吧60—75之间的分数显示为‘及格’,
85—100显示为‘优秀’这样的问题很有效。例如:
select (case
when fenshu<60 then '及格'
else '不及格'
endcase)
from TableName
反正差不多是这样的,都好久没有写SQL了,查查
Help就知道了呵呵
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;
TEXT:=''就可以了
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;
用到静态字段!
假设对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;
在该字段的OnGetText事件里处理如下:procedure TForm1.Table1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := TSmallintField(Sender).AsString;end;
在该字段的OnGetText事件里处理如下:不好意思上面的还不完善!
procedure TForm1.Table1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := Sender.AsString;end;
Query1.Close;
Query1.SQL.Text:='Select ViewField=case Field when'+
' 0 then null'
' else Field'+
' end '+
' from table'
Query1.Open;
//适合以SQL Server 2000 为后台
假如对静态字段NUM操作,其为整型!
在该字段的OnGetText事件里处理如下:不好意思上面的还不完善!
procedure TForm1.Query1NUMGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
if Sender.AsInteger = 0 then
Text := ''
else
Text := Sender.AsString;end;