Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.01 c
1-1150905003
leonidus
2006-06-21 19:50
2006.08.06
Вопрос про указатели


2-1153405685
BFG9k
2006-07-20 18:28
2006.08.06
Хранение древовидных структур


2-1153074505
alexandrine
2006-07-16 22:28
2006.08.06
Сорри за простой, наверное вопрос...


8-1139150998
guitarist
2006-02-05 17:49
2006.08.06
ScreenMate


3-1148961704
ganda
2006-05-30 08:01
2006.08.06
Организация истории изменения таблицы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский