delphi 中用数组作为参数传入sql语句中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 中用数组作为参数传入sql语句中相关的知识,希望对你有一定的参考价值。

比如说
var
jsh:array of integer;
…………

with Query1 do
begin
close;
sql.clear;

//sql.add('select * from JS where JSH IN (....));

open;
fetchall;
end;

现在想把jsh中的参数传入sql语句中where后面的判断语句中。该怎么写

参考技术A 直接用string多简单,把参数构造成'a','b','c'......形式的,在sql.add中直接字符串相中不就行了 参考技术B 先在上面定义一个string类型变量
如:
str_sql : string;
下面
sql.clear;
str_sql= '';
for i := Low(jsh) to High(jsh) do
begin
if str_sql = '' then
str_sql = str_sql + jsh[i] ;
else
str_sql = str_sql + ',' + jsh[i];
end;
end;

if str_sql = '' then
sql.add('select * from JS');
else
sql.add('select * from JS where ('+str_sql+') IN (....)');
end;追问

虽然写的有些不认真,但这个方法可行。

追答

汗,不好意思啊,DELPHI我只是偶尔用用的,所以写的不好哦

本回答被提问者和网友采纳
参考技术C 用for循环吧追问

sql为select的时候用for很多结果集吧?还是说for用在sql语句里面?能具体点不?

以上是关于delphi 中用数组作为参数传入sql语句中的主要内容,如果未能解决你的问题,请参考以下文章

请问:delphi 中数组作为函数的参数传递,这样传过去的是地址,怎样把数组作为值传递过去?

SQL注入小结

delphi 7 中数组如何当参数

Delphi中从一个窗体传参数到另一个窗体的办法都有哪些?

MyBatis传入参数为集合 list 数组 map写法

MyBatis传入集合 list 数组 map参数的写法