SQL 更新数据库问题

cjlu_xiaok 2011-08-02 03:57:58
麻烦大家帮我看下下面语句有什么问题

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ="1" Where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7]") ;
ADOQuery1->ExecSQL();
ADOQuery1->Active = true;

运行到Update T_SCTZD_WXMX Set YWFQ="1" 时系统提示 function call missing
...全文
69 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ozil1236 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 cjlu_xiaok 的回复:]
麻烦大家帮我看下下面语句有什么问题

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ="1" Where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7]") ……
[/Quote]


ADOQuery1->SQL->Close();
ADOQuery1->SQL->Clear();
String sql_text = "UPDATE T_SCTZD_WXMX Set YWFQ='1' where TZDBH ='";
sql+=pItem->SubItems->Strings[6]+"' and PH='";
sql+=pItem->SubItems->Strings[7]'";
ADOQuery1->SQL->Add(sql_text);
ADOQuery1->SQL->ExecSQL();
ozil1236 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cjlu_xiaok 的回复:]
引用 5 楼 gooceo 的回复:
问题出在你SQL的基础语句不过关。

ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ="1" Where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7]") ; 这里……
[/Quote]

查询用open方法或设置active属性为true,因为要返回查询的值;其余的如更新,删除,增加都是用EXECSQL方法,因为不需要返回值。
cjlu_xiaok 2011-08-02
  • 打赏
  • 举报
回复
我知道了。。要把ADOQuery1->Active = true; 注释掉。。 不然不行。。UPDATE 是无返回值的
cjlu_xiaok 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gooceo 的回复:]
问题出在你SQL的基础语句不过关。

ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ="1" Where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7]") ; 这里面分界符和SQL语法都有问题。

以下是我改的,你再……
[/Quote]


我在新的SQL里按你说的搞, 很奇怪的事, ACTIVE改成TRUE后, 提示Commandtext does not return a set result, 但是我直接打开数据库去看, 表里的值已经改成1了
cjlu_xiaok 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cjlu_xiaok 的回复:]
引用 1 楼 drlqyy 的回复:
where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7
这句应为
where TZDBH = '"+pItem->SubItems->Strings[6]+"' and PH = '"+pItem->SubItems……
[/Quote]
直接在SQL 运行 显示在where 附近有语法错误
gooceo 2011-08-02
  • 打赏
  • 举报
回复
问题出在你SQL的基础语句不过关。

ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ="1" Where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7]") ; 这里面分界符和SQL语法都有问题。

以下是我改的,你再试试行不行。
ADOQuery1->SQL->Add("Update T_SCTZD_WXMX Set YWFQ='1' Where TZDBH ='"+pItem->SubItems->Strings[6]+"' and PH ='"+pItem->SubItems->Strings[7]+"'") ;



你把你要实现的SQL语句先直接在SQL当中运行,通过之后再写到Add当中。
cjlu_xiaok 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 drlqyy 的回复:]
where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7
这句应为
where TZDBH = '"+pItem->SubItems->Strings[6]+"' and PH = '"+pItem->SubItems->Strings[7]+"'
[/Quote]

我照你的改了 之前的错误好了,但是出现报错 ‘在第一行:“_附近有语法错误。’
纯冰糖 2011-08-02
  • 打赏
  • 举报
回复
Sql 语句用Format可以清晰些

szSql=Format("select * from table where code=%d",[nCode]);
drlqyy 2011-08-02
  • 打赏
  • 举报
回复
set YWFQ="1" 应为 set YWFQ='1'
drlqyy 2011-08-02
  • 打赏
  • 举报
回复
where TZDBH = pItem->SubItems->Strings[6]&& Wherr PH = pItem->SubItems->Strings[7
这句应为
where TZDBH = '"+pItem->SubItems->Strings[6]+"' and PH = '"+pItem->SubItems->Strings[7]+"'

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧