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

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

Помогите plz написать покрасивее :) [D5, Paradox]


Lego ©   (2002-08-31 10:01:00) 

Сильно длинный запрос какой-то у меня получился :)

Query1.SQL.Add("SELECT * FROM test.db WHERE Column1 + Column2 + Column3 + Column4 + Column5 + Column6 + Column7 + Column8 + Column9 + Column10 + Column11 + Column12 + Column13 + Column14 + Column15 + Column16 + Column17 + Column18 + Column19 + Column20 LIKE ""%" + ST + "%""");


Lego   (2002-09-11 00:35:00) [1]

Маленькое дополнение если я сильно мудрено написал то вообщето это типа поиск такой у меня :)
Проще говоря есть таблица(я буду говорить DBGrid1) и есть типа результат поиска(DBGrid2), так вот собственно мне нужно просто из таблицы 1 вытаскивать найденое(то что написано в ST(типа SearchText(или по русски Edit1.Text))) через SQL в DBGrid2... глупо но вроде понятно :)


Lego   (2002-09-11 00:21:00) [2]

Извеняюсь что неписал давно... телефон неработал 5 дней :((
Сейчас пойду проверять что к чему :)


Lord Warlock   (2002-09-05 09:59:00) [3]

Извиняюсь, оплошал

Shablon:="LIKE ""%%d%"""
Column[последнее]:=format(Shablon,[нужное значение])


Lord Warlock   (2002-09-05 09:53:00) [4]

Может не в тему, но написать так
Column[последнее]:="LIKE ""% %d%"""
а перед циклом format(Column[последнее],[нужное значение])
(где выделено жирным - подставить тип твоих полей)


ЮЮ   (2002-09-05 09:41:00) [5]

Column[i], насколько я понимаю, содержит сомножитель логического произведения, типа "and (fieldXXX=yyyy)" ? Сл-но, для полей, в которых нас интересует не = , а LIKE Column[i] должен содержать что-то типа "and (fieldXXX LIKE ""%yyyy%"")"

Query1.SQL.Add("LIKE ""%" + ST + "%"""); - это лишнее !!!


Lego   (2002-09-05 09:00:00) [6]

>> ЮЮ помоги еще разок если нетрудно
Мне нравится этот вариант но он матерится на LIKE...


если Column1,...,Column20 заменить на Column:array[1..20] of String, то
for i:=1 to 20 do Query1.SQL.Add(Column[i]);


Lego   (2002-09-04 10:59:00) [7]

Спасибо ЮЮ


maratFromTomsk   (2002-09-02 13:01:00) [8]

скорее всего надо нормализовать базу
наверное это однотипные поля и
содержимое этих полей следует перенести в подчиненную таблицу


ЮЮ   (2002-09-02 10:59:00) [9]

Query1.SQL.Add("SELECT * FROM test.db );
Query1.SQL.Add("WHERE);
Query1.SQL.Add(Column1);
...
Query1.SQL.Add(Column20);
Query1.SQL.Add("LIKE ""%" + ST + "%""");

если Column1,...,Column20 заменить на Column:array[1..20] of String, то
for i:=1 to 20 do Query1.SQL.Add(Column[i]);


slabur   (2002-09-02 10:55:00) [10]

Предыдущий совет правильный, не лепи все в одну строку, а разбей запрос на строки (в конце каждой строки символ ее конца) и тебе будет легче читать и запрос будет исполняться :-)


Lego   (2002-09-02 09:58:00) [11]


> И вообще старайся строки SQL запроса не делать слишком длинными

Ну вот поэтому я и спросил как написать покороче вообще-то :)


MsGuns   (2002-09-01 13:54:00) [12]

Строка в запросе длинная. Сделай перенос на новую строку. И вообще старайся строки SQL запроса не делать слишком длинными


Lego   (2002-09-01 02:21:00) [13]

Дело в том что матерится на слишком длинный SQL запрос...


Desdechado   (2002-08-31 15:36:00) [14]

это НЕ длинный запрос.
как-то написал на 2 страницы - думал длинный. Но потом увидел еще длиннее :)


Jeer   (2002-08-31 14:06:00) [15]

Сформируй в цикле строковую переменную, затем подставь в запрос


Наверх

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