当前位置:主页>仓库管理软件> 列表

关于使用adoquery添加数据的问题

企业管理软件版1楼: procedure Tnewbook.BitBtn1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(''insert into 图书信息(编号,条形码,书名,类型,作者,译者,出版社,ISBN,价格,现存量,入库时间)'');
adoquery1.SQL.Add(''values((:a1),(:a2),(:a3),(:a4),(:a5),(:a6),(:a7),(:a8),(:a9),(:a10),(:a11))'');
adoquery1.Parameters.AddParameter;
adoquery1.Parameters[0].value:=edit1.text; //编号 varchar型 必填
adoquery1.Parameters[1].value:=edit2.text; //条形码 varchar
adoquery1.Parameters[2].value:=edit3.text; //书名 varchar
adoquery1.Parameters[3].value:=combobox1.Items[combobox1.itemindex]; //类别 varchar
adoquery1.Parameters[4].value:=edit4.text; //作者 varchar
adoquery1.Parameters[5].value:=edit5.text; //翻译者 varchar
adoquery1.Parameters[6].value:=combobox2.Items[combobox1.itemindex]; //出版社 varchar
adoquery1.Parameters[7].value:=edit6.text; //ISBN
adoquery1.Parameters[8].value:=strtoint(edit7.Text); //价格 money
adoquery1.Parameters[9].value:=SpinEdit1.value; //入库数量 int
adoquery1.Parameters[10].value:=DateTimePicker1.date; //入库日期 smalldate
adoquery1.ExecSQL;
end;

一点该按钮就报错,大意是:Access violation at Address 77C1809E in module ''msvcrt.dll''
请问我这部分代码可能哪里错了?

2楼: 删除 adoquery1.Parameters.AddParameter;管家婆进销存

3楼: 同意楼上的答案

4楼: 我将可能引起类型错误的有关项目去掉(反正除了编号外都不是必填字段),并根据hxb的提示删除那一句,同时做了一点点修改,如下:
procedure Tnewbook.BitBtn1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(''insert into 图书信息(编号,条形码,书名,作者,译者,ISBN)'');
adoquery1.SQL.Add(''values((:a1),(:a2),(:a3),(:a5),(:a6),(:a8))'');
// adoquery1.Parameters.AddParameter;
adoquery1.Parameters.ParamByName(''a1'').value:=edit1.text; //编号
adoquery1.Parameters.ParamByName(''a2'').value:=edit2.text; //条形码


adoquery1.Parameters.ParamByName(''a3'').value:=edit3.text; //书名
// adoquery1.Parameters.ParamByName(''a4'').value:=combobox1.Items[combobox1.itemindex]; //类别
adoquery1.Parameters.ParamByName(''a5'').value:=edit4.text; //作者
adoquery1.Parameters.ParamByName(''a6'').value:=edit5.text; //译者
// adoquery1.Parameters.ParamByName(''a7'').value:=combobox2.Items[combobox1.itemindex]; //出版社
adoquery1.Parameters.ParamByName(''a8'').value:=edit6.text; //ISBN
// adoquery1.Parameters.ParamByName(''a1'').value:=strtoint(edit7.Text); //价格
// adoquery1.Parameters.ParamByName(''a1'').value:=SpinEdit1.value; //入库数量
// adoquery1.Parameters.ParamByName(''a1'').value:=DateTimePicker1.date; //入库时间
adoquery1.ExecSQL;
end;

这次报的是:Access violation at Address 77C1809E in module ''sqloledb.dll''难道是数据库连接的问题?但是"出版社"和"类别"都可以读到数据呀.

5楼: procedure Tnewbook.BitBtn1Click(Sender: TObject);


begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(''insert into 图书信息(编号,条形码,书名,作者,译者,ISBN)'');
adoquery1.SQL.Add(''values(:a1,:a2,:a3,:a5,:a6,:a8)'');
adoquery1.Parameters.ParamByName(''a1'').value:=edit1.text; //编号
adoquery1.Parameters.ParamByName(''a2'').value:=edit2.text; //条形码
adoquery1.Parameters.ParamByName(''a3'').value:=edit3.text; //书名
adoquery1.Parameters.ParamByName(''a5'').value:=edit4.text; //作者
adoquery1.Parameters.ParamByName(''a6'').value:=edit5.text; //译者
adoquery1.Parameters.ParamByName(''a8'').value:=edit6.text; //ISBN
adoquery1.ExecSQL;
end;

6楼: 宝宝是什么意思啊?
经过实验, a1-a7是可以添加括号的

企业管理软件版7楼: 多人接受答案了。