Johnny
|
|
1 | |
Ошибка при попытке подключения к базе данных '80004005'04.06.2007, 19:30. Показов 5199. Ответов 17
Метки нет (Все метки)
Многоуважаемый ALL!
При попытке подключения к базе данных происходит такая ошибка: Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver] Disk or network error. /www/tutor2/asptoc.asp, line 18 При этом скрипт выглядит так: <% Set oConn = Server.CreateObject('ADODB.Connection') MdbFilePath = Server.MapPath('scout.mdb') 18: oConn.Open 'Driver={Microsoft Access Driver (*.mdb)}; DBQ=' & MdbFilePath & ';' oConn.Open strConn %> В 18 строке - попытка открыть базу... База объявлена в системе и как File DSN и как System DSN. NTFS-разрешениями все разрешено... Может кто подскажет в чем может быть причина?.. Был бы очень благодарен! |
04.06.2007, 19:30 | |
Ответы с готовыми решениями:
17
Ошибка при запуске 1С:Предприятия: Ошибка подключения HRESULT=80004005 При попытке обновить запись в базе данных вываливается ошибка Syntax Error из-за пробелов в тексте. Ошибка "Файл базы данных занят" при попытке подключения к ней Ошибка драйвера при попытке подключения к БД |
0 / 0 / 0
Регистрация: 21.04.2007
Сообщений: 156
|
|
04.06.2007, 19:54 | 2 |
фиг знает, влом думать, я пьян! %)
если она в DSN прописана, то пиши лутше так: dsn = 'имя в DSN' ' имя в DSN usr = 'admin' ' имя пользователя psw = '' ' пароль для доступа в БД oConn.Open dsn, usr, psw Вот это будет воркать!!!
0
|
favn
|
|
04.06.2007, 21:27 | 3 |
Строка соединения использует старый синтаксис, он уже почти не используется.
Возможные варианты: 'Provider=Microsoft.Jet.OLEDB.4.0ata Source=' & Server.MapPath('scout.mdb') & ';Persist Security Info=False' 'Для 2000 Access 'Provider=Microsoft.Jet.OLEDB.3.51ata Source=' & Server.MapPath('scout.mdb') & ';Persist Security Info=False' 'Для 97 Access 'Provider=MSDASQL.1;Persist Security Info=Falseata Source=<System datasource name>' 'Для ODBC Желательно так-же проверить, что же выводит Server.MapPath('scout.mdb'). И совпадает ли это с реальнум путем к базе. |
Johnny
|
|
04.06.2007, 21:54 | 4 |
Большое спсб, favn!
Это наталкивает на мысль... Но к сожалению, подобными выражениями я не пользовался, поэтому к чему его приставить не соображу. Вставляю как есть (для Access97) - начинает ругаться буквально на все.... Не могли бы Вы привести эти строки в составе скрипта? Спасибо! |
Johnny
|
|
04.06.2007, 21:56 | 5 |
И Вам спасибо, уважаемый Newton Arroyo!
Попробовал, как посоветовали: поставил пароль на базу, подключение выполнял по имени и все такое. Но все равно не заворкало... Thanks anyway! |
0 / 2 / 3
Регистрация: 27.03.2012
|
|
04.06.2007, 21:57 | 6 |
Ну, например,
Set Con=Server.CreateObject('ADODB.Connection') Con.Open 'Provider=Microsoft.Jet.OLEDB.4.0ata Source=D:db1.mdb' Set RS=Server.CreateObject('ADODB.RecordSet')
0
|
Johnny
|
|
04.06.2007, 22:06 | 7 |
На эту запись (с соответствующим путем, конечно)
Set Con=Server.CreateObject('ADODB.Connection') Con.Open 'Provider=Microsoft.Jet.OLEDB.4.0ata Source=D:db1.mdb' Set RS=Server.CreateObject('ADODB.RecordSet') Выдает такую ошибку (первый раз вижу...): Microsoft JET Database Engine error '80004005' Unspecified error /www/tutor2/asptoc.asp, line 16 Что ж он еще от меня хочет? |
0 / 2 / 3
Регистрация: 27.03.2012
|
|
04.06.2007, 22:18 | 8 |
Ты вообще где его пытаешься запустить? ОС, версии и т.д...
0
|
Johnny
|
|
04.06.2007, 22:27 | 9 |
Платформа:
WinNT 4.0 Server + SP6a VB 5.5 + MDAC2.5 (или 2.6) IIS 4.0 (Option Pack) |
Sergik
|
|
05.06.2007, 10:49 | 10 |
Мысли, что в голову приходят:
1) вывести Server.MapPath('scout.mdb'), точный ли он путь к БД показывает? (если пользоваться первым путем, хотя не советую) 2) проверить право на чтение пользователю IUSR_<computer_name> на файл .mdb 3) убрать файл DSN и оставить тока system DSN 4) открывать connection так: oConn.open 'system_DSN_name','user_name','user_password' |
favn
|
|
05.06.2007, 12:51 | 11 |
О ошибке 80004005:
В MSDN статья с индексом Q183060. Если не получится найти, обращайся - вышлю. |
Johnny
|
|
05.06.2007, 16:18 | 12 |
Dear Sergik!
Спсб за мысли. Они дают такие результаты: 1) вывести Server.MapPath('scout.mdb'), точный ли он путь к БД показывает? (если пользоваться первым путем, хотя не советую) Путь абсолютно точный! Пробовал даже использовать просто напрямую записанный без переменной путь - тоже самое... 2) проверить право на чтение пользователю IUSR_<computer_name> на файл .mdb Право на чтение есть. Пробовал ставить даже Full Control - тот же эффект. 3) убрать файл DSN и оставить тока system DSN Эффект тот же... 4) открывать connection так: oConn.open 'system_DSN_name','user_name','user_password' Пробовал, не получается... Вообщем все хреново... |
Johnny
|
|
05.06.2007, 16:30 | 13 |
Уважаемый favn!
Я уже читал эту статью ранее, однако, к сожалению, она не описывает ни одну ни вторую ошибку... Просто навождение какое-то... |
Sergik
|
|
05.06.2007, 17:36 | 14 |
Еще пару мыслей:
1) Во время коннекта файл точно закрыт? (никто с ним в Accesse например не работает?) 2) Нужно попробовать переписать файл в другой каталог, мож и впрямь Disk Error 3) Если база в формате Access 2000, то можно попробовать ее в 97 формате сохранить (мож ODBC драйвера старые) 4) Потом еще можно попробовать прям в браузере набрать имя файла-БД (виртуальное, к примеру /my_computer/db/scout.mdb) и посмотреть, откроется ли она через браузер Об ошибке 'error 80004005' можно почитать здесь (http://search.microsoft.com/us/dev/default.asp и в строке поиска набрать 'error 80004005'): http://support.microsoft.com/support/kb/articles/Q225/0/42.ASP http://support.microsoft.com/support/kb/articles/Q183/0/60.ASP |
favn
|
|
06.06.2007, 12:51 | 15 |
Ну что-же... Может переставить MDAC???
Например, поставить 2.6 + Jet отдельно... |
0 / 0 / 0
Регистрация: 03.09.2009
Сообщений: 37
|
|
03.09.2009, 09:24 | 16 |
Та же самая проблема у меня. Поставил MDAC 2.7 и jet 7 - не помогло.
.MDB клал на FAT32, чтоб избежать проблем с безопаностью - тоже нет. Запустил filemonitor, как советует в таком случае MSDN - файл .MDB никем даже не трогается при попытке открыть из ASP. Вот уж воистину наваждение. что делать?
0
|
Sergik
|
|
03.09.2009, 10:40 | 17 |
еще одна фишка есть, точнее две:
1) поставить полный доступ на каталог для временных файлов (TEMP) для пользователя IUSR_<компьютер> 2) заменить в пути к БД все слеши (' ') на двойные слеши ('\ ') |
0 / 0 / 0
Регистрация: 03.09.2009
Сообщений: 37
|
|
03.09.2009, 10:48 | 18 |
Сейчас уже неактуально(Помогла переустановка винды), но
1)temp - всё равно был на fat32 2)слэши - были нормальные. Jскрипт из ASP, переписанный в .js и запущенный, отрабатывал прекрасно: Код
connection.Open('DSN=dm'); Проблема именно в связи ASP<>Jet OLEDB.
0
|
03.09.2009, 10:48 | |
03.09.2009, 10:48 | |
Помогаю со студенческими работами здесь
18
Ошибка при попытке подключения: DBX Error Ошибка 651 при попытке подключения к интернету Неизвестная ошибка при попытке подключения Windows Forms Ошибка при попытке подключения к БД через ADO Connection Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |