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

Вниз

Как в 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.046 c
2-1153286494
MSVN
2006-07-19 09:21
2006.08.06
HTML -> EXE ?


2-1153396795
RobinBad
2006-07-20 15:59
2006.08.06
Чтение из файла по строкам


1-1150981906
Михаил2
2006-06-22 17:11
2006.08.06
При запуске компилятора появляется только форма


3-1148968997
barakuda
2006-05-30 10:03
2006.08.06
Настройки БатчМув


2-1153166950
Vivax
2006-07-18 00:09
2006.08.06
Palladinu