dBASE IV, проблема с совместным доступом

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

dBASE IV, проблема с совместным доступом

Сообщение Алексей К. » 17.11.2004 (Ср) 14:27

Ситуация следущая...
База хранится на моем компе, моя прога обрабатывает эту базу.
Так вот, когда кто-то с другого компа моей прогой впервей меня обрашается к базе(по виндовой сети) то выдается ошибка (у меня).
Т.е. у обоих на двух компах запущена моя прога, кто впервей нажал тот и работает - у друго ошибка.(на обоих 98 винды)
Подключение в проге такое:
Код: Выделить всё
Set dbf = DAO.OpenDatabase(путь, False, False, "dBASE IV;LANGID=0x0419;CP=866;COUNTRY=0")
запрос = "select * from " & имя_файла
Set rs = dbf.OpenRecordset(запрос)
rs.GetRows (строк) 'считываем строки
rs.MoveFirst 'встаем на первую запись
...

На строке Set rs = dbf.OpenRecordset(запрос) выдает след. ошибку:
Run-time error "3033" You do not have the necessary permissions to use the "c:\base\010104.dbf"...

Типа нет разрешения на доступ. Может не так подключаю?
Как сделать возможность совместной работы? При работе базу не меняем, только читаем ее. Помогите плиз

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 18.11.2004 (Чт) 13:38

Даже на своем компе я загружаю прогу два раза , в первой запускаю запрос и потом во второй запускаю и в ней ругается на отсутствие прав. А когда первая закончила запрос, вторая обрабатывает запрос уже нормально.
:( Как подключить через ADO, приведите код если не трудно (попробую через него конектится)
Помогите!!!!! Что же делать, как же быть!!!!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 18.11.2004 (Чт) 14:08

Алексей К. писал(а):...
А когда первая закончила запрос, вторая обрабатывает запрос уже нормально.
...

Ну так с этого надо было начинать. Это называется "блокировки объектов в режиме многопользовательского доступа". И никуда ты от них не денешься. У тебя просто описание ошибки неправильное, иначе сам догадался бы...

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 18.11.2004 (Чт) 14:42

Да нет - денешься. Если я подключаюсь через ADO то все работает нормально (15 программ- процессов загружал и все работают с одной базой одновременно). Вот код подключения:
Код: Выделить всё
Set dbf = New ADODB.Connection
Set rs = New ADODB.Recordset
dbf.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\dbf;Extended Properties=dBase IV"
rs.CursorLocation = adUseClient
rs.CursorType = adOpenStatic
rs.Open "SELECT * FROM k010103", dbf
rs.GetRows (512)
rs.MoveFirst
...

А через DAO не хочет (программа одна и таже, отличие только в способе подключения базы). Вопрос остается открытым...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.11.2004 (Чт) 15:45

Когда подключаешься через DAO, при открытии рекордсета укажи, чтобы тот открывался не монопольно.
Lasciate ogni speranza, voi ch'entrate.

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 19.11.2004 (Пт) 8:00

Set rs = dbf.OpenRecordset(a$, dbReadOnly)
Опять так же ругается. Или открывать не монопольно не так? Приведи, если не трудно, код.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 4

    TopList