работа с базой данных по сети
, права доступа
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.81] |
|
|
ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
работа с базой данных по сети
, права доступа
|
Сообщ.
#1
,
|
|
|
|
база - MS Access на сервере,
с ней работают проект на VB Studio (ASPX) и программа на delphi delphi блокирует базу и использование базы совместно не получается, aspx говорит что файл занят как это разрулить? спасибо из delphi - ADOConnection1 Provider=MSDASQL.1;Persist Security Info=False;Data Source=daf1;Extended Properties="DSN=daf;DBQ=C:\MyWebForm\d1.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" из VB - OdbcConnection1 MaxBufferSize=2048;FIL=MS Access;DSN=monit;PageTimeout=5;UID=admin;DriverId=25 |
|
Сообщ.
#2
,
|
|
|
|
Надо указать путь к с system.mdw , или БД захвачена монопольно.
Добавлено Как проверяете существование таблицы?, ADO/Delphi/Access |
|
Сообщ.
#3
,
|
|
|
|
Цитата Bas @ Надо указать путь к с system.mdw , или БД захвачена монопольно. Добавлено Как проверяете существование таблицы?, ADO/Delphi/Access быстрее всего БД захвачена монопольно. ведь проект aspx не препятствует открытию базы программой на Delphi как отменить монополию? спасибо |
|
Сообщ.
#4
,
|
|
|
|
Цитата Mishaluk @ быстрее всего БД захвачена монопольно. ведь проект aspx не препятствует открытию базы программой на Delphi Программа на Delphi открывает БД если запущен проект на aspx ? Если да то значит не монопольно. |
|
Сообщ.
#5
,
|
|
|
|
а что тогда мешает работать проекту на aspx с БД если запущена программа на Delphi (работает с этой же БД)
проекту на aspx работает, запускаю программу на Delphi после этого при обращении с aspx странице ERROR [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера ERROR [HY000] [Microsoft][Драйвер ODBC Microsoft Access] Невозможно использовать '(нет данных)'; файл уже используется. что блокирует программа на Delphi ? спасибо ADOConnection.Mode ставлю cmShareDenyNone Добавлено (как то странно сообщения добавляються с задержкой и не пойму то добавилось или нет )Цитата Bas @ Если да то значит не монопольно. проект на сервере отработал (он выдает только содержание некоторых полей базы и закрылся и проверить мешает ли он работе программе на Delphi как?) а что тогда мешает работе aspx с БД при работающей с этой же БД программе на Delphi? aspx страница выдает ERROR [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера ERROR [HY000] [Microsoft][Драйвер ODBC Microsoft Access] Невозможно использовать '(нет данных)'; файл уже используется. ADOConnection.Mode ставлю cmShareDenyNone спасибо |
|
Сообщ.
#6
,
|
|
|
|
Цитата Mishaluk @ ERROR [IM006] Ошибка при выполнении SQLSetConnectionOption. Во время выполнения Менеджер драйверов вызвал ф-цию SQLSetConnectionOption выполнение которой привело к ошибке. Цитата Mishaluk @ cmShareDenyNone cmShareDenyNone - открытие других соединений с разрешениями запрещено. |
|
Сообщ.
#7
,
|
|
|
|
если запускаешь два вариант программы на delphi одновременно то они работают с этой же базой нормально а aspx страницу не пускает (хотя aspx только читает из базы и ничего в нее не пишет)
в чем дело? спасибо |
|
Сообщ.
#8
,
|
|
|
|
соединяюсь из VB через Microsoft.Jet.OLEDB соединение
Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;Data Source="C:\MyWebForm\d1.mdb";Mode=Share Deny Write;Jet OLEDB:Engine Type=5;Provider="Microsoft.Jet.OLEDB.4.0";Jet OLEDB:System database=;Jet OLEDB:SFP=False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet OLEDB:Global Bulk Transactions=1 в дельфи строка подключения Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyWebForm\d1.mdb;Mode=ReadWrite;Persist Security Info=False результат Exception Details: System.Data.OleDb.OleDbException: Невозможно использовать ''; файл уже используется. дельфи блокирует БД и aspx не пускает хотя еще 2 копии одной программы на дельфи используют одну БД без проблем aspx нужно только чтение из этой БД как разрешить эту проблему? спасибо |
|
Сообщ.
#9
,
|
|
|
|
Цитата Mishaluk @ в дельфи строка подключения Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyWebForm\d1.mdb;Mode=ReadWrite;Persist Security Info=False Цитата ADO Если у Вас Delphi 5 Enterprise или Delphi 5 Professional с ADO Express, то Вы можете использовать компонент ADOTable и в его свойстве ConnectionString настроить (build) подключение как базе данных MS Access. Например: Provider=Microsoft.Jet.OLEDB.4.0; User ID=Admin; Password=Password; Data Source=D:\Path\dbname.mdb; Mode=ReadWrite; Extended Properties=""; Persist Security Info=False; Jet OLEDB:System database=""; Jet OLEDB:Registry Path=""; Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=5; Jet OLEDB:Database Locking Mode=1; 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 OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=True; Jet OLEDB:SFP=False При этом будет открыта база данных D:\Path\dbname.mdb, будет использован драйвер ADO для базы данных Access (Microsoft.Jet.OLEDB.4.0). Имя пользователя будет Admin без пароля (эти значения присваиваются поумолчанию при создании базы Access). Если Вы всё-таки захотите использовать пароль, то его надо будет задать в ствойстве Jet OLEDB:Database Password. Если у Вас установлен режим безопасности, то необходимо указать файл .MDW или .MDA в свойстве Jet OLEDB:System database. Цитата Mishaluk @ означает "запретить всем работу в режиме записи".Mode=Share Deny Write А в в дельфи строке подключения я не вижу ято включен режим только для чтения (по умолчанию зпаись/чтение). |
|
Сообщ.
#10
,
|
|
|
|
да уже поубирал
строка подключения в дельфи и в aspx странице одинаковая Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyWebForm\d1.mdb;Persist Security Info=False и все равно при запущенном дельфи aspx страница выдапет Exception Details: System.Data.OleDb.OleDbException: Невозможно использовать ''; файл уже используется. закроешь дельфи - aspx работает две копии дельфи вместе работают c одной БД две копии aspx страницы вместе работают c одной БД а дельфи с aspx с одной БД - нет спасибо |