Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Вниз2 приложения конфликтуют на одинаковых базах Найти похожие ветки
← →
b-Ars (2002-10-15 15:44) [0]Господа, плиз, давайте попробуем разобраться вместе, 2 дня потратил - нулевой результат. Две мои программы используют одинаковые базы данных. Любое число открытых их копий (отдельно 1-ой и 2-ой) работают нормально, но вместе (1-я и 2-я) они конфликтуют: после закрытия одной из них во время выхода из второй возникает исключительная ситуация вида: Программа выполнила недопустимую операцию и будет закрыта, ошибка в kernel32. dll при этом вешается вся Винда. Механизм работы программ одинаков (обычные SQL запросы), причем одна программа создает временные файлы, а вторая странным образом недавно перестала их создавать (но как ни странно работает). Буду благодарен за любые идеи, я в полном отчаянье!
← →
Johnny Smith (2002-10-15 17:01) [1]Работаешь через BDE?
← →
MsGuns (2002-10-15 17:16) [2]Проги запускаются на одном компе или на разных ?
← →
b-Ars (2002-10-16 12:08) [3]Да, работаю через BDE, никаких сторонних компонентов, проги обе на моем компе. Мне кажется, что проблема в файле PDOXUSRS.NET, но я пробовал размещать его в разных папках с помощью TSession, всё чего добился, так это ошибки не в KERNEL32.DLL а вот такая: Программа SQLEDIT вызвала сбой при обращении к странице памяти в модуле IDAPI32.DLL по адресу 0167:4be43541. Винда уже не вешается, но от этого не легче :((((.
← →
ZrenBy (2002-10-16 12:21) [4]У меня было нечто подобное.
Если 2 различные программы использовали два
разных файла NAME.DB,(с одинаковыми именами),
то BDE выдавало что-то типа Share Violation.
Может отсюда ноги растут ?
← →
b-Ars (2002-10-16 12:28) [5]Нет, база данных одна и та же (у меня dbf-файлы), ещё штука, если делаю dbiExit в конце программы, то опять же ругается уже на IDAPI а не на KERNEL. Тут что-то ооочень странное, я уже всю голову сломал!
← →
РВА (2002-10-16 16:46) [6]Проверте Pdoxusrs.net, в сети должен управлять один файл и ссылка в каждом ВДЕ (имеется ввиду запуск с разных машщин)на этот файл.
← →
b-Ars (2002-10-16 17:03) [7]Файл один, задаю при старте программы в TSession. :((((
← →
Дремучий (2002-10-16 20:29) [8]Ты должен использовать компоненты TSession и TDatabase причем натраивать их нужно одинаково. Лучше всего настройки писать в ини-файл и читать прогами оттуда. Желательно, чтобы имя сессии было отличным от дефаулт.
Удачи.
← →
MsGuns (2002-10-16 20:34) [9]>Дремучий © (16.10.02 20:29)
>Желательно, чтобы имя сессии было отличным от дефаулт.
А вот это интересно. Поясните, если не трудно.
← →
b-ars (2002-10-16 23:49) [10]Хм, опять прикол! Я не использую компоненты TDatabase. У меня TDataSource и TQuery и всё - больше нету ничего. Ну вот поставил было TSession, но его советуют убрать. Вот
← →
b-Ars (2002-10-17 12:06) [11]Мдя, а теперь мне говорят, что Pdoxusrs.net тоже не нужен если базы dBase. Как все странно...
← →
MsGuns (2002-10-17 12:10) [12]>b-ars © (16.10.02 23:49)
Не надо добавлять ЕЩЕ ОДНУ сессию. Ведь БД ОДНА !
>b-Ars © (17.10.02 12:06)
Правильно говорят, для dBase он и не нужен. Но вдруг придется доступаться к db-файлам. Лишнее правильно выставленное не помешает !
← →
b-Ars (2002-10-17 12:15) [13]MsGuns © (17.10.02 12:10), сорри, физических файлов БД у меня 11, 3 основных базы и 8 стравочников. И db файлы точно не нужны. Так как же быть в DBF-ами, просто забыть про NET DIR и LOCAL SHARE? И блин, почему же временные файлы перестали создаваться?
← →
MsGuns (2002-10-17 12:30) [14]>b-Ars © (17.10.02 12:15)
Ни в коем случае ! NET DIR и LOCAL SHARE нужны ! Плохо я все-таки умею объясняять, раз меня не поняли 8(
Временные файлы как создавались, так и БУДУТ создаваться. По необходимости. Если их не видно в Приват-каталоге, то одно из:
- приват назначен не туда, где они ищутся
- приложение нормально завершилось и они автоматически удалились
- не было необходимости, вот BDE их и не создала.
← →
b-Ars (2002-10-17 12:46) [15]MsGuns © (17.10.02 12:30), видимо дело все-таки в чем-то другом, потому что я делал их поиск на всех дисках во время работы приложения, да и к тому же раньше я их прекрасно видел, просто не стало их и все тут. Так в чем же разница между сетевым dBase и Paradox? Плиз, может быть мы пообщаемся с вами по мылу, пожалуйста киньте мне ваш работающий адрес (указанный в анкете не работает) если вы не против. Спасибо.
← →
MsGuns (2002-10-17 13:31) [16]>b-Ars © (17.10.02 12:46)
msguns@ukr.net
Странно, раньше было правильно. Не знаю, что произошло с моей анкетой. Заодно как ее поправить ?
На мыло пришлите свой проек с текстами. Так мне будет проще разобраться.
Основная разница dBase и Paradox
Ключи:
Paradox - содержатся раздельно для Primary и для Secondary, что ускоряет поиск записей. Автоматическое создание вторичных ключей при "загруженных" запросах (файлы <Имя таблицы>.x0n/y0n). Нет возможности в качестве ключа использовать ЧАСТЬ поля.
Форматы данных:
У P более широкий спектр типов (один из самых широких вообще) и куда менее жесткие ограничения на имена полей, чем у B
Хранение данных:
У P есть понятие "семейство таблицы", т.е. файлы с расширением .px, .val, .set и др. Кроме того, численные рквизиты физически хранятся в Float, что делает физические размеры таблиц существенно меньше, отсюда и скорость.
Блокировки:
Р "отмечает" ЛЮБОЙ доступ к любой таблице в спец.файле Paradox.lck, из-за которых при ненормальных завершениях возникают проблемы. При нормальном закрытии БД ПОСЛЕДНИМ клиентом этот файл автоматически удаляется. Механизм группового сетевого доступа, реализуемый через PDOXUSRS.net
Минусы Р - из-за специфики хранения ключей при незавершенных транзакциях (В парадоксе понятие "транзакция" несколько отличается от SQL-ной) возникает несоответствие .db и .px, из-за чего, собственно, таблица становится недоступной. Лечится легко, однако часто этого делать некому (прога стоит у "ламерного" клиента)
dBase менее капризен и более стабилен. Однако я использую Р по двум причинам:
1. Р существенно быстрее и экономичнее в плане места на диске (в силу специфики своей работы мне часто приходится возить архивы от клиентов на дискетах, поэтому 3 или 5 дискет - для меня существенная разница)
2. Программным средам предпочитаю Р (хоть сейчас работаю в основном с Делфой, старые дела, в т.ч. ДОСовские, все еще не отпускают от земли грешной)
(Сейчас нет времени, остальное по мылу)
← →
b-Ars (2002-10-18 12:08) [17]Высылаю исходники
← →
b-Ars (2002-10-23 12:13) [18]>MsGuns, вы получили исходники?
← →
Anatoly Podgoretsky (2002-10-23 12:18) [19]b-Ars © (16.10.02 12:08)
Твоя проблема в том, что у тебя одинаковый приватный каталог, разнеси их по разным, тоже если быдешь запускать свыше одной копии программы.
← →
b-Ars (2002-10-23 12:23) [20]>Anatoly Podgoretsky © (23.10.02 12:18)
Спасибо за помощь, но к сожалению дело точно не в этом, приваты я выставляю вначале при помощи DbiSetPrivateDir(PChar(ExtractFilePath(Application.ExeName), а программы в разных каталогах :((
← →
MsGuns (2002-10-23 13:14) [21]>b-Ars © (23.10.02 12:13)
Исходники получил еще позавчера. Посмотрел и первое, что увидел, точнее, не увидел - это компонента TDatabase. И для меня показалось несколько странным вместо стандартных методов использовать прямые вызова BDE. Вот впечатление от беглого просмотра ваших исходников. Для анализа надо время, а у меня до выходных его нет.
← →
b-ars (2002-10-24 01:22) [22]MsGuns © (23.10.02 13:14)
Ок, буду ждать, дело в том, что прога начинала писаться совсем на заре освоения BDE, причем с помощью книги Delphi 4 в подлиннике, а там черным по белому было сказано - TDatabase нафиг не нужен...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.007 c