![]() |
|
Модераторы: Akella |
![]()
|
|
| Aprol |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
1)Давайте все же обсудим что же лучше для использования например такого кода:
То есть выборка из таблицы. Что является плюсами и минусами у этих способов получения данных? 2)и почему нельзя создать представление с параметром?
|
||||
|
|||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: нет Всего: 51 |
По-моему не совсем корректно поставлен вопрос.
Что лучше использовать, в большей степени зависит от того, что именно нужно получить. Если нужно просто выбрать все записи только из одной таблицы без фильтров, то лучше всего прямой select * from table1 Если нужно из одной таблицы выбирать несколько наборов данных по не изменяющимся критериям, то лучше наверное использовать VIEW. А если при выборке нужно помимо данных из основной таблицы, эти данные нужно ещё и обработать(в зависимости от каких-либо условий(if .. then)), то лучшим вариантом будут процедуры. |
|||
|
||||
| Aprol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
У меня четвертый вариант
выборка из нескольких таблиц и изменяющиеся параметры фильтрации |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: нет Всего: 51 |
Тогда есть ещё 2 варианта: 1) Фильтр конструирется в приложении в виде строки для Where (...). Т.е. фактически, приложение само конструирует запрос. Выборка может идти из чего угодно, хотя сложные/медленные stored procedure лучше не использовать. 2) Создаётся Stored Procedure, в которая и возвращает отфильтрованный набор данных. Фильтры передаются в процедуру как входные параметры. |
|||
|
||||
| Aprol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
вся проблема что я не могу получить выборку в клиентском приложении .в delphi не могу замутить
можно было бы сделать вот так
но мне сказали так плохо. |
|||
|
||||
| Anark1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 622 Регистрация: 15.12.2006 Где: RF -> Moscow Репутация: нет Всего: 11 |
Aprol,
можно задачу? В дельфи достаточно средств для работы с InterBase. И почему не можешь получить эту самую выборку? Для работы с ХП есть TIBStoredProc. Для выполнения запросов TIBDataSet. |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Почему плохо? Если тебе нужны все поля, пиши *, если не все, то пиши в запросе конкретно какие нужны -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Aprol, ничё не понял, то ты одно хочешь обсудить, то потом у тебя какой-то четвёртый вариант, ты определись, что ты хочешь знать
|
|||
|
||||
| Aprol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
Упс я под table1 имел ввиду хранимую процндуру.
Просто нужна выборка, использовать query не хочется ввиду большей безопасности хр. процедур. Вот поэтому такой код будет приемлим?
|
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
а чем опасен
|
|||
|
||||
| Aprol |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 259 Регистрация: 15.6.2007 Репутация: нет Всего: нет |
Ну вот я использую например ibquery, а разве какой-нибудь злоумышленник не сможет изменить запрос и взять конфиденциальные данные из базы?
|
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
это тоже запрос - запрос результатов процедуры -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |