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