建了一个视图由base,buy2个表组成:buy(顺序码,条形码,进价,采购数量,采购日期)base(条形码,书籍名称,库存量,书籍名称,作者,出版社,零售价)。DBGrid显示的是视图的内容。然后我要输入数据
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('insert into base values(:条形码,:书籍名称,:库存量,:作者,:出版社,:零售价)');
form1.ADOQuery1.Parameters.ParamByName('条形码').Value:=strToFloat(form1.Edit1.Text);
form1.ADOQuery1.Parameters.ParamByName('书籍名称').Value:=form1.Edit2.Text;
form1.ADOQuery1.Parameters.ParamByName('库存量').Value:=strToInt(form1.Edit7.Text);
form1.ADOQuery1.Parameters.ParamByName('作者').Value:=form1.Edit3.Text;
form1.ADOQuery1.Parameters.ParamByName('出版社').Value:=form1.Edit4.Text;
form1.ADOQuery1.Parameters.ParamByName('零售价').Value:=strToFloat(form1.Edit5.Text);
form1.ADOQuery1.ExecSQL;
我用这样输入但是不能执行。因为SQL SERVER里视图不能自动更新,所以我就想直接对基本表进行操作,但是我怎么也找不到一个办法解决。所以要请大家帮帮忙,我想几天了~~都郁闷死了
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add('insert into base values(:条形码,:书籍名称,:库存量,:作者,:出版社,:零售价)');
form1.ADOQuery1.Parameters.ParamByName('条形码').Value:=strToFloat(form1.Edit1.Text);
form1.ADOQuery1.Parameters.ParamByName('书籍名称').Value:=form1.Edit2.Text;
form1.ADOQuery1.Parameters.ParamByName('库存量').Value:=strToInt(form1.Edit7.Text);
form1.ADOQuery1.Parameters.ParamByName('作者').Value:=form1.Edit3.Text;
form1.ADOQuery1.Parameters.ParamByName('出版社').Value:=form1.Edit4.Text;
form1.ADOQuery1.Parameters.ParamByName('零售价').Value:=strToFloat(form1.Edit5.Text);
form1.ADOQuery1.ExecSQL;
我用这样输入但是不能执行。因为SQL SERVER里视图不能自动更新,所以我就想直接对基本表进行操作,但是我怎么也找不到一个办法解决。所以要请大家帮帮忙,我想几天了~~都郁闷死了
解决方案 »
- Fastreprot 怎么汉化 设计器?
- DBGRid如何自定义显示
- delphi 当鼠标移到image控件上时显示另一个界面
- 请问:如果我要把表中符合要求的记录,逐条添加到Listbox中,下面我的写法错在哪里了呢?
- 在线等! 急~~ 如何判断一个控件的某个事件对应哪个处理方法?
- 如何使用treeview 控件把数据库中的内容显示分层?
- 一条SQL的问题
- 在DELPHI中怎么用SQL的MAX,COUNT 等函数
- $$$$$$$$中科慧创软件公司招Delphi程序员(成都工作)$$$$$$$$$$$$$$
- 如何拦截按钮被按下后不放开左键而鼠标移出按钮,以及再移回的Windows事件?
- FastReport,Report Machine的脚本有什么作用的?3Q
- 我想让一个form从桌面的底端缓缓升起到指定的位置,就像QQ和popo的提示那样,怎么实现?
with ADOQuery1 do
begin
sql.clear;
sql.add('insert into base values(:条形码,:书籍名称,:库存量,:作者,:出版社,:零售价)');
//最好加上你要录入的表中的字段名称,以防出错
//比如:insert into base(a,b,c,d,e,f) values(:条形码,:书籍名称,:库存量,:作者,:出版社,:零售价)'
Parameters.ParamByName('条形码').Value:=strToFloat(form1.Edit1.Text);
Parameters.ParamByName('书籍名称').Value:=form1.Edit2.Text;
Parameters.ParamByName('库存量').Value:=strToInt(form1.Edit7.Text);
Parameters.ParamByName('作者').Value:=form1.Edit3.Text;
Parameters.ParamByName('出版社').Value:=form1.Edit4.Text;
Parameters.ParamByName('零售价').Value:=strToFloat(form1.Edit5.Text);
ExecSQL;
end;//没有编译,如果有问题,请说出问题是什么
with ADOQuery1 do
begin
sql.clear;
sql.add('insert into base values(:a,:b,:c,:d,:e,:f)');
//最好加上你要录入的表中的字段名称,以防出错
//比如:insert into base(a,b,c,d,e,f) values(:条形码,:书籍名称,:库存量,:作者,:出版社,:零售价)'
Parameters.ParamByName('a).Value:=strToFloat(form1.Edit1.Text);
Parameters.ParamByName('f).Value:=form1.Edit2.Text;
Parameters.ParamByName('c).Value:=strToInt(form1.Edit7.Text);
Parameters.ParamByName('d').Value:=form1.Edit3.Text;
Parameters.ParamByName('e).Value:=form1.Edit4.Text;
Parameters.ParamByName('f').Value:=strToFloat(form1.Edit5.Text);
ExecSQL;
end;这样再出问题就没天理了!!!还有:建议你不要用中文名作变量
query1.close;
query1.sql.text:='insert into base(a,b,c,d,e,f) values('
+ form1.Edit1.Text+','+form1.Edit2.Text+','+form1.Edit7.Text+','
类的,其余的你自己添加,注意要与库中的格式相同。
你可以用showmessage(query1.sql.text)在query1.execsql前来检验一下语句是否正确。祝在新的一年中成为Delphi大拿
便如果是多表视图的话。更新起来是比较困难的。可以直接对视图相关的表进行操作。
我试试了。还不行你有油箱吗??
我把程序发给你。你看看