代码如下:var
sqlstr:string;
begin
sqlstr:='select 字段名 from 表名 where 字段名 = false ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add(sqlstr);
form1.adoquery1.Open;
form2.Edit1.Text := form1.ADOQuery1.FieldValues['字段名'];
.....end;运行程序的时候一但读到某个字段里面某行内容是空的时候就报下面的错:Could not convert variant of type (Null) into type (string)望兄弟门帮忙解答.谢谢了啊!!!
sqlstr:string;
begin
sqlstr:='select 字段名 from 表名 where 字段名 = false ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add(sqlstr);
form1.adoquery1.Open;
form2.Edit1.Text := form1.ADOQuery1.FieldValues['字段名'];
.....end;运行程序的时候一但读到某个字段里面某行内容是空的时候就报下面的错:Could not convert variant of type (Null) into type (string)望兄弟门帮忙解答.谢谢了啊!!!
试试
谢谢simonhehe 解答
sqlstr:='select iif(* is null,'',*) from list where bf = false ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add(sqlstr);
form1.adoquery1.Open;这样写后提示: '语法错误(操作符丢失)在查询表达式iif(* is null,'',*) from list where bf = false' 中.
么有FieldByName这个属性自己打上就可以了.
'select if(* is null,'',*) from list where bf =
//呵呵,少写了两个'
//不能用*,如果你有多个字段值有可能为null,需要这么写: sqlstr:='select 字段1 = iif(字段1 is null, '''', 字段1),字段2 = iif(字段2 is null, '''', 字段2) from list where bf = false ';
//sqlstr:='select 字段1 = iif(字段1 is null, '''', 字段1) from list where bf = false ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add(sqlstr);
form1.adoquery1.Open;
//如果上边的还不行,就用下边的,Access的if不记得用法了sqlstr:='select 字段1 = isnull(字段1,'''') from list where bf = false ';
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add(sqlstr);
form1.adoquery1.Open;
是打错了啊,你仔细看看?
FieldByName
谢谢'Corn1'提示:在这里我是打错了,刚刚我是直接复制'ditouhu'写的. 但情况就是自己写上去写对了还是会提示"undeclared identifier":'fielbyname'" 这样的错误.