我在SQL Server(ADO链接)怎么不能更新?请看看吧(50分)

  • 主题发起人 主题发起人 strchi
  • 开始时间 开始时间
S

strchi

Unregistered / Unconfirmed
GUEST, unregistred user!
begin
if dbedit1.Text ='' then
with ADOquery1 do
begin
close;
sql.Clear;
sql.Add('update k001 set zt = '+''''+trim(edit2.Text)+''''+' where mm like '+''''+'%'+trim(edit1.text)+'%'+'''');
execSQL;
//open;
end;
end;
 
有没有出错信息?
 
你没有设你的ADOQUERY的CONNECT
 
sql.add('update k001 set zt='''+trim(edit2.text)+''''+' where mm like '''+'%'+trim(edit1.text)+'%'+'''');
好像都差不多,注意像Adang说的AdoQuery的Connection属于有没有设置?
还不行的话请将错误信息贴出来。

 
connection设了D,我的问题是:添加完了之后,查看表,数据集没有添加成功!
我在这个添加之前也有做过一个查询动作,可以返回结果集,用UPDATE的时候没有出错信息
我听说execSQL是不返回错误信息的,是吗?
 
ExecSQL返回影响的记录数,如果以上返回值大于1就正确
 
ysai,就是这个意思,我可以肯定,查询到的是有数据集的,因为我用查询语句查出来了才
执行修改操作,用execSQL没有返回错误信息,为什么添加不成功呢?
该不是sql中也要什么刷新……呵呵,说笑了……
 
begin
if dbedit1.Text ='' then
with ADOquery1 do
begin
close;
sql.Clear;
sql.Add('update k001 set zt = '''+trim(edit2.Text)+''''+
' where mm like '''+'%'+trim(edit1.text)+'%'+'''');
execSQL;
end;
end;
 
我把SQL语句放到sqlserver企业管理器中都可以更新,并且,edit2.Text中有值(不未空)
请大家指教我,看看到底是怎么回事?
 
//试试这样
begin
if dbedit1.Text ='' then
with ADOquery1 do
begin
close;
sql.Clear;
sql.Add('update k001 set zt = '+quotedstr(edit2.Text)+
' where mm like '+quotedstr('%'+trim(edit1.text)+'%''));
execSQL;
end;
end;
 
你用了緩沖存儲吧!用
applyupdate.
 
不能执行啊!报错
sql.Add('update kjcgda001 set zth = '+quotedstr(edit2.Text)+' where xmmc like '+quotedstr('%'+trim(edit1.text)+'%')');
[Error] Unit1.pas(163): Unterminated string
 
请问sichuan, applyupdate是怎么用的?能给我一个例子吗?
 
请问插入更新的话和查询操作有什么不同之处?ECECSQL为什么就不执行呢?
 
我换一个办法:可是出现错误提示,是为什么勒?
begin
adoquery1.First;
while not adoquery1.Eof do
begin
adoquery1.edit;
adoQuery1.fieldbyname('zt').asString:=edit2.Text;
adoquery1.Post;
adoquery1.Refresh;

adoquery1.next;
end; //加入步骤
end;

Project Project1.exe raised exception class EOleException with message '缺少更新或刷新的键列信息。'. Process stopped. Use Step or Run to continue.
 
给你的表添加主键字段
 
我在dbe中建立db2的表,用以上方法可以,
不过,有没有高手能指点指点小弟,为啥在sql server中添加就不行列
为勒观察方便,我把上面的代码再写一次,请指点(这段代码不报错,但也不执行)
begin
if dbedit1.Text ='' then
with ADOquery1 do
begin
close;
sql.Clear;
sql.Add('update k001 set zt = '+''''+trim(edit2.Text)+''''+' where mm like '+''''+'%'+trim(edit1.text)+'%'+'''');
execSQL;
//open;
end;
end;
谢谢你看我d问题
 
估计是这儿的错:
if dbedit1.Text ='' then //是dbedit1.Text<>''或其他什么的吧,条件设置不正确
 
如果上面是你的源码
like 和''''之间少了空格
 

Similar threads

I
回复
0
查看
2K
import
I
I
回复
0
查看
3K
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
3K
import
I
后退
顶部