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

Вниз

Многострочный запрос   Найти похожие ветки 

 
_Narayan_   (2003-04-25 09:55) [0]

Какой компонент с закладки InterBase может выолнять запрос из нескольких операторов ? И как его поднастроить, надо.


 
Соловьев ©   (2003-04-25 09:58) [1]


> запрос из нескольких операторов

???


 
_Narayan_   (2003-04-25 10:01) [2]

Я имел ввиду, например создать хранимую процедуру (оч большую ;-) )


 
Наталия ©   (2003-04-25 10:04) [3]

ХП процедуру создавай используя другие инструменты: например, IBConsole или IBExpert.


 
_Narayan_   (2003-04-25 10:08) [4]

2 Наталья
Спасибо за дельный совет ;-) но связи с вопросом он не имеет


 
Anatoly Podgorestky   (2003-04-25 10:10) [5]

Может, только ты сначала скажи, что такое по твоей терминологии оператор?


 
Sergey13 ©   (2003-04-25 10:18) [6]

2_Narayan_ (25.04.03 09:55)
>Какой компонент с закладки InterBase может выолнять запрос из нескольких операторов ?
С указанной закладки, ИМХО, никакой. Потому что "запрос из нескольких операторов" это не запрос а скрипт. Тебе может быть поможет компонент SQLScript с закладки RxDBAware (если она у тебя есть 8-), или нечто похожее.



 
_Narayan_   (2003-04-25 10:20) [7]

2 Anatoly Podgorestky
ceate table например

Вобщем, надо скрипт выполнить из программы
(скрипт в обычном текстовом файле)


 
Соловьев ©   (2003-04-25 10:22) [8]

IBQuery, IBSQL не пробовал?


 
Наталия ©   (2003-04-25 10:23) [9]

А почему у тебя возникла необходимость в изменении метаданных во время работы программы? Чаще всего это свидетельствует о недостаточной проработке структуры базы.


 
_Narayan_   (2003-04-25 10:30) [10]

2 Наталия
Время идет, всё меняется - формат номера пасспорта, например.
По этому не надо в меня кидать недостаточность проработки...
Совет мне нужен, а не понты.

2 Соловьев
Пробовал - не то.
Либо пробовал не правильно. В таком случае подскажите как надо.


 
Anatoly Podgorestky   (2003-04-25 10:36) [11]

А для меня всегда операторами были + - and or


 
Mike Kouzmine ©   (2003-04-25 10:39) [12]

Возможно, не понты. Изменение метаданных тянет за собой, вероятно, изменение логики работы с базой.


 
Соловьев ©   (2003-04-25 10:41) [13]


> Либо пробовал не правильно. В таком случае подскажите как
> надо.

ну как пробовал? может ты забыл про волшебное слово ExecSQL?


 
_Narayan_   (2003-04-25 10:50) [14]

2 Anatoly Podgorestky
и зря

Оператор, 1) матем. понятие, означающее соответствие между элементами двух множеств X и Y, относящее каждому элементу х из Х нек-рый элемент y из Y. Эквивалентный смымс имеют термины: отображение, преобразование, функция. Обычно термин "Оператор" используется, когда X и Y - множества из фунуциональных пространств. 2) (В вычислит. технике) предписание в данном языке программирования, предназная. для задания нек-рого завершенного действия в процессе переработки информации...

Советский инцеклопедический словарь ;-)


 
_Narayan_   (2003-04-25 10:52) [15]

2 Соловьев
Оч смешно...

2 Mike Kouzmine
про изменение логики работы с базой я не спрашивал

неужели не ясно о чём речь


 
Соловьев ©   (2003-04-25 10:55) [16]

2 _Narayan_ (25.04.03 10:52)
я не телепат, как еще можно от тебя добиться реальных данных?
Не надо с сарказмом отвечать, если ты уже спрашиваешь, то удосужся предоставить максимум данных.


 
Zacho ©   (2003-04-25 10:58) [17]


> _Narayan_ (25.04.03 10:52)

Если тебе надо выполнить какой-либо оператор DDL (CREATE TABLE, ALTER TABLE, CREATE PROCEDURE и т.п.) то вполне подойдет TIBSQL (или TIBQuery),Соловьев правильно сказал.
Если надо выполнить последовательность операторов, т.е. скрипт - то можно использовать стандартный isql.exe или IBEScriptExecutive.exe из IBExpert. В IBX компонента для выполнения скриптов нет. Вроде бы есть в FIBPlus, но я с ними не работаю, т.ч. точно не знаю.


 
Zacho ©   (2003-04-25 11:00) [18]


> Zacho © (25.04.03 10:58)

Извиняйте, ошибся. IBEScript.exe


 
Sergey13 ©   (2003-04-25 11:01) [19]

2_Narayan_ (25.04.03 10:30)
>2 Наталия
>Время идет, всё меняется - формат номера пасспорта, например.
ИМХО, неудачный пример. И Наталья в этом случае права.


 
_Narayan_   (2003-04-25 11:15) [20]

2 Zacho
Спасибо. Хоть кто-то по делу говорит.

2 Sergey13
Интересно, в каком месте он не неудачный.

Соловьев
Телепатом быть не надо. См. _Narayan_ (25.04.03 10:20)


 
MsGuns ©   (2003-04-25 11:15) [21]

"Расчеты" на клиенте, т.е. последовательность SQL-операторов (например, изменение в нескольких таблицах по одному оператору UPDATE/INSERT на каждую) я делаю программно так:
1. Записываю операторы (заранее отлаженные, к примеру, в IBExpert), в спец.подкаталог каталога с gdb. Затем в соотв.процедуре (обработчике) проги "поднимаю" их по очереди и через IBSQL запускаю.
2. Добавляю или в DataModule или в спец.заведенный для этой цели Unit запросы как TStrings, там же их и заполняю (если в DataModule, то в событии OnCreate). Процедура запуска поочередно записывает это списки в IBSQL/IBQuery (если надо параметрическая настройка) и выполняет.

А вообще всю подобную алгоритику, ИМХО, надо "вписывать" в логику сервера (ХП, триггера), однако по разным причинам не всегда это возможно


 
_Narayan_   (2003-04-25 11:30) [22]

2 MsGuns
Способ, конечно не из тех, что потрясает воображение, но всё равно спасибо.


 
Sergey13 ©   (2003-04-25 11:49) [23]

2_Narayan_ (25.04.03 11:15)
>Интересно, в каком месте он не неудачный.
А в том месте, что какое то время действительны оба вида паспортов. В дальнейшем надо хранить и старые данные. Кроме паспорта РФ для удостоверения личности может применяться еще куча разных документов (например военный билет или паспорт другого государства). Для такого рода реквизитов (не несущих в своем составе полезной информации) больше подходит просто строка + тип документа.
Хотя если твоя программа генерит паспортные номера, тогда конечно...
В любом случае - изменение структуры данных зашивать в программу, ИМХО, не есть гут.



 
Наталия ©   (2003-04-25 11:52) [24]

Вспоминается:
-Каким способом мне лучше всего отрубить себе палец?
-Зачем отрубать? Может, лучше вылечить его?
-А разве заноза лечится?
-Конечно, лечится!
-Нет, у меня очень большая и больная заноза! Вы мне тут без понтов скажите, как всё-таки лучше палец-то отрубить?
(c) sniknik


 
NickBat ©   (2003-04-25 11:56) [25]

> Наталия © (25.04.03 11:52)
Блеск!! :)) И глваное - в тему!


 
_Narayan_   (2003-04-25 12:02) [26]

2 Наталия
Многоуважаемая Наталья, не просто вылечить занозу, когда
доктор один, а пальцы с занозами по восьми городам разбросаны.
Может вам лучше в тетрис играть ?


 
Johnmen ©   (2003-04-25 12:02) [27]

>Наталия ©
>NickBat ©

Ж;^)

Просто юношеский максимализм мешает автору нормально вести диалог...:)


 
Наталия ©   (2003-04-25 12:06) [28]

_Narayan_ (25.04.03 12:02)
Да не горячись ты так. На самом деле никто не хочет тебя обидеть или оскорбить. Ты бы описал свою проблему поподробнее. Может, там действительно можно обойтись без генерации метаданных в программе.


 
_Narayan_   (2003-04-25 12:06) [29]

2 Sergey13
А кто говоорил о зашивании в программу изменений структуры данных
См. _Narayan_ (25.04.03 10:20)


 
Соловьев ©   (2003-04-25 12:10) [30]

2 _Narayan_
Вот ты пишешь

> _Narayan_ (25.04.03 10:20)
> 2 Anatoly Podgorestky
> ceate table например

И хочешь чтобы тут тебе написали код, да еще разжевали. Просто можно же было показать, что вот делаю так - код,компоненты и какие ошибки.
Если ты думаешь что все тут просто жаждут решать за кого-то его проблемы, то ты ошибаешся.


 
_Narayan_   (2003-04-25 12:11) [31]

2 Наталия
Да может у меня и не никакой проблемы...
Я не хочу обходиться без генерации метаданных в программе.
Повторяю
Надо скрипт выполнить из программы (скрипт в обычном текстовом файле)

Неужели не понятно.

А если вы этого не делали никогда, так зачем тут вобще свои реплики вставлять.

Best regards.


 
Соловьев ©   (2003-04-25 12:15) [32]

читай внимательно ответы.

> Надо скрипт выполнить из программы (скрипт в обычном текстовом
> файле)


> Zacho © (25.04.03 11:00)
>
> > Zacho © (25.04.03 10:58)
>
> Извиняйте, ошибся. IBEScript.exe



 
_Narayan_   (2003-04-25 12:23) [33]

2 Соловьев

>читай внимательно ответы.

аналогично...


 
Zacho ©   (2003-04-25 12:24) [34]


> _Narayan_ (25.04.03 12:11)

Ну и в чем конкретно проблема ? Запускай из программы IBEScript.exe myscript.sql
Надеюсь, как пользоваться CreateProcess (или ShellExecute) писать не надо ?


 
MsGuns ©   (2003-04-25 12:36) [35]

Кстати, ИМХО, неплохое решение: Zacho © (25.04.03 12:24)
Если не нравится, напиши свой парсер текстовых скриптов и процедуру запуска такого скрипта.
Но, все равно, ХП с этим справляется куда эффективнее. И не трабла, что в восьми городах - хоть в восьмидесяти. Все равно ж ты будешь пачи туда слать. Вот и закинь в пач прожку или батник для создания нужной ХП. И все дела. Кстати, в дальнейшем при изменении алгоритма запросов не придется вообще ворошить проги,- достаточно просто рихтануть соотв.ХП и выслать пач с их переопределением (или созданием)




 
_Narayan_   (2003-04-25 12:38) [36]

2 Zacho
не, не надо :)

а проблемы уже давно нет
см. _Narayan_ (25.04.03 11:15)



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

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

Наверх




Память: 0.55 MB
Время: 0.013 c
14-46929
NetBreaker666
2003-04-25 15:06
2003.05.15
Админам:


3-46656
KDS
2003-04-24 18:20
2003.05.15
Использование


11-46676
Q_Boy
2002-08-12 16:37
2003.05.15
KOL и BMP


1-46772
aclon
2003-05-01 14:24
2003.05.15
запись числа десятичной дробью


1-46736
Great DAN
2003-05-05 06:21
2003.05.15
Выделить всю строку в StringGrid