从包含许多子句的表中选择数据,其中 1

玛雅14

我不知道如何从 Delphi 中具有许多条件的表中进行选择,这是我的代码

qr_catdegree.Close;
qr_catdegree.SQL.Clear;

qr_catdegree.SQL.Add('select * from cat_degreee where id_categ =+inttostr(id_categ)  and id_degree=+`inttostr(id_degree)' );
//qr_catdegree.SQL.Add(');

qr_catdegree.Open;
Indice_degree := qr_catdegree.FieldByName('Indice_degree').Asinteger;
edit15.text := inttostr(Indice_degree) ;`
马丁·A

我认为您会感到困惑,因为您正试图在对 SQL.Add 的调用中构建您的 Sql。这掩盖了您尝试中的语法错误。

试试这个

var
  S : String;
[...]
  qr_catdegree.Close; 
  qr_catdegree.SQL.Clear;

  S := 'select * from cat_degreee where id_categ = ' +  inttostr(id_categ);  
  //  do you REALLY mean 'degreee' and not 'degree'???

  S := S + ' and id_degree = ` + inttostr(id_degree); 

  qr_catdegree.SQL.Add(S);

顺便说一句,您会注意到 Ken White 的评论建议使用参数而不是您目前正在执行的操作。我同意他的建议有两个原因:

  • 首先,在预先准备好的 SQL 查询中使用参数会减少服务器的开销,因为它只需要解析和编译一次查询,而不是每次执行查询时。使用参数,您可以使用不同的参数值重新执行查询多次。

  • 其次,它只是从包括像表达式一小步,+ IntToStr(SomeInteger)在SQL中,包括像+ Edit1.Text,你真的应该避免以往任何时候都这样做。原因是它使您的代码面临“SQL 注入”的风险(请参阅https://en.wikipedia.org/wiki/SQL_injection),因为它使恶意用户有机会在他们的内容中添加额外的 SQL 命令输入到 TEdit。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用选择1从两个mysql表中选择

从表1中选择不在表2中的列

条件api其中1 <> 1子句

SQLSTATE [42S22]:找不到列:1054“ where子句”中的未知列“ id”(SQL:从“歌曲”中选择*,其中“ id” = 5限制1)

Oracle对“从sys.obj $其中1 = 0的select 1中选择”使用什么?

从表1,表2中选择

使用Flatten从包含多个嵌套变量的bigquery表中选择var1(非重复)=“ abc”的地方?

从表1,表2中选择*,其中表1.ID = 1,显示具有其他ID的值

SQL查询从1个表中选择并基于2列返回数据

如果在表2中存在MySQL,请从表1中选择所有数据,并通过ID从表2中选择替换值

在表中选择前1组

从1个以上的表格中选择数据

从PHP Mysql中的1个数据库中选择2个表

SQL Server每小时或每天从表中选择1个单个数据点

使用where子句从table1中选择不在table2中的特定数据

SQL,其中1列在两列中包含某些数据

将IF子句添加到Zend Framework 1数据库表选择对象

MySQL查询从多个表中选择,显示所有来自表1 +一些数据来自表2

从多个表中选择/加入,其中tbl1.x = tbl2.x = tbl3.x

SQL从数据库表中选择0 1 0 1序列

如何通过MYSQL上的数据透视表从table1中选择随机行

MySQL从表1,表2中选择*作为``测试''

MySQL从表1中选择所有行,并从表2中选择所有行,其中

LARAVEL:关系“表”不存在第1行:从“表”中选择* ^(SQL:从“表”中选择*)

从表中选择其中一列包含多种数据类型作为 varchar

选择其中 2 列来自表的 1 列但条件不同

如何根据其他表中的其他关系从 1 列中选择 2 个数据

SQL Server 2005 从表 1 和表 2 中选择数据,但如果表 2 的列 1 值为空,则从表 3 中选择数据

从表中选择 a=1 和 a=2