请教关于文本框赋值问题.
问题:
由数据库中提取一条记录的数据,将此数据放到文本框中显示.
代码:
//......关于数据库打开的操作从略.
form1.Edit1.text := form1.Table1.FieldValues['idno'] ;
form1.Edit2.Text := form1.Table1.FieldValues['field2'] ;
运行结果提示:第一种情况, 在一个现有的工程中,运行这代码,提示 invalid variant type, 无法将数据库记录的数据赋值给文本框. 如果利用格式转换函数inttostr和vartostr,有的时候正常有的时候不正常. 代码如下: form1.Edit1.text := inttostr( form1.Table1.FieldValues['idno'] );
form1.Edit2.Text := vartostr(form1.Table1.FieldValues['field2'] );第二种情况, 直接新建一个工程,运行此代码,没有任何错误提示,结果显示良好.也不需要进行格式转换.请教哪位遇到过这样的问题?
多谢
问题:
由数据库中提取一条记录的数据,将此数据放到文本框中显示.
代码:
//......关于数据库打开的操作从略.
form1.Edit1.text := form1.Table1.FieldValues['idno'] ;
form1.Edit2.Text := form1.Table1.FieldValues['field2'] ;
运行结果提示:第一种情况, 在一个现有的工程中,运行这代码,提示 invalid variant type, 无法将数据库记录的数据赋值给文本框. 如果利用格式转换函数inttostr和vartostr,有的时候正常有的时候不正常. 代码如下: form1.Edit1.text := inttostr( form1.Table1.FieldValues['idno'] );
form1.Edit2.Text := vartostr(form1.Table1.FieldValues['field2'] );第二种情况, 直接新建一个工程,运行此代码,没有任何错误提示,结果显示良好.也不需要进行格式转换.请教哪位遇到过这样的问题?
多谢
疑问是为什么相同的代码,在一个新建的工程里面就一点问题都没有呢?
是不是需要什么设置,或者取消什么设置?
原始代码中,第一行是整数的,还好处理,我可以用inttostr()函数来解决.
出现问题的就是第二行字符型的和浮点数型的数据记录.用vartostr()函数也出错.
当然这些个函数是自己定义的,参考vartostr()
[delphi5开发人员指南]上建议的function VarToInt(const V:Variant):Integer;
begin
if TVarData(V).VType <> varNull then
Result:=V
else
Result:=0;
end;function VarToFloat(const V:Variant):Double;
begin
if TVarData(V).VType <> varNull then
Result:=V
else
Result:=0.0;
end;还有,AsString这种形式,书中说不建议再使用了
我一直用astring这种形式从未出错。