Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> представление vs просто_запрос vs хр_процедура 
:(
    Опции темы
Aprol
Дата 26.8.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



1)Давайте все же обсудим что же лучше для использования например такого кода:
Код

select * from table1;

То есть выборка из таблицы.
Что является плюсами и минусами у этих способов получения данных?
2)и почему нельзя создать представление с параметром? 
Код

create view(id)
as
select id from Tabl1 where age=:parametr1;

PM MAIL   Вверх
Bose
Дата 26.8.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: нет
Всего: 51



По-моему не совсем корректно поставлен вопрос. 

Что лучше использовать, в большей степени зависит от того, что именно нужно получить. Если нужно просто выбрать все записи только из одной таблицы без фильтров, то лучше всего прямой select * from table1 

Если нужно из одной таблицы выбирать несколько наборов данных по не изменяющимся критериям, то лучше наверное использовать VIEW.

А если при выборке нужно помимо данных из основной таблицы, эти данные нужно ещё и обработать(в зависимости от каких-либо условий(if .. then)), то лучшим вариантом будут процедуры.

PM MAIL WWW Skype   Вверх
Aprol
Дата 26.8.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



У меня четвертый вариантsmile
выборка из нескольких таблиц и изменяющиеся параметры фильтрации
PM MAIL   Вверх
Bose
Дата 26.8.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: нет
Всего: 51



Цитата(Aprol @  26.8.2007,  18:04 Найти цитируемый пост)
выборка из нескольких таблиц и изменяющиеся параметры фильтрации

Тогда есть ещё 2 варианта:
1) Фильтр конструирется в приложении в виде строки для Where (...). Т.е. фактически, приложение само конструирует запрос. Выборка может идти из чего угодно, хотя сложные/медленные stored procedure лучше не использовать. 
2) Создаётся Stored Procedure, в которая и возвращает отфильтрованный набор данных. Фильтры передаются в процедуру как входные параметры. 
PM MAIL WWW Skype   Вверх
Aprol
Дата 26.8.2007, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



вся проблема что я не могу получить выборку в клиентском приложении .в delphi не могу замутить
можно было бы сделать вот так

Код


 select * from table1;  

но мне сказали так плохо.
PM MAIL   Вверх
Anark1
Дата 27.8.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 622
Регистрация: 15.12.2006
Где: RF -> Moscow

Репутация: нет
Всего: 11



Aprol,
можно задачу?
В дельфи достаточно средств для работы с InterBase.
И почему не можешь получить эту самую выборку?
Для работы с ХП есть TIBStoredProc. Для выполнения запросов TIBDataSet.



--------------------
Enjoy yourself, still you can...;)

user posted image

user posted image
PM MAIL ICQ   Вверх
ksili
Дата 1.9.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Цитата(Aprol @  26.8.2007,  23:43 Найти цитируемый пост)
код SQL
1:

 select * from table1;  


но мне сказали так плохо. 


Почему плохо? Если тебе нужны все поля, пиши *, если не все, то пиши в запросе конкретно какие нужны


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Akella
Дата 7.9.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Aprol, ничё не понял, то ты одно хочешь обсудить, то потом у тебя какой-то четвёртый вариант, ты определись, что ты хочешь знать  smile 
PM MAIL   Вверх
Aprol
Дата 9.9.2007, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Упс я под table1 имел ввиду хранимую процндуру.
Просто нужна выборка, использовать query  не хочется ввиду большей безопасности хр. процедур.
Вот поэтому такой код будет приемлим?
Код

select * from procedure1;

PM MAIL   Вверх
Akella
Дата 10.9.2007, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



а чем опасен
Код
select * from Table1;
?
PM MAIL   Вверх
Aprol
Дата 11.9.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



Ну вот я использую например ibquery, а разве какой-нибудь злоумышленник не сможет изменить запрос и взять конфиденциальные данные из базы?
PM MAIL   Вверх
ksili
Дата 11.9.2007, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: нет
Всего: 17



Код

select * from procedure1;

это тоже запрос - запрос результатов процедуры


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Akella
Дата 12.9.2007, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(ksili @  11.9.2007,  08:49 Найти цитируемый пост)
это тоже запрос - запрос результатов процедуры 

конечно, можно же и внутренности процедуры изменить  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.