![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Многострочный запрос [D7, IB6.x]
_Narayan_ © (2003-04-25 09:55:00)Какой компонент с закладки InterBase может выолнять запрос из нескольких операторов ? И как его поднастроить, надо.
_Narayan_ (2003-04-25 12:38:00) [1]2 Zacho
не, не надо :)
а проблемы уже давно нет
см. _Narayan_ (25.04.03 11:15)
MsGuns (2003-04-25 12:36:00) [2]Кстати, ИМХО, неплохое решение: Zacho © (25.04.03 12:24)
Если не нравится, напиши свой парсер текстовых скриптов и процедуру запуска такого скрипта.
Но, все равно, ХП с этим справляется куда эффективнее. И не трабла, что в восьми городах - хоть в восьмидесяти. Все равно ж ты будешь пачи туда слать. Вот и закинь в пач прожку или батник для создания нужной ХП. И все дела. Кстати, в дальнейшем при изменении алгоритма запросов не придется вообще ворошить проги,- достаточно просто рихтануть соотв.ХП и выслать пач с их переопределением (или созданием)
Zacho (2003-04-25 12:24:00) [3]
> _Narayan_ (25.04.03 12:11)
Ну и в чем конкретно проблема ? Запускай из программы IBEScript.exe myscript.sql
Надеюсь, как пользоваться CreateProcess (или ShellExecute) писать не надо ?
_Narayan_ (2003-04-25 12:23:00) [4]2 Соловьев
>читай внимательно ответы.
аналогично...
Соловьев (2003-04-25 12:15:00) [5]читай внимательно ответы.
> Надо скрипт выполнить из программы (скрипт в обычном текстовом
> файле)
> Zacho © (25.04.03 11:00)
>
> > Zacho © (25.04.03 10:58)
>
> Извиняйте, ошибся. IBEScript.exe
_Narayan_ (2003-04-25 12:11:00) [6]2 Наталия
Да может у меня и не никакой проблемы...
Я не хочу обходиться без генерации метаданных в программе.
Повторяю
Надо скрипт выполнить из программы (скрипт в обычном текстовом файле)
Неужели не понятно.
А если вы этого не делали никогда, так зачем тут вобще свои реплики вставлять.
Best regards.
Соловьев (2003-04-25 12:10:00) [7]2 _Narayan_
Вот ты пишешь
> _Narayan_ (25.04.03 10:20)
> 2 Anatoly Podgorestky
> ceate table например
И хочешь чтобы тут тебе написали код, да еще разжевали. Просто можно же было показать, что вот делаю так - код,компоненты и какие ошибки.
Если ты думаешь что все тут просто жаждут решать за кого-то его проблемы, то ты ошибаешся.
Наталия (2003-04-25 12:06:00) [8]_Narayan_ (25.04.03 12:02)
Да не горячись ты так. На самом деле никто не хочет тебя обидеть или оскорбить. Ты бы описал свою проблему поподробнее. Может, там действительно можно обойтись без генерации метаданных в программе.
_Narayan_ (2003-04-25 12:06:00) [9]2 Sergey13
А кто говоорил о зашивании в программу изменений структуры данных
См. _Narayan_ (25.04.03 10:20)
Johnmen (2003-04-25 12:02:00) [10]>Наталия ©
>NickBat ©
Ж;^)
Просто юношеский максимализм мешает автору нормально вести диалог...:)
_Narayan_ (2003-04-25 12:02:00) [11]2 Наталия
Многоуважаемая Наталья, не просто вылечить занозу, когда
доктор один, а пальцы с занозами по восьми городам разбросаны.
Может вам лучше в тетрис играть ?
NickBat (2003-04-25 11:56:00) [12]> Наталия © (25.04.03 11:52)
Блеск!! :)) И глваное - в тему!
Наталия (2003-04-25 11:52:00) [13]Вспоминается:
-Каким способом мне лучше всего отрубить себе палец?
-Зачем отрубать? Может, лучше вылечить его?
-А разве заноза лечится?
-Конечно, лечится!
-Нет, у меня очень большая и больная заноза! Вы мне тут без понтов скажите, как всё-таки лучше палец-то отрубить?
(c) sniknik
Sergey13 (2003-04-25 11:49:00) [14]2_Narayan_ (25.04.03 11:15)
>Интересно, в каком месте он не неудачный.
А в том месте, что какое то время действительны оба вида паспортов. В дальнейшем надо хранить и старые данные. Кроме паспорта РФ для удостоверения личности может применяться еще куча разных документов (например военный билет или паспорт другого государства). Для такого рода реквизитов (не несущих в своем составе полезной информации) больше подходит просто строка + тип документа.
Хотя если твоя программа генерит паспортные номера, тогда конечно...
В любом случае - изменение структуры данных зашивать в программу, ИМХО, не есть гут.
_Narayan_ (2003-04-25 11:30:00) [15]2 MsGuns
Способ, конечно не из тех, что потрясает воображение, но всё равно спасибо.
MsGuns (2003-04-25 11:15:00) [16]"Расчеты" на клиенте, т.е. последовательность SQL-операторов (например, изменение в нескольких таблицах по одному оператору UPDATE/INSERT на каждую) я делаю программно так:
1. Записываю операторы (заранее отлаженные, к примеру, в IBExpert), в спец.подкаталог каталога с gdb. Затем в соотв.процедуре (обработчике) проги "поднимаю" их по очереди и через IBSQL запускаю.
2. Добавляю или в DataModule или в спец.заведенный для этой цели Unit запросы как TStrings, там же их и заполняю (если в DataModule, то в событии OnCreate). Процедура запуска поочередно записывает это списки в IBSQL/IBQuery (если надо параметрическая настройка) и выполняет.
А вообще всю подобную алгоритику, ИМХО, надо "вписывать" в логику сервера (ХП, триггера), однако по разным причинам не всегда это возможно
_Narayan_ (2003-04-25 11:15:00) [17]2 Zacho
Спасибо. Хоть кто-то по делу говорит.
2 Sergey13
Интересно, в каком месте он не неудачный.
Соловьев
Телепатом быть не надо. См. _Narayan_ (25.04.03 10:20)
Sergey13 (2003-04-25 11:01:00) [18]2_Narayan_ (25.04.03 10:30)
>2 Наталия
>Время идет, всё меняется - формат номера пасспорта, например.
ИМХО, неудачный пример. И Наталья в этом случае права.
Zacho (2003-04-25 11:00:00) [19]
> Zacho © (25.04.03 10:58)
Извиняйте, ошибся. IBEScript.exe
Zacho (2003-04-25 10:58:00) [20]
> _Narayan_ (25.04.03 10:52)
Если тебе надо выполнить какой-либо оператор DDL (CREATE TABLE, ALTER TABLE, CREATE PROCEDURE и т.п.) то вполне подойдет TIBSQL (или TIBQuery),Соловьев правильно сказал.
Если надо выполнить последовательность операторов, т.е. скрипт - то можно использовать стандартный isql.exe или IBEScriptExecutive.exe из IBExpert. В IBX компонента для выполнения скриптов нет. Вроде бы есть в FIBPlus, но я с ними не работаю, т.ч. точно не знаю.