powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Самогенерация SQL запроса
10 сообщений из 10, страница 1 из 1
Самогенерация SQL запроса
    #32045740
soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Возможно ли как-то создать процедуру в IB6, которая сгенерирует SQL запрос из таблиц как стринговую переменную и запустит ее на выполнение? Если возможно простой пример, как это сделать.

Заранее благодарен.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32045857
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос сгенерировать то можно, проанализировав словарь, но выполнить его невозможно (по крайней мере простыми средствами)
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32045967
soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если непростыми? Любые извращения только приветствуются.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32045975
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, что вобще в результате ты хочишь получить и как это можно использовать?
Если хочешь в процедуру имя таблицы передавать, то непонятно, что она должна возврашать и куда.
Если набор эквивалентных полей - то это можно IFами сделать.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32045986
soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужна функция, которая и строки, которая сгенирится в процессе работы процедуры запускать данный Sql запрос. Короче, в результате будет что-то типа AI.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32046129
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос данные возвращать куда-то должен.
Это тебе не обычный язык программироввания. Процедуры и триггеры все компилируемые и динамической памяти тут нет. Все процедуры могут возвращать только заранее определённые параметры и выполнять те запросы, которые в них откомпилированы. Т.е. даже если ты такую процедуру сделаешь, ты её использовать сможешь только на клиенте.
Я тебе написал, что простыми способами сделать этого нельзя т.к. не знаю как. Но теоретически можно сделать всё. Если извращения приветствуются - то вот тебе очень большое извращение: все процедуры в спец. двоичном формате также в словаре храняться, т.е. я думаю, что если разобраться со структурой BLR, то можно самому тело процедуры менять например в какой-то UDF и потом обратно записывать. Но тут проблемы с многопольз. доступом опять вылезут.
Вобщем, забудь о такой процедуре - бессмысленная это идея. Вызывать динамически сформированные запросы внутри процедуры НЕЛЬЗЯ в принципе. Такие задачи нужно решать с клиента.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32046219
soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему с помощью Prepare можно в SQL запросе компилировать SQL запрос.
Вообще-то мне еще бы не помешала возможность запускать SQL запросы асинхронно внутри SQL запроса(тоесть многопоточность), но это ни один SQL сервер скорее всего не поддерживает:((
А данные будут братся из таблиц и возвращатся в таблицы.

Я задал данный вопрос на других форумах, мне ответили, что например ORACLE и MSSql могут запускать запросы, сгенеренные из кусков строки. На IB тоже свет клином(даже есть такой язык:)) ) не сошелся.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32054226
shef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На самом деле Oracle поддерживает такие вещи, типа генерация на ходу того что хочу выполнить, и если честно в IB такого сильно не хватает, но в любом случае UDF, хоть и не удобно, но решает проблемы. У меня тоже маленькая проблема. Есть база из под 5 версии, в которой есть функция с параметром "Action". Эту функцию IB 6 напрочь не компилит, "Action" 'Action' не помогает, в принципе ерунда, но есть прога которая теперь не работает, исходников естественно нет. Мое мнение, что Oracle всем хорош, кроме цены, официально не поставишь, а так поимеют.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32054421
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал на сайте Firebird, что в версии 1.5 будет команда EXECUTE VARCHAR. Насколько я понимаю, это и есть вызов динамически сформированного запроса. Так что будем ждать.
...
Рейтинг: 0 / 0
Самогенерация SQL запроса
    #32054573
Привет!
Нельзя так делать.
Через UDF - только открывая второй, параллельный коннект. Это чревато...
EXECUTE VARCHAR не будет иметь возможночти возвращать данных - только INSERT или UPDATE.

Что касается самой постановки задачи (ИИ) - это все в сад, в сад :) Базы данных имеют немножко другую ориентацию и извращений не очень приемлют :-)

WBR,
Alexey
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Самогенерация SQL запроса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]