Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 14.07.2009, 11:28   #1
Пользователь
 
Аватар для ch_vas
 
Пол:Мужской
Регистрация: 23.09.2005
Сообщений: 31
Репутация: 20
Question Delphi7 - Символ продолжения строки

Кто знает есть ли такая байда Delphi?:
есть длинная строка запроса типа:
Код:
'select * from sgoods where (idparent = :id or idgoods = :id) or idgoods in (select idparent from sgoods where idgoods = :id) order by idgoods'
как в дельфях её структуризировать без + и лишних кавычек - в некоторых языках есть понятие симфола продолжения строки в 1с это "|" т.е можно записать
Код:
'select * |
  from sgoods |
  where (idparent = :id or idgoods = :id) or idgoods in |
  (select idparent from sgoods where idgoods = :id) |
  order by idgoods'
ch_vas вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: плиту газовую купить в москвемотор-колеса для вентиляторовкарбид кремния зеленыйmedodsЗаходите на сайт MebelStol.ru: купить компьютерное кресло - отличные цены и большой выбор!


Старый 14.07.2009, 17:30   #2
rostan2004
Неактивный пользователь
 
Пол:Женский
Регистрация: 18.04.2009
Адрес: СПб
Сообщений: 41
Репутация: 65
По умолчанию Re: Delphi7 - Символ продолжения строки

Например
Код:
'select *'+
' from sgoods' +
' where (idparent = :id or idgoods = :id) or idgoods in' +
' (select idparent from sgoods where idgoods = :id)' +
' order by idgoods';
rostan2004 вне форума
 
Ответить с цитированием Вверх
Старый 14.07.2009, 18:00   #3
ch_vas
Пользователь
 
Аватар для ch_vas
 
Пол:Мужской
Регистрация: 23.09.2005
Сообщений: 31
Репутация: 20
По умолчанию Re: Delphi7 - Символ продолжения строки

Оно то так... я так и пишу - просто в других языках это более усовершенствовано.. во первых нет лишних скобок - не нужно отслеживать открыл ли и закрыл ли, и плюсик рисовать тоже не нужно
почему комментарий после открытия { действителен аж до закрытия }, а скобки в строковых значениях нет.
Как я писал во многих языках такой символ есть в 1с (прототип Паскаля только русский) - это симво "|", в VBA точно не знаю но в инете встречал что вроде как "_" - и только в Delphi недодумались ;-(((
ch_vas вне форума
 
Ответить с цитированием Вверх
Старый 14.07.2009, 18:43   #4
hack
Старожил
 
Аватар для hack
 
Пол:Мужской
Регистрация: 27.05.2005
Адрес: Тверь (Первомайка)
Сообщений: 1,929
Репутация: 3260
По умолчанию Re: Delphi7 - Символ продолжения строки

ИМНО Запрос то вы пишете на делфях, но он то относится к Structured Query Language (SQL). отсюда и пляшите ищите описание и его возможности.
__________________
У победы много отцов, поражение всегда сирота.
hack вне форума
 
Ответить с цитированием Вверх
Старый 14.07.2009, 18:52   #5
Vasuha
Постоялец
 
Пол:Мужской
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
По умолчанию Re: Delphi7 - Символ продолжения строки

Сделайте отдельный файл с текстом запроса, и вычитывайте оттуда, а там уже без плюсов, ковычек и пр...
__________________
Vasuha вне форума
 
Ответить с цитированием Вверх
Старый 14.07.2009, 19:15   #6
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Re: Delphi7 - Символ продолжения строки

Цитата:
Сообщение от hack Посмотреть сообщение
ИМНО Запрос то вы пишете на делфях, но он то относится к Structured Query Language (SQL). отсюда и пляшите ищите описание и его возможности.

Цитата:
Сообщение от Vasuha Посмотреть сообщение
Сделайте отдельный файл с текстом запроса, и вычитывайте оттуда, а там уже без плюсов, ковычек и пр...

имхо, что-то вы не в ту сторону думаете. человеку просто надо в коде записать длинную строку.

ch_vas, такое есть во многих языках программирования, но в паскале я такого ни разу не встречал, видимо, не реализовано
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение:
Старый 15.07.2009, 13:29   #7
ch_vas
Пользователь
 
Аватар для ch_vas
 
Пол:Мужской
Регистрация: 23.09.2005
Сообщений: 31
Репутация: 20
По умолчанию Re: Delphi7 - Символ продолжения строки

pluton, Спасибо - только вы меня поняли....
Если никто больше не знает -значит будем считать что в Delphi такого нет и тему можно считать закрытой...
ch_vas вне форума
 
Ответить с цитированием Вверх
Старый 16.07.2009, 05:10   #8
Демьян
Новичок
 
Аватар для Демьян
 
Пол:Мужской
Регистрация: 01.02.2007
Сообщений: 23
Репутация: 1
По умолчанию Re: Delphi7 - Символ продолжения строки

Цитата:
Сообщение от ch_vas Посмотреть сообщение
pluton, Спасибо - только вы меня поняли....
Если никто больше не знает -значит будем считать что в Delphi такого нет и тему можно считать закрытой...

SQL.add('тут запрос ');
SQL.add('тут запрос ');
итд
У меня и длиннее запросы есть

select a.Telef,
EXTRACT(MONTH FROM a.data_oper) mon_dolg,
EXTRACT(Year FROM a.data_oper) Year_dolg,
a.summa dolg,
a.vid_zad vid,
EXTRACT(MONTH FROM b.data_oper) mon_opl,
EXTRACT(Year FROM b.data_oper) Year_opl,
b.summa oplata
from zadol a
left outer Join oplat b on (a.vid_zad=b.vid_opl and a.telef=b.telef
and EXTRACT(MONTH FROM a.data_oper)=EXTRACT(MONTH FROM b.data_oper)
and EXTRACT(Year FROM a.data_oper)=EXTRACT(Year FROM b.data_oper))
Where EXTRACT(MONTH FROM a.data_oper) in (1,2,3) and EXTRACT(Year FROM a.data_oper)=2006
and a.telef=33621

ну и строки то не нужно получается

Последний раз редактировалось Демьян; 16.07.2009 в 05:23..
Демьян вне форума
 
Ответить с цитированием Вверх
Старый 16.07.2009, 09:18   #9
ch_vas
Пользователь
 
Аватар для ch_vas
 
Пол:Мужской
Регистрация: 23.09.2005
Сообщений: 31
Репутация: 20
По умолчанию Re: Delphi7 - Символ продолжения строки

Демьян, Вопрос то не в длинне запроса а в удобочитаемости и простоте его записи.. вош запрос прийдется писать так:

Цитата:
SQL.add('select a.Telef, ');
SQL.add('EXTRACT(MONTH FROM a.data_oper) mon_dolg, ');
SQL.add('EXTRACT(Year FROM a.data_oper) Year_dolg, ');
SQL.add('a.summa dolg, ');
SQL.add('a.vid_zad vid, ');
SQL.add('EXTRACT(MONTH FROM b.data_oper) mon_opl, ');
SQL.add('EXTRACT(Year FROM b.data_oper) Year_opl, ');
SQL.add('b.summa oplata ');
SQL.add('from zadol a ');
SQL.add('left outer Join oplat b on (a.vid_zad=b.vid_opl and a.telef=b.telef ');
SQL.add('and EXTRACT(MONTH FROM a.data_oper)=EXTRACT(MONTH FROM b.data_oper) ');
SQL.add('and EXTRACT(Year FROM a.data_oper)=EXTRACT(Year FROM b.data_oper)) ');
SQL.add('Where EXTRACT(MONTH FROM a.data_oper) in (1,2,3) and EXTRACT(Year FROM a.data_oper)=2006 ');
SQL.add('and a.telef=33621 ');

и где же тут удобочитаемость - а были бы такие символы как в 1с например - можно было бы написать так:

Цитата:
'select a.Telef, |
EXTRACT(MONTH FROM a.data_oper) mon_dolg, |
EXTRACT(Year FROM a.data_oper) Year_dolg, |
a.summa dolg, |
a.vid_zad vid, |
EXTRACT(MONTH FROM b.data_oper) mon_opl, |
EXTRACT(Year FROM b.data_oper) Year_opl, |
b.summa oplata |
from zadol a |
left outer Join oplat b on (a.vid_zad=b.vid_opl and a.telef=b.telef |
and EXTRACT(MONTH FROM a.data_oper)=EXTRACT(MONTH FROM b.data_oper) |
and EXTRACT(Year FROM a.data_oper)=EXTRACT(Year FROM b.data_oper)) |
Where EXTRACT(MONTH FROM a.data_oper) in (1,2,3) and EXTRACT(Year FROM a.data_oper)=2006 |
and a.telef=33621'

В данном случае никаких лишних операторов - кроме синтаксиса запроса не путается

Последний раз редактировалось ch_vas; 16.07.2009 в 09:20..
ch_vas вне форума
 
Ответить с цитированием Вверх
Старый 17.07.2009, 14:45   #10
Steve Bloom
Пользователь
 
Пол:Мужской
Регистрация: 23.08.2008
Адрес: Москва
Сообщений: 38
Репутация: 7
По умолчанию Re: Delphi7 - Символ продолжения строки

Чтобы не было подобных вопросов - нужно избегать делать сколько-нибудь большие запросы в коде клиентской программы.
Для этого есть хранимые процедуры. Или, на худой конец, TQuery
Steve Bloom вне форума
 
Ответить с цитированием Вверх
Старый 30.11.2009, 19:21   #11
GreyT
Неактивный пользователь
 
Пол:Мужской
Регистрация: 30.11.2009
Сообщений: 3
Репутация: 1
По умолчанию Re: Delphi7 - Символ продолжения строки

Удобочитаемость легко обеспечивается обьявлением одной простой константы

const
CRLF = #13#10;
var
q: TQuery;
begin
q.SQL.Text:=
'SELECT bla_bla_bla'+CRLF+
' FROM tab1, tab2, tab3'+CRLF+
' WHERE tab1.a=tab2.b'+CRLF+
' AND tab2.c=tab3.d'+CRLF+
' ORDER BY tab3.e';

и усьо
GreyT вне форума
 
Ответить с цитированием Вверх
Старый 09.12.2009, 10:11   #12
Nomto
Новичок
 
Пол:Мужской
Регистрация: 16.10.2009
Сообщений: 4
Репутация: 0
По умолчанию Re: Delphi7 - Символ продолжения строки

не бойся того что там много компонент будет на форме, большаяя база будет представлять собой множество компонет. используй хранимые процедуры, adodatacommand кажется и остальные.

Добавлено через 1 минуту
чаще используй хранимые процедуры.. оч хорошая вещь

Последний раз редактировалось Nomto; 09.12.2009 в 10:12.. Причина: Добавлено сообщение
Nomto вне форума
 
Ответить с цитированием Вверх
Старый 16.12.2009, 11:46   #13
Leser
Пользователь
 
Аватар для Leser
 
Пол:Мужской
Регистрация: 18.02.2008
Сообщений: 104
Репутация: 26
По умолчанию Re: Delphi7 - Символ продолжения строки

Цитата:
Сообщение от Nomto Посмотреть сообщение
не бойся того что там много компонент будет на форме, большаяя база будет представлять собой множество компонет. используй хранимые процедуры, adodatacommand кажется и остальные.

Добавлено через 1 минуту
чаще используй хранимые процедуры.. оч хорошая вещь

Насколько я помню, хранимые процедуры не дают набора записей, а только значения параметров, а топикстартер вроде как использует селект именно для получения набора записей...
Leser вне форума
 
Ответить с цитированием Вверх
Старый 16.01.2010, 03:43   #14
Steve Bloom
Пользователь
 
Пол:Мужской
Регистрация: 23.08.2008
Адрес: Москва
Сообщений: 38
Репутация: 7
По умолчанию Re: Delphi7 - Символ продолжения строки

Цитата:
Сообщение от Leser Посмотреть сообщение
Насколько я помню, хранимые процедуры не дают набора записей, а только значения параметров

это вы неправильно помните...
Steve Bloom вне форума
 
Ответить с цитированием Вверх
Ответ

Опции темы
Опции просмотра

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что означает символ & в php chertenok PHP 14 14.11.2010 12:20
delphi7 +xml 100мб Mutabor182 Delphi 2 08.03.2009 11:52
Запрос Access2007 в Delphi7 dimarix Delphi 6 07.04.2008 09:08
Delphi7(BDS непредлагать) VS Excel Skazi Delphi 9 07.06.2007 13:31

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:36. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.09345 секунды с 11 запросами