Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 + ")"


Наверх

Титульная страница Поиск, карта сайта Написать письмо