![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Select [D7, IB6.x]
viper_cd © (2003-12-01 09:18:00)
Есть массив целых чисел [1,7,12,45....], эти числа - номера уникальных полей в таблице! Как сделать запрос и выбрать записи чтобы он возвратил все записи которые указаны в массиве? Я так думаю это должна быть процедура, но как там все написать...пожалуста помогите!
Silver Alex (2003-12-01 10:07:00) [1]
function ArrayToParam(ar: array of integer): String;
var
i: Integer;
begin
if Length(ar)=0 then
begin
Result:="-1";//ID той записи которой наверняка нет
Exit;
end;
for i:=low(ar) to high(ar) do
if Result=EmptyStr then
Result:=inttostr(ar[i])
else
Result:=Result+","+inttostr(ar[i]);
end;
Query.sql.add("where fild in ("+ArrayToParam(MainArray)+")";
bon (2003-12-01 09:33:00) [2]
var str:string;
i:integer;
.....
begin
......
Query.close;
Query.sql.Clear;
Query.sql.add("select * from table");
str:="(";
for i:=1 to n-1 do str:=str+IntToStr(mass[i])+",";
str:=str+IntToStr(mass[n])+")";
Query.sql.add("where fild in "+str);
Query.open;
......
end;
Идею понял?
Илайдж (2003-12-01 09:28:00) [3]
var
s: string
sql: string;
for i:=0 to mas_count-1 do s := s + inttostr(mas[i])
sql := "select * from table where id in (" + s + ")"