Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.02.2011, 11:55   #1
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию Как разбить SQL запрос на несколько строк?

Код:
ADOQuery1.close;
ADOQuery1.SQL.clear;

ADOQuery1.Sql.Add('select table1.id, table1.fio, table1.data, table1.telefon, table1.pometka, table1.zatuh1, table1.pomeha1, table1.speed1, table1.speed2, table1.modulid, table1.adress,  modul.modulname, table1.datapto, table1.rezol, table1.tehdan, table1.dlina, table1.kabel, street.streetname, monter.montername from table1, modul, street, monter');

ADOQuery1.Sql.Add('where (modul.id=table1.modulid) and (street.id=table1.adress) and (monter.id=table1.monterid)');
ADOQuery1.Open;
ADOQuery1.Active:=False;
ADOQuery1.Active:=True;
Не влазиет строка, помогите разжедить на несколько строк, чтобы delphi не ругался....
UNToxa вне форума Ответить с цитированием
Старый 17.02.2011, 12:12   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
ADOQuery1.Sql.Add('select table1.id, table1.fio, table1.data,');
ADOQuery1.Sql.Add('table1.telefon, table1.pometka, table1.zatuh1,');
ADOQuery1.Sql.Add('table1.pomeha1, table1.speed1, table1.speed2,');
ADOQuery1.Sql.Add('table1.modulid, table1.adress,  modul.modulname,');
ADOQuery1.Sql.Add('table1.datapto, table1.rezol, table1.tehdan, table1.dlina, table1.kabel,');
ADOQuery1.Sql.Add('street.streetname, monter.montername');
ADOQuery1.Sql.Add(' from table1, modul, street, monter');
или нечто в этом духе
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 17.02.2011, 12:47   #3
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию

спасибо...
UNToxa вне форума Ответить с цитированием
Старый 17.02.2011, 13:23   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Кроме того, если имена полей в таблицах не пересекаются, названия таблиц можно смело опустить.
То есть
Код:
ADOQuery1.Sql.Add('select id, fio, data,');
ADOQuery1.Sql.Add('telefon, pometka, zatuh1,');
ADOQuery1.Sql.Add('pomeha1, speed1, speed2,');
ADOQuery1.Sql.Add('modulid, adress,  modulname,');
ADOQuery1.Sql.Add('datapto, rezol, tehdan, dlina, kabel,');
ADOQuery1.Sql.Add('streetname, montername');
ADOQuery1.Sql.Add(' from table1, modul, street, monter');
asmodey1 вне форума Ответить с цитированием
Старый 17.02.2011, 19:34   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

я обычно делаю так
Код:
ADO.SQL.Text:='select f1'
 + #13#10'from tab1'
 + #13#10'where f2 =:nn';
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как разбить одну строку на несколько, ориентируясь на Заглавные буквы seto Microsoft Office Excel 13 28.08.2015 13:46
Как разбить содержимое одной ячейки на несколько? Avtocur Microsoft Office Excel 24 16.05.2012 09:05
SQL запрос для строк! Milishka БД в Delphi 8 21.04.2010 13:23
несколько выбранных элементов checklistbox в sql запрос kate158 БД в Delphi 5 22.06.2009 16:32