小M我的程序又出问题了,我在窗体中添加了TADOQuery1、TADOTable1、TDataSource1、TDataSource2,TADOQuery1连接DataSource1,TADOTable1连接DataSource2,其他TDB控件为了根据书号改变值连接的是DataSource2,可是我在运行修改按钮的时候却出现了以下的错误信息:
Project main.exe raised exception class EVariantInvalidOpError with message 'Invalid variant operation'.
Process stopped. Use Step or Run to continue.
不知道怎么回事,各位大侠能帮帮忙吗??
以下是我的按钮事件代码:
procedure TBookAdd.Button3Click(Sender: TObject);
begin
ADOTable1.Edit ;
ADOTable1['书号'].AsString :=ComboBox1.Text;
ADOTable1['书名'].AsString :=DBName.Text;
ADOTable1['作者'].AsVariant:=DBAuthor.Text;
ADOTable1['出版社'].AsVariant:=DBPress.Text;
ADOTable1['书版日期'].AsString :=DBOutDate.Text;
ADOTable1['价格'].AsVariant:=DBCost.Text;
ADOTable1['备注'].AsVariant:=DBMemo.Text;
ADOTable1['数量'].AsVariant:=DBEdit1.Text;
ADOTable1['类别'].AsVariant:=DBEdit2.Text;
ADOTable1['位置'].AsVariant:=DBEdit3.Text;
ADOTable1.Post;
showmessage('保存成功!')
end; 请帮忙改错,谢谢~~
Project main.exe raised exception class EVariantInvalidOpError with message 'Invalid variant operation'.
Process stopped. Use Step or Run to continue.
不知道怎么回事,各位大侠能帮帮忙吗??
以下是我的按钮事件代码:
procedure TBookAdd.Button3Click(Sender: TObject);
begin
ADOTable1.Edit ;
ADOTable1['书号'].AsString :=ComboBox1.Text;
ADOTable1['书名'].AsString :=DBName.Text;
ADOTable1['作者'].AsVariant:=DBAuthor.Text;
ADOTable1['出版社'].AsVariant:=DBPress.Text;
ADOTable1['书版日期'].AsString :=DBOutDate.Text;
ADOTable1['价格'].AsVariant:=DBCost.Text;
ADOTable1['备注'].AsVariant:=DBMemo.Text;
ADOTable1['数量'].AsVariant:=DBEdit1.Text;
ADOTable1['类别'].AsVariant:=DBEdit2.Text;
ADOTable1['位置'].AsVariant:=DBEdit3.Text;
ADOTable1.Post;
showmessage('保存成功!')
end; 请帮忙改错,谢谢~~
ADOTable1['数量'].AsFloat:=StrToFloat(DBEdit1.Text); //数字类型的其他的都照改
第一:
如:
ADOTable1['价格'].AsVariant:=DBEdit3.Text; 如果你的价格是数值型或者货币型,建议你调整一下后面参数的类型 不应该是字符型第二:ADOTable1['位置'].AsVariant:=DBEdit3.Text; 一般情况下你按照这个写法模式来
(1)ADOTable1[index].value index是字段位置序号
(2)ADOTable1("价格").asstring:=DBEdit3.Text;
回复winxkm :我不明白你所说的对我的程序来说很重要吗?还是您觉得我只是写程序的时候不够规范呢???可是我真的很希望各位能够帮我解决致命性的问题,拜托了~~~~~~~~
其实我觉得会不会是我的数据库连接的问题呢?因为我同时用了ADQuery和ADOTable,两个DataSource,我是第一次同时使用这两个ADO控件,其中的属性设置可能有问题,请各位大侠可以指教一下吗?????????小妹我不胜感激~~~~~~~~~
一个dataset 一个datasource就可以了
给个邮箱我给你个例子程序
begin
ADOTable1.Edit ;
ADOTable1.FieldByName('书号').AsString :=ComboBox1.Text;
ADOTable1.FieldByName('书名').AsString :=DBName.Text;
ADOTable1.FieldByName('作者')AsVariant:=DBAuthor.Text;
ADOTable1.FieldByName('出版社').AsVariant:=DBPress.Text;
ADOTable1.FieldByName('书版日期').AsString:=DBOutDate.Text;
ADOTable1.FieldByName('价格').AsVariant:=strtoint(DBCost.Text);
ADOTable1.FieldByName('备注').AsVariant:=DBMemo.Text;
ADOTable1.FieldByName('数量').AsVariant:=strtoint(DBEdit1.Text);
ADOTable1.FieldByName('类别').AsVariant:=DBEdit2.Text;
ADOTable1.FieldByName('位置').AsVariant:=DBEdit3.Text;
ADOTable1.Post;
showmessage('保存成功!')
end; 看看行不?