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

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

Выборка в базе..


able ©   (2004-12-13 14:45:00) 

Вручную ищу в базе.
Когда находим, записываю в массив уникальный номерок записи..
Как вывести все записи, в которых присутствует этот номерок?
Не делать же:

  str:='select * from основная'

for i:=1 to ii do
begin
  zapr:=zapr+'where UNIQ_IP like "'+inttostr(array[i])+'";  
end;

..


able   (2004-12-14 19:00:00) [1]

msguns ©   (14.12.04 14:50) [15]
Всегда мечтал, чтобы меня поругали за код на этом форуме :)
Но там незачто ругать, слишком мало...


msguns   (2004-12-14 14:50:00) [2]

ИМХО, так красивше ;)
 if i>1 then q := q+', ';
 q:=q+inttostr(f[i])


able   (2004-12-14 13:36:00) [3]

Anatoly Podgoretsky ©   (13.12.04 18:37) [13]
бывает :))
--
Тема закрыта, вопрос исчерпан..


Anatoly Podgoretsky   (2004-12-13 18:37:00) [4]

Про пробел не считать ошибся :-(


able   (2004-12-13 16:00:00) [5]

Уф, понял в чем ошибка - забыл убрать:
adotable1.enablecontrols..


able   (2004-12-13 15:58:00) [6]

Ольга   (13.12.04 15:44) [9]
вот:

SELECT Организация, код, адрес, телефон, раздел
FROM Основная
WHERE Код IN ( 8, 9 );


> Anatoly Podgoretsky ©   (13.12.04 15:51) [10] [Новое
> сообщение

Что с пробелом, что нет - всё равно..


Anatoly Podgoretsky   (2004-12-13 15:51:00) [7]

able ©   (13.12.04 15:32) [8]
Ольга тебе намекает, что нет пробела перед WHERE


Ольга   (2004-12-13 15:44:00) [8]

Перед Open посмотрите, что у вас получилось:
str:=Datam.ADOQuery.SQL.Text


able   (2004-12-13 15:32:00) [9]

оч надо..


able   (2004-12-13 15:13:00) [10]


    with Datam.ADOQuery do   // Формируем запрос SQL
     begin
       q:='WHERE Код IN ( ';
        for i:=1 to i4-1 do
         begin
           if i=1 then
            q:=q+inttostr(f[i])
           else
            q:=q+', '+inttostr(f[i]);
         end;
        q:=q+' )';
showmessage(q);

       with SQL do
        begin
          clear;
          Add('SELECT Организация, код, адрес, телефон, раздел ');
          Add('FROM Основная');
          Add(q);
        end;
       Open;
     end;

Когда происходит "showmessage(q)"
Выскакивает "Where Код in ( 8, 9 ), а он выводит только запись, где код 9...


P.N.P.   (2004-12-13 14:58:00) [11]

используй оператор IN
SELECT * FROM основная WHERE UNIQ_IP IN ( 1, 2, 3, 4, 5 );


P.N.P.   (2004-12-13 14:58:00) [12]

опоздал =)


Sergey13   (2004-12-13 14:57:00) [13]

Через запятую.


able   (2004-12-13 14:56:00) [14]

Sergey13 ©   (13.12.04 14:53) [1]
Список номеров через пробелы?


able   (2004-12-13 14:54:00) [15]

Sergey13 ©   (13.12.04 14:53) [1]
Thanks!


Sergey13   (2004-12-13 14:53:00) [16]

select * from основная where UNIQ_IP in (список номерков)


Наверх

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