Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.30;
Скачать: CL | DM;

Вниз

Помогите plz написать покрасивее :)   Найти похожие ветки 

 
Lego ©   (2002-08-31 10:01) [0]

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

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


 
Jeer ©   (2002-08-31 14:06) [1]

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


 
Desdechado ©   (2002-08-31 15:36) [2]

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


 
Lego ©   (2002-09-01 02:21) [3]

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


 
MsGuns ©   (2002-09-01 13:54) [4]

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


 
Lego ©   (2002-09-02 09:58) [5]


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

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


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

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


 
ЮЮ ©   (2002-09-02 10:59) [7]

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]);



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

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


 
Lego ©   (2002-09-04 10:59) [9]

Спасибо ЮЮ


 
Lego ©   (2002-09-05 09:00) [10]

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


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



 
ЮЮ ©   (2002-09-05 09:41) [11]

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

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


 
Lord Warlock ©   (2002-09-05 09:53) [12]

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


 
Lord Warlock ©   (2002-09-05 09:59) [13]

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

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



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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2002.09.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.018 c
1-98129
dimanew
2002-09-20 12:18
2002.09.30
Какое св-во CheckListBox говроит что item


1-98149
Invisible
2002-09-17 19:33
2002.09.30
Как создать выделение синтаксиса???


4-98397
Magistr2
2002-08-14 22:33
2002.09.30
Создание интерфейса DLL библиотеки


1-98123
race1
2002-09-20 10:53
2002.09.30
ttreeview


1-98216
Dmitriy Polskoy
2002-09-18 14:28
2002.09.30
MDI приложение