Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну крайне редко использую.
Или я туп или что-то не устраивает. База данных то где? Любая БД доступна глобально? Я так понял. В приватной ДС только таблицы? А вот хранимки в разных ДБ/ДС как разрулить? Исправлено 1 раз(а). Последнее : Taran, 26.04.19 03:55 |
Re: Приватная DataSession | |
---|---|
Mitchman Сообщений: 9978 Откуда: Николаев Дата регистрации: 24.05.2002 |
в принципе ничем приватная не отличается от глобальной - просто в приватной это как отдельно открытая программа
где можно номер приватной передавать - с одним номером это одна сессия ЗЫ основное удобство, что ты например для окна используешь приватную - тогда все курсоры будут существоавть пока существует сесия, все открытые таблицы, только в этой сесии открыты и закроются с закрытием сессии, если тебе надо открыть еще окно в этой сессии передай ее номер и открывай с тем же номером ------------------ - «свидомые украинцы озабочены не столько созданием украинской культуры, сколько уничтожением русской» - Олесь Бузина Исправлено 1 раз(а). Последнее : Mitchman, 26.04.19 03:58 |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Да, Андрей, я это понимаю.
Но зачем оно мне? Как я ранее писал, на открытие таблиц "значительные" накладные расходы не позволительны. Пока система отработает доступ, антивирусы всякие. Банальный справочник номенклатуры с ценами составляет более десяти таблиц. Собственно вопрос возник из-за: Пытаюсь открыть таблицу. А она "битая". Таблица не открывается. CursorGetProp('DataBase') отработать не могу. А БД открывается. Как ее отследить и закрыть? Кроме как перед USE заюзать ADatabases() и потом сравнивать. |
Re: Приватная DataSession | |
---|---|
Mitchman Сообщений: 9978 Откуда: Николаев Дата регистрации: 24.05.2002 |
а try?
------------------ - «свидомые украинцы озабочены не столько созданием украинской культуры, сколько уничтожением русской» - Олесь Бузина |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
TRY конечно есть.
Собственно несколько доделывается "ремонтер" таблиц и БД. Таблицы, как и сама БД смотрятся и чинятся как родными средствами Фокса, так и на низком уровне. У клиента софтина крутится 20+ лет. Админа у них нет. Сама БД не совпадает с оригиналом, файлы CDX частично пропали, ахтунг полный. У меня есть "ремонтер" в комплекте, но возникли ошибки, которых я никогда не встречал и они не решались ранее. Сказать клиенту про "булочки на завтрак без изюма, а админа возьми" я не могу. |
Re: Приватная DataSession | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
начал с программирования и теперь про администрирование...
ты уж там определись каких советов тебе накидать нада ------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Наоборот несколько, уважаемый Канат. Кстати, чета редко заходишь. Без Б. Я паял и рулил по железу. А потом данные "пропали" и вынужден был "вникнуть в IDX, CDX". На ВЦ ЦБ поднимал вопрос о СисАдмине..... Труля...ля.. ля.. Давно. |
Re: Приватная DataSession | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
все равно не понятно
вот какая связь между приватной сессией и отсутствием денег на аккумулятор? ------------------ Мойте ноги, моя ноги вы моете и руки Исправлено 1 раз(а). Последнее : Foxtrot, 26.04.19 11:12 |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вот же балбес ;) Мало что как у них, я им не судья. Мне нуно сделать. И я хочу сделать "красиво". В принципе все решено. Вопрос скорее теоретический, ибо... Да знаю я..знаю.. А вдруг и не все? |
Re: Приватная DataSession | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
не забудь после всех экспериментов бекап настроить
------------------ Мойте ноги, моя ноги вы моете и руки |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Спасибо, дружище. Особенно за "после". ;) |
Re: Приватная DataSession | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Есть инструмент. Пользоваться ли им или делать то, что делает этот инструмент, но своими силами - вопрос личных предпочтений.
Если есть вопрос и по нему нет явного описания в справке, то лично я делаю тестовые примеры и на основании этих примеров делаю выводы База данных в Private Data Session Соответственно, для корректной работы с базой данных в Private Data Session лично я делаю так 1. Открыть базу данных при запуске приложения в Default Data Session. Остается открытой все время работы приложения 2. При инициализации Private Data Session даю команду на установку базы данных в качестве текущей (SET DATABASE TO). Подчеркну - не открыть, а установить текущей С моей точки зрения использование Private Data Session вполне оправдано. Но если не хочешь - не используй. Никто же не заставляет |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Да, Владимир, конечно ряд тестов были проделаны.
Но ничего хорошего не дали. Т.е. база данных всегда открывается в глобальной сессии и доступна всегда. Банально. Команда aUsed() возвращает массив таблиц открытых в текущей сессии. А aDatabases() массив открытых всех БД. Т.е. вопрос сессии данных в отношении к БД даже не рассматривается. Что довольно разочаровывает. Изоляция нарушается. Не аккуратненько вышло у разрабов. Никакими средства не удается автоматически закрыть БД, открытую в приватной ДС. Открытую что явно через OPEN DATABASE, что автоматом при USE. При закрытии сессии таблицы закрываются. А БД остается открытой всегда. Т.е. "ручками" надо отслеживать. Т.е. выделенное ниже не верно.
|
Re: Приватная DataSession | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Вы о чем тут? ) Олег - и сам все знает. DS - редкая фигня...
|
Re: Приватная DataSession | |
---|---|
Владимир Максимов Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
А зачем ее закрывать-то?
По сути, база данных - это некий аналог процедурного файла. Причем глобального. Ну и смысл открывать/закрывать процедурный файл, который нужен везде. В любом месте приложения. Любое обращение к таблице, включенной в базу данных - это неизбежное обращение к контейнеру базы данных Сама постановка вопроса не понятна. Чего в результате хотим добиться? Повторюсь. Я открываю контейнер базы данных при открытии приложения и он остается открытым на протяжении всего времени работы с приложением. Вне зависимости от того, будут ли формы открываться в Private Data Session или в Default. Чем не устраивает такой способ работы? ------------- Контейнер базы данных - не есть сами данные. Это данные о данных. Метаданные. Вполне логично, что они не включаются в концепцию сеанса данных. Тут, конечно, можно поспорить, но, с моей точки зрения, поведение вполне себе логичное. Не вижу никаких причин изолировать в рамках сеанса данных еще и метаданные ------------- Насчет того, что база данных не закрывается лично у меня этому может мешать только открытый проект (pjx) в который эта база данных включена. Т.е. до начала экспериментов надо сначала через кнопку Close в самом проекте закрыть базу данных и перейти на какую-нибудь другую закладку проекта, где эта база данных не видна Т.е. у меня база данных как раз закрывается. Остается она открытой только в том случае, если есть что-то, что мешает ее закрытию. Что-то, что ее использует. Хотя, конечно, поскольку концепция контейнера базы данных вне концепции сеанса данных, то на автоматическое закрытие лучше не рассчитывать. Исправлено 3 раз(а). Последнее : Владимир Максимов, 07.05.19 01:04 |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
В данном конкретном моем случае. Некоторые таблицы в каталоге испортились. Причем не все они могут быть в БД. Могут быть и свободные. И БД в каталоге может быть не одна. Это вероятно плохо, но не я архитектор, или я, но пару десятков лет назад. Для анализа первым этапом пытаюсь открыть таблицу как таблицу. 1.Если таблица открылась. Прочитал CursorGetProp('DataBase') - узнал имя БД. Таблицу закрыл. БД закрыл. А это возможно только через.
2.Таблицу открыть не получилось из-за нарушения целостности. При этом БД открывается. CursorGetProp('DataBase') отработать не могу, поскольку таблица не открылась. Соотв. активной БД сделать не могу и закрыть ее не могу. Естественно можно пойти иным путем, более правильным. Сканировать файлы.DBC. Т.е. открывать БД, делать активной, запрашивать ADBObjects(array, 'TABLE') и уже по массиву пытать открыть таблицы из БД. Запоминать список таблиц входящих в БД. Потом все-таки сканировать каталог в поисках DBF, проверять через ранее запомненный список таблиц из БД, была ли таблица проверена ранее. Если нет, то считаем что она свободная... Ну и т.д.. Ну либо, как я выше и писал, при попытке открытия таблицы запоминать количество открытых БД через ADatabases() и в случае сбоя можно анализировать по новой ADatabases() и соотв. ... ну понятно... Второй случай необходимости переключать БД. Есть некоторое основное приложение со своей БД. Тут все понятно. БД открыли и далее по предпочтениям, хоть с использованием приватных ДС, хоть без. Но. Есть некоторое "сервисное" редкоиспользуемое приложение(модуль). Ну, например, отправка СМС. Он работает исключительно со своей БД, но может запускаться в основном сеансе. Может использоваться в разных приложениях, использующих разные БД. Поэтому модуль-СМС работает со своей БД независимо от основного приложения. P.S. Оно понятно, что в настоящее время вопрос скорее теоретический, возможно даже для курилки. Собственно нет проблем. Исправлено 1 раз(а). Последнее : Taran, 07.05.19 05:26 |
Re: Приватная DataSession | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
1) Обработка ошибок (а не попытка заранее выяснить вызовет ли ошибку открытие той или иной таблицы, какая это будет ошибка, как её предотвратить и чего там починить). Естественно сама "починка" что таблиц что dbc - это в идеале отдельная программа, ну на крайний случай отдельный модуль, который при своём запуске позакрывает всё что только можно - формы, отчёты, диалоговые окна, соответственно и таблицы и dbc тоже - после чего будет тем или иным образом исправлять испорченные файлы.
2) Ну есть этот модуль со своей БД, и в чём проблема то? Обращения к таблицам могут производится в виде имя_БД!имя_таблицы - и тогда не важно где физически расположен dbf, и даже нет надобности специально "активировать" эту БД через Set database. Можно пойти от обратного - каждая форма (точнее датасессия) относящаяся к этому модулю при старте сделает set database to и далее будет работать чисто с именами таблиц - никаких путей, никаких файлов - контейнер БД для того и нужен чтобы спрятать эти "детали физического уровня". Не может быть такого чтобы подобный модуль (да и основное приложение тоже) работало "неизвестно с какой" БД, или вообще не БД. Иначе это не прикладное приложение, а утилита типа dbfview, которая ничего не знает про смысл и структуру тех данных, которые отображает. ------------------ WBR, Igor |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Можно много о чем говорить.
Но ежели пост начинается с "Обработка ошибок" после того, что было сказано выше. То смысла воду тереть в ступе нет. |
Re: Приватная DataSession | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Всё просто
Это забота обработчика ошибок. Всё Никакие DE, открытые или закрытые dbc и всё прочее не имеет совершенно никакого отношения к решению данной проблемы. ------------------ WBR, Igor |
Re: Приватная DataSession | |
---|---|
Taran Автор Сообщений: 13625 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Балбес, он и есть басбес. Хоть умный, хоть Юрка бы. Картофан елы-палы. Все нормально. Я их знаю, этих чудиков. То голова не совпадает с телом.... да собственно это самое финишное.... |
© 2000-2024 Fox Club  |