Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.10.2012, 12:53
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Delphi+Oracle

Здравствуйте!
Сразу прошу прощения за чайниковский вопрос. Задача такова: необходимо создать файл отчёта в Excel-e. Нюанс в том, что в результирующей таблице порядка 50 столбцов и порядка 20 тыс. строк. Вводить данные будут примерно 50 пользователей. У меня под рукой на сети сервер под Linux, на котором развёрнут Oracle - это мне предоставил сисадмин. Я немного почитал документацию. Табличное пространство создать смогу, таблицу туда засунуть тоже смогу, пользователей создать смогу, последующий экспорт в Excel - легко, достаточное количество компьютеров имеется в наличии. Вопрос: когда пол-ста бухгалтеров, экономистов, финансистов компании одновременно подконнектятся к базе и будут вводить каждый свои позиции, какие возможны проблемы?
Ответить с цитированием
  #2  
Старый 02.10.2012, 13:12
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Смех

при правильном подходе никаких.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 02.10.2012, 13:18
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
при правильном подходе никаких.

а при неправильном их будет великое множество

Just Try
__________________
Код сырец
Ответить с цитированием
  #4  
Старый 02.10.2012, 13:20
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Если все через транзакции будет работать, то тут будет выстраиваться очередь и одновременно два юзверя не смогут менять данные в БД.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #5  
Старый 02.10.2012, 13:24
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Если все через транзакции будет работать, то тут будет выстраиваться очередь и одновременно два юзверя не смогут менять данные в БД.

В этом случае правильнее будет селективные транзакции вешать на ReadCommitedReadOnly - эта транзакция всегда стартует подтверждённой, а транзакции на изменение, добавление, удаление реализовывать через хранимые процедуры с параметрами
__________________
Код сырец
Ответить с цитированием
  #6  
Старый 02.10.2012, 14:26
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Delphi+Oracle

Я снова извиняюсь - возможно буду говорить глупости. На сервере под Oracle создаётся база. Одновременно в эту базу лезет много народу и каждый вводит информацию. Каждая запись имеет признак вводившего её пользователя, т.е. пользователь имеет право,если потребуется, удалять и редактировать только записи со своим признаком. Что такое транзакции и что такое ReadCommitedReadOnly я ещё пока не знаю, а надо? Без проникновения в тонкости Oracle никак? Я хотел ехать только на технологии ADO из Delphi7, используя компонент ADOQuery.
Ответить с цитированием
  #7  
Старый 02.10.2012, 15:08
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Red_Garry
Я снова извиняюсь - возможно буду говорить глупости. На сервере под Oracle создаётся база. Одновременно в эту базу лезет много народу и каждый вводит информацию. Каждая запись имеет признак вводившего её пользователя, т.е. пользователь имеет право,если потребуется, удалять и редактировать только записи со своим признаком. Что такое транзакции и что такое ReadCommitedReadOnly я ещё пока не знаю, а надо? Без проникновения в тонкости Oracle никак? Я хотел ехать только на технологии ADO из Delphi7, используя компонент ADOQuery.

ADO не самое лучшее решение доступа к данным в плане быстродействия, я бы посоветовал DevArt ODAC http://www.devart.com/ru/ для доступа к данным и для вывода EhLib http://ehlib.com/RUS/default.htm
+ ко всему тебе нужно уметь правильно составлять SQL запросы по этому поводу в сети много информации,

транзакция это такое существо которое стартует когда ты что-то мутишь с данными, в пределах этой транзакции ты чё-то делаешь после чего ты можешь либо подтвердить транзакцию и данные сохраняться, либо откатить её и вернуть всё на место, у транзакции есть уровни изолированности, типа кто может и что может делать с данными когда чужая транзакция открыта, вот простенькое описание http://oracle-blog.ru/blog/novice/17.html управление транзакциями реализуется на уровне компонентов, у меня допустим данные селектятся используя уже подтверждённые транзакции, тем самым я никому не мешаю, ну и сохраняются с помощью процедур (при правильной структуре) за доли секунд после чего подтверждаю транзакцию и опять же ни кому не мешаю работать.
Не знаю как в Oracle но в Firebird/InterBase незавершённые транзакции увеличивают объём хранимых данных и физ. размер БД и тормозят выборку а следовательно и работу персонала
__________________
Код сырец
Ответить с цитированием
  #8  
Старый 02.10.2012, 15:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Радость

Цитата:
Сообщение от Red_Garry
Каждая запись имеет признак вводившего её пользователя, т.е. пользователь имеет право,если потребуется, удалять и редактировать только записи со своим признаком.
тогда при практически любом подходе никаких проблем.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #9  
Старый 02.10.2012, 15:59
Red_Garry Red_Garry вне форума
Начинающий
 
Регистрация: 07.07.2011
Сообщения: 126
Репутация: 10
По умолчанию Delphi+Oracle

Большое спасибо за ответы
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:09.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025