class function Dal.GetAccList(conn: TAdoConnection): TList;
var
DbAcc:TDbAccount;
rsAcc:_Recordset;
AccLst:TList;
begin
AccLst:=TList.Create;
rsAcc:=conn.Execute('select * from SYS_DBACCOUNTS',cmdText);
while not rsAcc.EOF do
begin
DbAcc:=TDbAccount.Create;
DbAcc.SysDbAccountID := rsAcc.Fields['SYS_DBACCOUNTSID'].Value;
DbAcc.DbName := rsAcc.Fields.Item['DBNAME'].Value; if rsAcc.Fields['SQLVERSION'].Value<>null then
begin
DbAcc.SqlVersion := rsAcc.Fields['SQLVERSION'].Value;
end;
if rsAcc.Fields['ISCURRENTACC'].Value = NULL then
begin
DbAcc.IsCurrentAcc:=rsAcc.Fields['ISCURRENTACC'].Value;
end AccLst.Add(dbAcc);
rsAcc.MoveNext;
end;
Result:=AccLst;
end;如果数据库中所有记录的字段为空,就不报错,不然就会出错现在我的看法是,那个值因为是一个变体,如果数据库中本身为空了,反回NULL,NULL可以与NULL进得逻辑运算,如果有值,返回的是一个整数,进行逻辑运算就报错了,请问怎么解决这个问题
if VarIsEmptyParam(rsAcc.Fields['ISCURRENTACC'].Value) then
if VarIsNull(rsAcc.Fields['ISCURRENTACC'].Value) then
....
正解