upsql:='update chanpin set 名称 ='''+edit1.Text+''', 单价='+edit2.Text+', 规格='''+combobox1.Text +''', 单位='''+combobox2.Text+''', 备注='''+memo1.Text+''' where id='+dbedit3.Text;这条语句怎么有错误了啊
我是看不出来
我是看不出来
解决方案 »
- 已知文件路径.如何取得文件的目录.
- 关于Windows Media Services
- 关于BDE的写数据库的问题,请进
- *****急问一个StringGrid问题,解决就接贴!!!!!****
- 各位朋友,真的不能实现ms xml3.0的功能吗?会这种的朋友请帮助.我的原代码如下:
- 程序执行问题?着急。。。
- ADOConnection连接失败激发哪个事件?
- 为什么安装FastReport后,打.的键盘精灵就不能用了。我已经重安装3次D6了,还是那样
- 我在使用AdoQuery中的where 条件时,出现列名无效,可是把同样的sql语句写到AdoQuery中的Sql属性框中就能 执行!请教为什么?
- 求助:DELPHI多线程的问题
- 请那位大哥帮小弟翻译一下。
- 100分求问fastreport打印dbgrid列宽问题(饭碗问题,大家帮帮忙,急啊!)
adoquery1.parameters.parametersbyname('a').value:=edit1.text;
sql.add(upsql);
sql.SaveToFile('c:\sql.txt');
------------------------------------把你c:\sql.txt里的东西贴出来
这是怎么一回事
我用了JINJAZZ的方法了
没错啊
没什么错呀
没别的什么了这是怎么一回事呢?、
字符形才需要加引号,而数字型不用加的
而且我的UPSQL是一个字符形的哦
但是-edit2.Text-是string类型的啊,若‘单价’是int,-edit2.Text-是否要转换啊!!!
你自己可以试一下
不用转换知道吗
如果转换了对于UPSQL
来说他可不认识一个字符型里插着一个INT型
明白不
SQL给数据库后
人家可只知道有引号的是字符没引号是数字
============================================不需要
字符型数据的数据库操作最好用参数形式!
---------------------------------你随便到数据库里(不是delphi),建立一个查询,对这个表写条update语句看看有没有问题
upsql:='update chanpin set 名称 =:A, 单价=:B, 规格=:C, 单位=:D, 备注=:E where id=:F;
adoquery1.parameters.parametersbyname('A').value:=edit1.text;
.
.
.
adoquery1.open;这样明了一些不容易出错
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EOleException with message 'UPDATE 语句的语法错误。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
可以减少些出错的机会
upsql:='update chanpin set 名称 ='''+edit1.Text+''', 单价='+edit2.Text+', 规格='''+combobox1.Text +''', 单位='''+combobox2.Text+''', 备注='''+memo1.Text+''' where [id]='+dbedit3.Text;你的id是access保留字,一直没注意
var upsql : string;
begin
form1.ADOQuery1.Close;
upsql:='update chanpin set 名称=:a,单价=:b,规格=:c,单位=:d,备注=:e where id=:f';
form1.ADOQuery1.Parameters.ParamByName('a').Value:=edit1.Text;
form1.ADOQuery1.Parameters.ParamByName('b').Value:=edit2.Text;
form1.ADOQuery1.Parameters.ParamByName('c').Value:=combobox1.Text;
form1.ADOQuery1.Parameters.ParamByName('d').Value:=combobox2.Text;
form1.ADOQuery1.Parameters.ParamByName('e').Value:=memo1.Text;
form1.ADOQuery1.Parameters.ParamByName('f').Value:=dbedit3.Text;
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add(upsql);
form1.ADOQuery1.ExecSQL;
form1.ADOQuery1.Close;end;
这样写对吗
也是不行呀
form1.ADOQuery1.Parameters.ParamValues['a'].Value:=edit1.Text;
你没发现你的这个'名称 '在数据库里没有吗?
不是'名称 ' 是'名称' 说明白就是你加了一个空格
大家要多注意呀,编程要仔细才是:)