Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Предоставляет ли Sybase стандартные методы для SQL парсинга? Имеется ввиду возможность из произвольного запроса выделить его составные части (FROM, WHERE, ORDER и т.д). Тоесть по строке запроса узнать из какой таблицы берутся данные, по каким полям сортируются ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 15:09 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
B@SSilio пишет: > Предоставляет ли Sybase стандартные методы для SQL парсинга? Имеется > ввиду возможность из произвольного запроса выделить его составные части А зачем вам ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 15:12 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
MasterZiv А зачем вам ? Не хочу использовать сторонние Delphi компоненты для парсинга пока не убедился, что это невозможно сделать на сервере. Ведь Sybase каким то образом это делает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 15:22 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
B@SSilio wrote: > Предоставляет ли Sybase стандартные методы для SQL парсинга? Имеется > ввиду возможность из произвольного запроса выделить его составные части > (FROM, WHERE, ORDER и т.д). Тоесть по строке запроса узнать из какой > таблицы берутся данные, по каким полям сортируются ... Нет, прежде всего за бессмысленностью затеи. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 15:22 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
Dim2000 Нет, прежде всего за бессмысленностью затеи. Так ли ето ? :) Друг Google говорит что есть множество "бесмысленных" SQL парсеров написанных на Java, Delphi, C++ и еще Бог знает на чем, но не в этом суть :) Мне надо иметь возможность динамически менять структуру запроса в программе не сильно напрягая при этом пользователя. Например user может менять сортировку датасета щелкая по столбцам грида или группировать данные перетаскивая эти самые столбцы на панель. Со всем этим прекрасно справляются различные DB контролсы оперируя загруженным в RAM датасетом. Данный подход является довольно ресурсоемким и не совсем оптимален при большем количестве данных. Я лично использую devExpress который рекомендует реализовывать данную функциональность при помощи модификации SQL дабы не загружать пользовательскую машину операциями с виртуальным датасетом. Как я уже упоминал есть готовые парсеры от сторонних разработчиков, однако хотелось бы узнать что в данной ситуации может предложить сам Sybase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 16:12 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
B@SSilioЯ лично использую devExpress который рекомендует реализовывать данную функциональность при помощи модификации SQL дабы не загружать пользовательскую машину операциями с виртуальным датасетом.Правильно, давайте загружать сервер. Он большой, толстый, пусть трудится. Повторно выкачать тысячу записей с другой сортировкой это же так просто, ну сеть просядет, ну и что? B@SSilioКак я уже упоминал есть готовые парсеры от сторонних разработчиков, однако хотелось бы узнать что в данной ситуации может предложить сам Sybase.По причине бессмысленности задачи - ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 17:18 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
White Owl пишет: > Как я уже упоминал есть готовые парсеры от сторонних разработчиков, > однако хотелось бы узнать что в данной ситуации может предложить сам Sybase. > > По причине бессмысленности задачи - ничего. Я еще хочу подчеркнуть, что SQL в каждой СУБД свой, поэтому парсер для СУБД А не подойдет для СУБД В. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 17:26 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
White OwlПо причине бессмысленности задачи - ничего. Согласен, в самом Sybase такие вещи никчему. MasterZiv Я еще хочу подчеркнуть, что SQL в каждой СУБД свой, поэтому парсер для СУБД А не подойдет для СУБД В. Вот именно по этой причине я начал смотреть в сторону Sybase, так как нет уверености что какой нибудь универсальный парсер правильно поймет что к чему. Чтож, мне все ясно по этому вопросу. Благодарю за оказаную помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.04.2007, 17:59 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
Во-первых, если вы не занимаете какой-либо ресурс, то он просто пропадает. Поэтому, например, если у вас есть выбор - сделать задачу быстро, но задействовать большие ресурсы, либо делать задачу медленно, но ресурсов задействовать меньше, то идти надо по второму пути. В конце-концов, какая разница пользователю, увидит ли он картинку черз 0,1 секунды или через 0,01? Во-вторых, про тысячи записей. Посмотрите на isql. Если у вас в таблице записей несколько десятков миллионов, то, чтобы отсортировать их у клиента, вам придется все их на клиента и выгнать. Не лучше ли сделать повторный запрос, и получить 115 первых отсортированных записей? Идти надо по первому пути, и не тратить свое время на экономию ресурсов, которые никогда не задействуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 08:09 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
если дело в сортировке, не проще при клике на столбце переписывать Dataset.SQL[?] := 'order by ...' и переоткрывать dataset? или это слишком сложно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 09:49 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
old_joy wrote: > Как редактировать здесь свои сообщения? Никак. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2007, 11:06 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
Дублирую свое сообщение Во-первых, если вы не занимаете какой-либо ресурс, то он просто пропадает. Поэтому, например, если у вас есть выбор - сделать задачу в сжатые сроки, но при решении задействовать большие ресурсы, либо делать задачу долго, но в решении ресурсов задействовать меньше, то идти надо по первому пути, и не тратить свое время на экономию ресурсов, которые никогда не задействуются. В конце-концов, какая разница пользователю, увидит ли он картинку через 0,1 секунды или через 0,01? Во-вторых, про тысячи записей. Посмотрите на isql. Если у вас в таблице записей несколько десятков миллионов, то, чтобы отсортировать их у клиента, вам придется все их на клиента и выгнать. Не лучше ли сделать повторный запрос, и получить 115 первых отсортированных записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 06:42 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
old_joyДублирую свое сообщениеЗачем? Мы его видели с первого раза. Просто не захотелось комментировать. Но если наставиваешь... С одной стороны ты прав, но ты путаешь разработку и пользовательскую работу. При разработке клиентского приложения ты действительно будешь частенько давать запросы которые могут вернуть миллионы записей. И действительно, в это время удобнее делать сортировку на сервере, хотя бы потому, что утилиты типа isql не сортируют резалтсет сами. Но когда ты уже написал клиентскую программу и отдал эту программу менеджеру/бухгалтеру/кладовщику - эта программа никогда не будет делать запросы более чем в сотню записей за раз. Просто потому, что ни один нормальный человек не будет глазами просматривать большое количество записей. А с другой стороны, загрузить сервер повторной работой по выборке десятка записей по сложному условию только для того чтобы выдать эти записи в другом порядке??? На клиенте отсортировать проще будет. Ну а возвращаясь к вопросу начавшему этот топик - единственный период когда есть какой-то смысл разбирать sql-запрос это при разработке, когда вчера ты написал какой-то запрос, а сегодня понял что запрос выдает неверный результат и теперь тебе надо разобраться что в запросе неверно и исправить его. А это намного удобнее делать имея запрос перед глазами в каком-нибудь текстовом редакторе. Хотя бы в окошке isql... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2007, 17:28 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
bla-bla-bla (так сказала моя жена)))) По сути вопроса: То, что нужно автору, делется через ХП с передачей одного параметра. В этот параметр запихиваете все свои параметры с прикладного уровня, формат параметра может быть XML, а тип данных - строка. Внутри процедуры в зависимости от своих параметров, распаковынных из единственного, делается анализ и выполяется тот или иной функционал и/или разные запросы. Таким образом, задача по анализу SQL преобразуется в задачу синтеза запроса. Спросите для чего нужно запаковывать все параметры в один? А для того, чтобы абстрагироваться от их количества/типов/наличия и реализовать фактически на стороне сервера БД, сервер логики. Иногда, правда, можно не запаковывать все параметры в один, а передавать их явно. Так можно и нужно делать не только для изменения сортировки, а для всего прочего, что может быть логически объединено в однотипный вызов одной ХП (или нескольких разных). Согласитесь, проще не морочиться с анализом синтаксиса запросов, а передавать необходимые флажки в ХП, а на той стороне осуществить необходимую реализацию запроса. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2007, 00:25 |
|
||
|
ASA SQL parser
|
|||
|---|---|---|---|
|
#18+
iLLerТо, что нужно автору, делется через ХП с передачей одного параметра.Мне не показалось, что автору нужно именно это. iLLerТак можно и нужно делать не только для изменения сортировки, а для всего прочего, что может быть логически объединено в однотипный вызов одной ХП (или нескольких разных).Да, хранимка с параметром типа "работать по алгоритму номер Х", это действительно очень удобная штука, но к парсингу SQL она все же отношения не имеет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2007, 18:49 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34464535&tid=2012143]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 249ms |
| total: | 419ms |

| 0 / 0 |
