![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в IBStoredProc1 сделать Open? [D7, MSSQL, Firebird]
Still Swamp © (2006-06-01 19:21:00)В ранее написанной базе на MSSQL к которой я подключался через ADO если выполнить ADOStoredProc.Open то благополучно открывлся запрос (если конечно сама SP на сервере возвращала данные а не только параметры). Это крайне удобно.
Сейчас я попытался точно такой же финт выполнить на FireBird через IBStoredProc.
Получаю ошибку, что для этого надо использовать IBQuery, что не очень хорошо - так как для этого надо писать само тело запроса на клиенте.
Как нить эта ситуация обходтся?
Johnmen (2006-06-02 21:28:00) [1]22 поста, а так и не ясно, что же такого чудесного не умеет FB1.5
Впрочем, не важно. Тема (какая, кстати?) закрыта...
Still Swamp (2006-06-02 16:00:00) [2]все... обсуждение закончено.
FireBird 1.5 попросту этого похоже не умеет.
Still Swamp (2006-06-02 15:56:00) [3]мне сказали в начале пути, что есть параметр asd в SP.
я вписал его в код.
потом пришел вася пупкин и с сохранением функционала SP добавил параметр asd1, притом что если в него придет NULL то SP отработает так же благополучно как и раньше. И будет она работать до тех пор пока у меня руки не дойдут передавать asd1. неужели это столь сложно понять?
Sergey13 (2006-06-02 15:49:00) [4]2[4] Still Swamp (02.06.06 12:03)
StoredProc.StoredProcName:='MY_SP_PROC';
StoredProc.Prepare; //получаю список параметров
StoredProc.ParamByName('asd').Value:='my string';//прописываю параметр
Откуда выделенное то в коде? Ты же прочитал неизвестный тебе список параметров. 8-)
И как это согласуется с
>Это чтож - после добавления нового параметра в SP в базе мне исполняемый файл перекомпилить.
saxon (2006-06-02 15:42:00) [5]Посмотри тут
http://forum.ibase.ru/phpBB2/viewtopic.php?p=9183&sid=38ef89feef13db6a374449e050cf7f83
Danilka (2006-06-02 15:41:00) [6][16] Still Swamp (02.06.06 15:26)
> И поддерживать ее буду для разных клиентов не я.
А кто будет поддерживать базу для разных скуль-серверов?
Уж сильно MSSQL отличается от FB.
Я-бы рекомендовал MSDE+нормальный инсталлятор твоей программы, который установит саму программу, MSDE и базу.
Still Swamp (2006-06-02 15:28:00) [7]Ну скажите же что это не возможно. И вопрос будет снят. Что вы занялись обсуждением моих забот.
Still Swamp (2006-06-02 15:26:00) [8]Начали по второму кругу.
Потому что понадобилась локальная база для отдельно взятого клиента и нет никакой возможности расставлять MSSQL на машины пользователей.
И еще раз повторюсь, люди которые пишут базу они ДРУГИЕ - это не я. Я не SQLщик. И поддерживать ее буду для разных клиентов не я. И вопросы по базе не ко мне будут.
Danilka (2006-06-02 15:08:00) [9][10] Still Swamp (02.06.06 13:16)
> Не... ну на MSSQL + ADO это все балгополучно 6 лет уже существует.
> Никто не жужит.
Скажи, родной, а зачем тебе FB, если MSSQL 6 лет уже как не жужит?
Still Swamp (2006-06-02 14:37:00) [10]FB + ADO
как это сделать?
Desdechado (2006-06-02 13:50:00) [11]MSSQL + ADO савсэм нэ равноFireBird + IBX
технологии разные, разные идеи и принципы
это как гаечным ключом пытаться гвозди забивать
DrPass (2006-06-02 13:38:00) [12]Ну сделай то же самое на FB + ADO, что тебе мешает-то?
Still Swamp (2006-06-02 13:28:00) [13]Таки хотя бы скажите что ЭТО НЕ ВОЗМОЖНО... тоже вариант ответа будет.
Still Swamp (2006-06-02 13:16:00) [14]Не... ну на MSSQL + ADO это все балгополучно 6 лет уже существует. Никто не жужит.
Как такое с FB сделать?
Johnmen (2006-06-02 12:35:00) [15]
> Да какая разница. Добавили программисты на БД новый параметр
> входной или выходной - не важно.
Блажен, кто верует.
Still Swamp (2006-06-02 12:34:00) [16]SP пишут одни люди, а клиент другие.
Между ними есть договоренность, что в SP можно добавлять новое, но чтоб старое работало.
У меня очень не мало рабочих мест в том числе на удаленных и беговых машинах. На всех стоят разной давности клиенты. Если я начну после изменения в БД ,быстренько обновлять клиенты на всех удаленных машинах - это будет вешалка.
Еще раз... изменеия на БД у меня не влекут изменения в клиенте, по крайней мере очень не сразу, так как это технически невозможно.
Desdechado (2006-06-02 12:26:00) [17]> после добавления нового параметра в SP
как буд то ты его сейчас не перекомпилишь?
ведь значения параметрам надо присваивать (иначе нафига они тогда?)
а присвоение - отдельные строки в коде
и по любому тебе нужно знать их имена, поэтому "тут я каким то святым духом должен перечислить параметры для этой SP" - демагогия
Still Swamp (2006-06-02 12:23:00) [18]Да какая разница. Добавили программисты на БД новый параметр входной или выходной - не важно.
Он у меня после Prepare благополучно вычитался и остался в ими определенном дефаултном значении. Я его не трогал.
SP выполнилась и все счастливы.
Johnmen (2006-06-02 12:10:00) [19]Запрос к ХП это стандартное, я подчёркиваю, СТАНДАРТНОЕ, получение НД, возвращаемого ХП.
> Это чтож - после добавления нового параметра в SP в базе
> мне исполняемый файл перекомпилить. Полный Пэ c особым цинизмом.
Какого параметра? Вх. или вых.?
Still Swamp (2006-06-02 12:03:00) [20]Давайте на примерах разберем.
Для идеального случая
StoredProc.StoredProcName:='MY_SP_PROC';
StoredProc.Prepare; //получаю список параметров
StoredProc.ParamByName('asd').Value:='my string'; //прописываю параметр
StoredProc.Open; // открываю
//Читаю результат
StoredProc.Close; // закрываю
При этом меня не заботит текст запроса, обязательность передачи параметров и так далее и тому подобное.
Через зад автагеном.
IBQuery1.SQL:='select * from 'MY_SP_PROC(тут я каким то святым духом должен перечислить параметры для этой SP)';
Дале я должен опять каким то святым духом заполнить список IBQuery1.Params. Я конечно понимаю, что это реально. И что можно сразу в текст запроса прописать значения параметров. Но этож извините вообще разврат полнейший. Это чтож - после добавления нового параметра в SP в базе мне исполняемый файл перекомпилить. Полный Пэ c особым цинизмом.