首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL UPDATE语句(语法)错误

问SQL UPDATE语句(语法)错误
EN

Stack Overflow用户
提问于 2014-09-26 19:01:13
回答 2查看 64关注 0票数 0

嗨,我正在忙于学校的一个项目,想知道一些我不能去工作的事情。

我有一个名为Users的数据库和一个名为Animals的表,它们与一个关系链接在一起。在Animal表中,有一个名为UserID的列,它链接到用户的名称。我试图做的是让用户能够领养还没有被领养的动物。在他们可以领养的页面上是链接到动物表格的数据库,它们显示了一只动物的所有信息,当你使用数据库导航器时,你会转到下一只动物,等等。dbedits会显示指定动物的列值。一个数据库显示动物是否被领养,当你点击它旁边的领养按钮时,它会显示动物是否被领养,如果不是,你可以领养它。当它不被采用时,用户可以将他的名字放在InputBox中,我想把这个名字放在动物表格中,它写着userID,因为如果你随后查看用户表格,用户旁边有一个"+“图标,当你点击领养动物的用户的"+”图标时,它应该会显示相关动物的信息。在采用按钮后面,我使用输入框获取用户的名称,并将其放入名为username的变量中,将动物的名称放入其中一个数据库的变量中,并将其放入名为动物名称的变量中。然后,我想将动物表格中的名称更改为用户的名称,其中动物的名称=动物的名称,但它不起作用。我使用的是ADOQRY,下面是我使用的SQL更新代码,

代码语言:javascript
复制
qryDBV.sql.Text := 'UPDATE Animals SET Adopted = Yes AND UserID = '''+username+''' WHERE (('''+nameofanimal+'''[Adopted] = false)';
     qryDBV.ExecSQL;
     qryDBV.Active := false;
     qryDBV.sql.Text := 'SELECT * FROM Animals';
     qryDBV.Active := true;
    end;  
EN

回答 2

Stack Overflow用户

发布于 2014-09-26 19:06:15

使用以下命令更改您的第一行。并且只在where子句中使用...因此,代码将如下所示。

代码语言:javascript
复制
qryDBV.sql.Text := 'UPDATE Animals SET Adopted = Yes , UserID = '''+username+''' WHERE (('''+nameofanimal+'''[Adopted] = false)';
票数 0
EN

Stack Overflow用户

发布于 2014-09-26 19:08:01

  1. 始终用引号将字符串括起来。
  2. 不要在SET子句中使用AND,而是在WHERE子句中使用AND如果需要,
  3. 在需要时将引号转义

qryDBV.sql.Text := 'UPDATE Animals SET Adopted = 'Yes', UserID = \''+username+'\' WHERE (\''+nameofanimal+'\'[Adopted] = false)';

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26058029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档