DB-Library for c 如何使用嵌套sql

jk325 2005-06-30 08:01:07
我想在遍历记录的同时,改变相关表的记录,下面是部份代码,语法上通过了.前面的sql 也查出了数据,
但是内层执行update时报错.像这种多层的,怎么调用,谢谢

sprintf(sql,"select top 100 * from test);
dbcmd(dbproc,sql);
ret=dbsqlexec(dbproc);
if(ret==FAIL){

return
}
ret = dbresults(dbproc);
if(ret == SUCCEED){

dbbind(dbproc, 1, STRINGBIND, (DBINT)0, (unsigned char*) lsh);
dbbind(dbproc, 3, STRINGBIND, (DBINT)0, (unsigned char*)content);

while (dbnextrow(dbproc) != NO_MORE_ROWS)
{

sprintf(sql,"update test set content='123' where lsh ='%s'",lsh);
dbcmd(dbproc,sql);
ret=dbsqlexec(dbproc); //这里报错,,像这种嵌套sql 语句要怎么用
if(ret==FAIL){
return;
}
dbfreebuf(dbproc);
}
...全文
53 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker_tmj 2005-07-02
  • 打赏
  • 举报
回复
up learn
FOR 子句 FOR 子句用于指定 BROWSE 或 XML 选项(BROWSE 和 XML 是不相关的选项)。 语法 [ FOR { BROWSE | XML { RAW | AUTO | EXPLICIT } [ , XMLDATA ] [ , ELEMENTS ] [ , BINARY BASE64 ] } ] 参数 BROWSE 指定当查看 DB-Library 浏览模式游标中的数据时允许更新。如果表包含时间戳列(用 timestamp 数据类型定义的列),表有唯一索引且 FOR BROWSE 选项在 SELECT 语句的最后发送到 SQL Server,则可以在应用程序中浏览该表。有关更多信息,请参见浏览模式。 说明 在含有 FOR BROWSE 选项的 SELECT 语句中无法使用 HOLDLOCK。 FOR BROWSE 选项不能出现在用 UNION 运算符联接的 SELECT 语句中。 XML 指定查询结果将作为 XML 文档返回。必须指定下列 XML 模式之一:RAW、AUTO、EXPLICIT。有关 XML 数据和 SQL Server 的更多信息,请参见使用 FOR XML 检索 XML 文档。 RAW 获得查询结果并将结果集内的各行转换为 XML 元素,用一般标识符 作为元素标记。有关更多信息,请参见使用 RAW 模式。 AUTO 以简单的嵌套 XML 树返回查询结果。在 FROM 子句内,每个在 SELECT 子句中至少有一列被列出的表都表示为一个 XML 元素。SELECT 子句中列出的列映射到适当的元素特性。有关更多信息,请参见使用 AUTO 模式。 EXPLICIT 指定显式定义所得到的 XML 树的形状。使用此种模式,要求以一种特定的方式编写查询,以便显式指定有关期望的嵌套的附加信息。有关更多信息,请参见使用 EXPLICIT 模式。 XMLDATA 返回架构,但不将根元素添加到结果中。如果指定了 XMLDATA,它将被追加到文档上。 ELEMENTS 指定列作为子元素返回。否则,列将映射到 XML 特性。 BINARY BASE64 指定查询返回二进制 base64 编码格式的二进制数据。使用 RAW 和 EXPLICIT 模式检索二进制数据时,必须指定该选项。这是 AUTO 模式中的默认值。

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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