На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> работа с базой данных по сети , права доступа
    база - 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
      Надо указать путь к с system.mdw , или БД захвачена монопольно.

      Добавлено
      Как проверяете существование таблицы?, ADO/Delphi/Access
        Цитата Bas @
        Надо указать путь к с system.mdw , или БД захвачена монопольно.

        Добавлено
        Как проверяете существование таблицы?, ADO/Delphi/Access

        быстрее всего БД захвачена монопольно. ведь проект aspx не препятствует открытию базы программой на Delphi
        как отменить монополию?
        спасибо
          Цитата Mishaluk @
          быстрее всего БД захвачена монопольно. ведь проект aspx не препятствует открытию базы программой на Delphi

          Программа на Delphi открывает БД если запущен проект на aspx ? Если да то значит не монопольно.
            а что тогда мешает работать проекту на aspx с БД если запущена программа на Delphi (работает с этой же БД)
            проекту на aspx работает, запускаю программу на Delphi после этого при обращении с aspx странице

            ERROR [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера
            ERROR [HY000] [Microsoft][Драйвер ODBC Microsoft Access] Невозможно использовать '(нет данных)'; файл уже используется.

            что блокирует программа на Delphi ?
            спасибо

            ADOConnection.Mode ставлю cmShareDenyNone

            Добавлено
            (как то странно сообщения добавляються с задержкой и не пойму то добавилось или нет :o )
            Цитата Bas @
            Если да то значит не монопольно.


            проект на сервере отработал (он выдает только содержание некоторых полей базы и закрылся и проверить мешает ли он работе программе на Delphi как?)
            а что тогда мешает работе aspx с БД при работающей с этой же БД программе на Delphi?

            aspx страница выдает
            ERROR [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера
            ERROR [HY000] [Microsoft][Драйвер ODBC Microsoft Access] Невозможно использовать '(нет данных)'; файл уже используется.

            ADOConnection.Mode ставлю cmShareDenyNone
            спасибо
              Цитата Mishaluk @
              ERROR [IM006]

              Ошибка при выполнении SQLSetConnectionOption. Во время выполнения Менеджер драйверов вызвал ф-цию SQLSetConnectionOption выполнение которой привело к ошибке.
              Цитата Mishaluk @
              cmShareDenyNone

              cmShareDenyNone - открытие других соединений с разрешениями запрещено.
                если запускаешь два вариант программы на delphi одновременно то они работают с этой же базой нормально а aspx страницу не пускает (хотя aspx только читает из базы и ничего в нее не пишет)
                в чем дело?
                спасибо
                  соединяюсь из 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 нужно только чтение из этой БД

                  как разрешить эту проблему?
                  спасибо
                    Цитата 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
                    означает "запретить всем работу в режиме записи".
                    А в в дельфи строке подключения я не вижу ято включен режим только для чтения (по умолчанию зпаись/чтение).
                      да уже поубирал
                      строка подключения в дельфи и в 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 с одной БД - нет
                      спасибо
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0560 ]   [ 16 queries used ]   [ Generated: 8.04.26, 13:27 GMT ]