ai didi

delphi - 使用 "in"子句的 SQL 准备参数 FireDac

转载 作者:行者123 更新时间:2023-12-03 14:48:31 24 4
gpt4 key购买 nike

我在 FireDac 中使用 in 运算符时遇到了困难。

我正在使用 oracle 数据库,无法进行简单的查询。

FDQuery1.SQL.Text := 'SELECT * FROM Customers WHERE Gender in (:Genders)';

FDQuery1.ParamByName('Genders').AsString:= 'M';

它适用于一个参数,但这显然不是 in 运算符的目的。

但是多个值不起作用:

FDQuery1.ParamByName('Genders').AsString:= 'M, F';
FDQuery1.ParamByName('Genders').AsString := '''M'', ''W''';

难道是不支持in运算符?如果是的话,它会被替换成什么?

最佳答案

我刚刚找到this thread在 Embarcadero 论坛上,用户 Serge Girard 发布了此解决方案:

使用宏来代替,并且可能以稍微不同的方式

SELECT * FROM `table` !mysel
and
Query.macrobyname('mysel').asraw:='WHERE Field in (1,2,3)';

SELECT * FROM table WHERE !mysel

no selection Query.MacroByName('mysel').asRaw:'1=1';
a selection Query.MacroByName('mysel').asRaw:'Field in (1,2,3)';

关于delphi - 使用 "in"子句的 SQL 准备参数 FireDac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33345711/

24 4 0
文章推荐: windows - 如何正确地在任务栏中显示无模式表单
文章推荐: delphi - 最后一次 IUnknown.Release 调用的时刻
文章推荐: delphi - 为什么在过程中使用局部变量而不是 var 参数?
文章推荐: delphi - 如何确定使用 sslvSSLv23 时协商了哪个 TLS/SSL 协议(protocol)?
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com