Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.146.152.99] |
|
Сообщ.
#1
,
|
|
|
Добрый вечер всем участникм форума!
У меня встала такая проблема: не получается работать с БД Access через ASP. Сервер (пока тестю на лкальном компе) - IIS-5 (только не говорите "ну вот, оять всякие с ASP лезут! нет, чтобы CGI") Открываю базу данных: <br>Set DBConn=Server.CreateObject("ADODB.Connection")<br>Set КList=Server.CreateObject("ADODB.Recordset")<br>DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath(DATABASE))<br> , где - DATABASE - имя к файлу БД в виде константы. Причем пробовал открывать коннект и так: <br>DBConn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath(DATABASE))<br> Потом открываю рекордсет так: <br>Call RList.Open("GuestBook",DBConn)<br> (все разные аргументы были перепробованы - и adOpenKeySet тоже, причем, если указать четвертый аргумент - ошибка "неверное сочетание аргументов") затем пытаюсь его юзать на запись - методами AddNew, Delete и т.д. - не работает (ошибка что-то там про невозможность выполнить операцию) Даже пробовал SQL-запросы писать типа Update - "запрос должен быть обновляемым". Получается, что все работает только на чтение (даже переместиться MoveLast нельзя.) Опыта работы с БД через Web у меня нет - до этого работал на DAO и VB, а тут на тебе! - ADO... Помогите пожалуйста разобраться в этом деле :'( (желательно хотя бы кусочки кода) - надо, чтобы базу можно было редактировать полностью - добавлять, удалять и обновлять записи! |
Сообщ.
#2
,
|
|
|
А селекты работают - хоть чтото прочитать можешь?
И еще в системном DSN'e у тебя база данных зарегистрирована? |
Сообщ.
#3
,
|
|
|
Селекты работают - получается "база только для чтения"...
А про DSN можете разъяснить поподробнее - немного не понятно про все это дело. Скорее всего не зарегистрирована. |
Сообщ.
#4
,
|
|
|
Цитата Creedence Sergey, 07.09.02, 11:35:59 Селекты работают - получается "база только для чтения"... А про DSN можете разъяснить поподробнее - немного не понятно про все это дело. Скорее всего не зарегистрирована. Короче чтобы работать с БД под asp нужно ее сначала зарегистрировать в DSN. Делается это так Паннель управления->Источник данных ODBC-> Cистемный DSN (там её и регистрируешь). Хотя если селекты работают то БД там должна быть уже зарегистрирована... Вот посмотри: такой скрипт у меня когда то работал: Файл register.asp <br><\%@ Language=VBScript \%><br><\%<br>Email = server.HtmlEncode(request.form("Email")) <br>Password = server.HtmlEncode(request.form("Passwd")) <br><br>Set Conn = Server.CreateObject("ADODB.Connection")<br>Conn.Provider = "Microsoft.Jet.OLEDB.4.0"<br>Conn.ConnectionString = "Data Source=" & Server.MapPath ("/contents/Database/UserInfo.mdb")<br>Conn.Open<br><br>Set Rs = Server.CreateObject("ADODB.Recordset")<br>Rs.Open "SELECT * from UserInfo", Conn, 1,3<br><br>Rs.addnew<br>Rs("Email") = Email<br>Rs("Password") = Password<br>Rs.update<br><br>set Rs = nothing<br>set Conn = nothing<br><br>response.write("Registration successfull")<br>\%><br><br> Ну и соответственно форма которая его обрабатывает: <br><html><br><br><head><br><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><br><title>Join Page</title><br></head><br><br><body><br><br><br><form action="register.asp" method="post"><br><br><Table width=300 border=0 cellspacing=0 cellpadding=0><br><tr><br><td> <font face="verdana" color="green" size="2">Your E-mail</font></td><br><td align="center"> <input name="Email" type="text" maxlength="30" size="15"></td></tr><br><tr><br><td> <font face="verdana" color="green" size="2">Choose a password</font></td><br><td align="center"> <input name="Passwd" type="password" Maxlength="20" size="15"></td></tr><br><tr><br><td></td><br><td align="center"> <input type="submit" value="Submit"></td></tr><br></table><br><br></form><br><br></body><br></html><br> А поля в таблице - Email, Password. |
Сообщ.
#5
,
|
|
|
Ну при чем тут ДСН, у меня такая же трабла, ну и что, а на серваке где хостюсь все пашет. И не для того адо придумали, чтобы ДСНами пользоваться!
И кто те на серваке каком-то разрешит свои ДСНы прописывать? |
Сообщ.
#6
,
|
|
|
Цитата Yola, 09.09.02, 10:14:27 Ну при чем тут ДСН, у меня такая же трабла, ну и что, а на серваке где хостюсь все пашет. И не для того адо придумали, чтобы ДСНами пользоваться! И кто те на серваке каком-то разрешит свои ДСНы прописывать? Мля, ДСН надо чтобы коннектиться к базе данных через ODBC. В источник данных ODBC ты должен же чтото прописать или нет мистер гений? А на том серваке где ты хостишься тебе таблицу сделали в БД и делов то а в ДСН'e она уже была. Вот почему у тебя ничего и работало на локалхосте. |
Сообщ.
#7
,
|
|
|
Цитата Мля, ДСН надо чтобы коннектиться к базе данных через ODBC. Вот тут ты прав. Но при чем тут ОДБЦ к АДО я не пойму ??? |
Сообщ.
#8
,
|
|
|
:)Проблему решил!!!
Все оказалось проще, чем Вы все думаете! Просто, т.к. у меня NTFS, надо было поставить галочку "Разрешить полным доступ всем юзерам" в свойствах для той папки, где лежит БД.!! Прошу прощения за то, что всех побеспокоил! |