我运行一个程序,出现类型错误提示.具体是Project FORM4.EXW raised exception class EVariantTypeCastError with message' Could not convert variant of type (Null) into type (String)'.我检查完数据库,类型匹配没错!!请高手指点
程序如下procedure TForm4.Button1Click(Sender: TObject);
var
loc1:boolean;
begin
if (edit1.Text='') OR (edit3.Text='') then
begin
showmessage('请输入书号和册数');
abort;
end;
loc1:=ADOTable1.locate('Bno',edit1.text,[LocaseInsensitive]);
if loc1=true then
begin
ADOTable1.Edit;
ADOTable1.FieldByName('Leftno').Value:=ADOTable1.FieldByName('LefTno').Value+StrToInt(edit3.Text);
ADOTable1.Post;
showmessage('新增册数成功');
end;
if loc1=false then
begin
if(edit2.text='') or (edit3.text='') or (edit4.text='') or (edit5.text='') then
begin showmessage('新书,请输入图书的完整信息');
abort;
end
else
begin
ADOTable1.InsertRecord([edit1.Text,edit2.Text,edit4.Text,StrtoInt(edit3.Text),edit5.Text]);
showmessage('新增图书成功');
end;
end;
end;
程序如下procedure TForm4.Button1Click(Sender: TObject);
var
loc1:boolean;
begin
if (edit1.Text='') OR (edit3.Text='') then
begin
showmessage('请输入书号和册数');
abort;
end;
loc1:=ADOTable1.locate('Bno',edit1.text,[LocaseInsensitive]);
if loc1=true then
begin
ADOTable1.Edit;
ADOTable1.FieldByName('Leftno').Value:=ADOTable1.FieldByName('LefTno').Value+StrToInt(edit3.Text);
ADOTable1.Post;
showmessage('新增册数成功');
end;
if loc1=false then
begin
if(edit2.text='') or (edit3.text='') or (edit4.text='') or (edit5.text='') then
begin showmessage('新书,请输入图书的完整信息');
abort;
end
else
begin
ADOTable1.InsertRecord([edit1.Text,edit2.Text,edit4.Text,StrtoInt(edit3.Text),edit5.Text]);
showmessage('新增图书成功');
end;
end;
end;
解决方案 »
- delphi 用BDE控件连接的ORACLE怎样转成用ADO连接?
- string和widestring转换丢失数据的问题
- 急,高分求帮助!关于WordApplication的应用,很简单的!
- 为什么我的数据库“查询”老是不行,请教!!
- 请问:为什么TOleContainer在设计时能播放插入的PowerPoint文件,在运行时却不能?谢谢
- 通过ADOQuery对表进行付值时出现的一个问题。
- quickrepport如何设置每页的固定行数,不足一页时补足空行?
- 無辜啊: 何錯之有?
- 命令行的问题.
- 如何计算时间的问题
- 如何处理长Number型字段的查询?
- 关于使用代码修改表中数据的问题,很简单,请进
ADOTable1.FieldByName('Leftno').Value:=ADOTable1.FieldByName('LefTno').Value+StrToInt(edit3.Text);
中ADOTable1.FieldByName('LefTno').Value值可能为空
if ADOTable1.FieldByName('Leftno').IsNull then
var
loc1:boolean;
begin
if (trim(edit1.Text)='') OR (trim(edit3.Text)='') then
begin
showmessage('请输入书号和册数');
abort;
end;
loc1:=ADOTable1.locate('Bno',edit1.text,[LocaseInsensitive]);
if loc1=true then
begin
ADOTable1.Edit;
ADOTable1.FieldByName('Leftno').Value:=ADOTable1.FieldByName('LefTno').Value+StrToInt(edit3.Text);
ADOTable1.Post;
showmessage('新增册数成功');
end;
if loc1=false then
begin
if(trim(edit2.text)='') or (trim(edit3.text)='') or (trim(edit4.text)='') or (trim(edit5.text)='') then
begin showmessage('新书,请输入图书的完整信息');
abort;
end
else
begin
ADOTable1.InsertRecord([edit1.Text,edit2.Text,edit4.Text,StrtoInt(edit3.Text),edit5.Text]);
showmessage('新增图书成功');
end;
end;
end;