Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.009 c
14-46150
Nico1a
2002-10-28 17:44
2002.11.14
DLL


3-45661
Dusimov
2002-10-23 11:40
2002.11.14
соединить несколько таблиц


14-46140
AFrolov
2002-10-28 14:05
2002.11.14
Где можно скачать Service Pack для delphi 6?


7-46155
Zergling
2002-09-12 13:00
2002.11.14
POPUP меню в SYSTRAY


14-46147
BigBadMutuh
2002-10-19 18:01
2002.11.14
Как выполнить команду до загрузки винды 2000/XP?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский