1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 84
|
|
1 | |
Блокировка dbf13.03.2012, 23:57. Показов 6752. Ответов 6
Метки нет (Все метки)
Имеем:
1) Древняя прога (писана еще под DOS) на dbf(dBaseIV) 2) На ней работают 6 человек (компов) по сети, я работаю на сервере 3) Я пытаюсь из Excel-а подключиться к БД(набор файлов-таблиц .dbf) через ADO (ODBC) и сделать небольшую выборку 4) Выборка из одной из таблиц проходит на ура, из остальных же вылазит ошибка - какой-то сбой (видимо блокировка). 5) При копировании бд домой (на другой комп) - все работает. 6) Как все-таки подключиться к этим таблицам? Как снять с них блокировку? Какой командой? Возможно ли это? 7) Чел-автор этой проги при мне из FoxPro хитрыми манипуляциями ее снимал - и получал доступ к БД на выборку, но мне нужно их Excel-а автоматом генерить запрос к dbf-у ... 8) При копировании этих файлов в другую папку на этом же компе-сервере проблему не сняло - опять сбой (мистика?) ... 9) Писать что-либо на FoxPro не поможет - потому как не силен в этой БД - решение нужно найти на стороне Excell-а или какой или еще совет ...
0
|
13.03.2012, 23:57 | |
Ответы с готовыми решениями:
6
Копирование данных из одной таблицы dbf в шаблон dbf Ошибка при загрузке DBF файлов с датой 'dd.mm.yy' (DBF FoxPro, TADOQvery, DataSource, DBGrid) Работа с dbf в C# - вывести содержимое dbf в dataGridView Блокировка клавиши при нажатии в одной форме и блокировка в другой, третьей |
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 84
|
|
29.05.2012, 03:26 [ТС] | 2 |
Итак, полный текст ошибки при обращении к одной из таблиц:
Run-time error '-2147467259 (80004005)' [Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка базы данных (10028) Ошибка вылезает при обращении только к одной из 3-х таблиц, к остальным нормально. Только выборка. При попытке импорта на лист Excel этой таблицы вручную через "Данные"-"Импорт внешних данных"-"Импортировать данные" возникает ошибка: Блокировка таблицы 'tbl' невозможна; она используется пользователем '(нет данных)' на машине '(нет данных)'. Как снять данную блокировку c dbf файла?
0
|
1 / 1 / 0
Регистрация: 27.10.2011
Сообщений: 107
|
|
29.05.2012, 14:23 | 3 |
пРИВЕТ.
пОСКОЛЬКУ ПРОГА СЕТЕВАЯ, И С НЕЙ ПО СЕТИ работают несколько человек, то сомневаться в квалификации програмера не приходится и переделывать повидимому ничего не нужно. Открывают они данные share. Теперь по твоему поводу. Каким образом ты конектишься к таблицам? плиз, строки в студию Александр
0
|
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 84
|
|
29.05.2012, 15:33 [ТС] | 4 |
Переделывать прогу я не хочу и не могу - на основе БД этой проги я пишу свою.
Мне просто нужно выдрать данные из таблиц. Подключение через ADO в Excel: Dim cn As New ADODB.Connection cn.ConnectionString="Driver={Microsoft dBASE Driver (*.dbf)}riverID=277bq=c:db;" cn.Open Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command cmd.ActiveConnection = cn cmd.CommandText = "select * from tbl.dbf" Set rs = cmd.Execute Все стандартно, хотя, можно рекордсет и без Command создавать через Set rs = cn.Execute("select * from tbl.dbf") Dbq=c:db; - путь к папке где базы лежат (dbf+cdx)
0
|
1 / 1 / 0
Регистрация: 27.10.2011
Сообщений: 107
|
|
29.05.2012, 17:23 | 5 |
Так и я о том-же, переделывать не нужно.
Там скорее всего всё корректно. А вот ты не корректно подключаешься к таблицам. Что-то я не вижу, где ты указываешь, с каким доступом ты открываешь таблицы. Попробуй: Mode=Share Deny Read Александр
0
|
1 / 1 / 0
Регистрация: 01.07.2010
Сообщений: 84
|
|
29.05.2012, 17:31 [ТС] | 6 |
Спасибо, поэкспериментирую!
А не подскажешь, Александр, как трактуются данные параметры доступа: Read, ReadWrite, Share Deny None, Share Deny Read, Share Deny Write, Share Exclusive, Write ? Excel вообще генерит строку: Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Adminata Source=C: empexport ew_db;Mode=Share Deny Write;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=18;Jet OLEDBatabase Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
0
|
1 / 1 / 0
Регистрация: 27.10.2011
Сообщений: 107
|
|
29.05.2012, 19:18 | 7 |
Ну так там же ясно, по английски, написано, для общий для чтения, для записи, для чтения и записи, монопольно для записи.
Александр
0
|
29.05.2012, 19:18 | |
29.05.2012, 19:18 | |
Помогаю со студенческими работами здесь
7
Конвертирование файлов DBF III в DBF IV Как подключить базу данных созданную в DBF Navigator с форматом ".dbf" к приложению на Lazarus? Как "доказать" Delphi, что файл с расширением не DBF - все таки dbf Прочитать содержимое dbf (файл SER.Dbf). И вывести содержимое нескольких полей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |