Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.08;
Скачать: CL | DM;

Вниз

ACCESS и threads   Найти похожие ветки 

 
ghost_by ©   (2002-03-14 21:19) [0]

Можно ли как-нибудь их померить?....
Есть DataModule, есть некоторое количество нитей, все они (нити) должны использовать данный DataModule, но что-то ни в какую - Access Vialation ... и т.д. Никакая синхронизация не помогает....

Можно ли это как-то исправить, т.е. заставить работать?


 
ghost_by ©   (2002-03-15 15:44) [1]

Неужели ни кто не поможет.....?
Очень нужно......


 
EAlexander ©   (2002-03-15 16:52) [2]

IMHO, Access не safe thread, поэтому AV :)


 
Набережных С.   (2002-03-15 17:27) [3]

А что можно сказать, не видя кода?
Загляни для начала сюда, может наведет на мысли:
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=9343
Если останутся вопросы - спрашивай конкретней.


 
digitman ©   (2002-03-15 18:53) [4]

Абстрагируйся на время от своих DataModule и иже с ними.
Вникни в и запомни :

Закон №1: каждый отдельный поток должен использовать отдельный экземпляр DAO.DBEngine

Закон №2: каждый поток, создавший свой экземпляр DAO.DBEngine, должен обращаться к методам/свойствам только своего экземпляра DAO.DBEngine, и ни в коем случае - к чужим, в противном случае - "смерть от AV")

Данные "законы" верны не только для DAO.DBEngine, но и для любых серверных объектов, имеющих ThreadingModel = Apartment.


 
Набережных С.   (2002-03-15 19:49) [5]


> digitman © (15.03.02 18:53)

У JET 4.0 модель Both.


 
ghost_by ©   (2002-03-15 20:41) [6]

Access не safe thread - неужели все включая XP?

И что мне вообще делать - выходит, что создавать все добро динамически.... Я правильно ответил на свой вопрос?


 
Набережных С.   (2002-03-15 21:05) [7]

Да при чем тут Access? Ты же через провайдера работаешь. Нужно синхронизовать доступ к компонентам - нельзя использовать один датасет двумя потоками одновременно. И управлять коннектом нужно аккуратно. AV у тебя, скорее всего, возникает, когда два потока одновременно пытаются открыть коннект через один компонент ADOConnection.


 
ghost_by ©   (2002-03-16 00:59) [8]

AV у тебя, скорее всего, возникает, когда два потока одновременно пытаются открыть коннект через один компонент ADOConnection - в программе на 100% одновременно не используется ни какой датасет, и ни чего не делают одновременно. и все таки - AV


 
Набережных С.   (2002-03-16 09:45) [9]

Ну тогда ошибка в 27-й строке. И в 34-й.


 
ghost_by ©   (2002-03-17 12:36) [10]

У JET 4.0 модель Both. - все заработало.....

Такой вопрос: если на каком-то компе имеется только JET 3.5, как поставить еще и 4.0


 
Набережных С.   (2002-03-17 15:36) [11]

То есть, чтобы присутствовали обе версии? Не знаю, возможно ли это. А зачем?


 
ghost_by ©   (2002-03-17 21:04) [12]

А зачем? - Очениь просто. Есть у людей Jet 3.5. Моей программе нужно Jet 4.0. Приношу этим людям свой программу и ничего не фунциклирует. Возникает вопрос - как поставить Jet 4.0?

Извените меня за мою назойливость - ну очень нужно.


 
Набережных С.   (2002-03-17 23:12) [13]

Поставить - другое дело. Берешь нормальный инсталлятор, включаешь соответствующие опции - все. Мне, например, нравится Wise Installer. А вручную никогда не делал, извини.


 
ghost_by ©   (2002-03-18 07:27) [14]

Спасибо - вроде как фунциклирует....



Страницы: 1 вся ветка

Текущий архив: 2002.04.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-22791
Alx2
2002-02-22 16:57
2002.04.08
Загадка: непрозрачный квадрат


4-22882
Pete
2002-02-05 15:54
2002.04.08
Окно поверх всего и...


3-22595
s
2002-03-18 09:07
2002.04.08
Помогите с записью в базу SQL 2000!


3-22600
a_a_k
2002-03-18 10:12
2002.04.08
SQL-запрос


3-22582
Malder
2002-03-17 11:26
2002.04.08
IBguard.exe и IBserver.exe