powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимальное решение
7 сообщений из 7, страница 1 из 1
Оптимальное решение
    #32001892
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста!
Создаю базу на SQL 7.0 - есть куча клиентов, у клиентов есть куча заказов.
Певое что пришло в голову для обработки заказов - при создании клиента создавать для него персональный VIEW и потом с его помощью работать с заказом (они должны время от времени меняться). Но выяснилось VIEW триггером не создать
нельзя его создать и процедурой

Как лучше поступить? Вытаскивать данные процедурой а потом записывать поверх старых очень не хочется!
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001896
ArtP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таких случаях и не надо создавать View для каждого клиента. Обычно создают одну View, одно из полей которой имеет значение кода клиента, for example

create table Clients (
code varchar(20) not null primary key,
descr varchar(60) null,
....
)

create table Orders (
id int not null primary key identity,
order_code varchar(20) not null,
client_code varchar(20) not null,
count int not null,
...
)

create view ClientOrdersView as
select
o.id,
c.code,
o.order_code,
o.count,
....
from
Clients c,
Orders o
where
c.code = o.client_code

чтобы получить заказы по клиенту Intel делают запрос типа

select * from ClientOrdersView where code = 'Intel' order by ...
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001904
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это все понятно смущает такой момент: если заказов 100000 то клиентск.приложению придется все их вытаскивать и выбирать по нужному коду, а хотелось бы чтоб VIEW выдал только необходимые записи - с нужным кодом. Это было бы возможно, если я буду создавать с клиентом и VIEW для него.
Подскажите, как действовать?
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001909
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что у вас за клиентская софтина? Судя по вопросу наверно Access. Да наверно еще и с прилинковаными таблицами. Это вообще не совсем клиент-сервер. Но скажу сразу: на клиент все данные вытаскивать и обрабатывать не нужно. Это задача сервера.
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001911
Илья
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, он самый - Access.
Но в качестве источника данных для формы я хочу использовать различные VIEW - для каждого клиента свой. Если это неправильно - подскажите плз, как сделать лучше!
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001915
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда то я делал это так: создавал запрс к серверу с парамеирами и указывал его в качестве источника записей формы. При открытии формы задавал необходимые параметры. Вот только такой запрос в аксессе не обновляемый. Но это не означает что нельзя редактировать данные. Их нельзя изменить только в этой форме. Как вариант - шли серверу SQL команды, а в форме говори Requery.
...
Рейтинг: 0 / 0
Оптимальное решение
    #32001932
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачу можно решить, используя таблицы с именем клиента и заведя одноимённые логины, а в VIEW сделать условие WHERE client = SYSTEM_USER. Конечно, если пользователей нужно различать, можно сделать таблицу, связываещую клиентов и пользователей и использовать в VIEW её.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Оптимальное решение
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]