На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Работа с базами данных в ASP - небольшая проблема
      Добрый вечер всем участникм форума!

      У меня встала такая проблема: не получается работать с БД Access через ASP.
      Сервер (пока тестю на лкальном компе) - IIS-5

      (только не говорите "ну вот, оять всякие с ASP лезут! нет, чтобы CGI")

      Открываю базу данных:
      ExpandedWrap disabled
        <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 - имя к файлу БД в виде константы.

      Причем пробовал открывать коннект и так:
      ExpandedWrap disabled
        <br>DBConn.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath(DATABASE))<br>


      Потом открываю рекордсет так:
      ExpandedWrap disabled
        <br>Call RList.Open("GuestBook",DBConn)<br>


      (все разные аргументы были перепробованы - и adOpenKeySet тоже, причем, если указать четвертый аргумент - ошибка "неверное сочетание аргументов")

      затем пытаюсь его юзать на запись - методами AddNew, Delete и т.д. - не работает (ошибка что-то там про невозможность выполнить операцию)
      Даже пробовал SQL-запросы писать типа Update - "запрос должен быть обновляемым".

      Получается, что все работает только на чтение (даже переместиться MoveLast нельзя.)

      Опыта работы с БД через Web у меня нет - до этого работал на DAO и VB, а тут на тебе! - ADO... :(
      Помогите пожалуйста разобраться в этом деле :'( (желательно хотя бы кусочки кода) - надо, чтобы базу можно было редактировать полностью - добавлять, удалять и обновлять записи!
      Сообщение отредактировано: Creedence_Sergey -
        А селекты работают - хоть чтото прочитать можешь?
        И еще в системном DSN'e у тебя база данных зарегистрирована?
          Селекты работают - получается "база только для чтения"...
          А про DSN можете разъяснить поподробнее - немного не понятно про все это дело.
          Скорее всего не зарегистрирована.
            Цитата Creedence Sergey, 07.09.02, 11:35:59
            Селекты работают - получается "база только для чтения"...
            А про DSN можете разъяснить поподробнее - немного не понятно про все это дело.
            Скорее всего не зарегистрирована.

            Короче чтобы работать с БД под asp нужно ее сначала зарегистрировать в DSN.
            Делается это так Паннель управления->Источник данных ODBC-> Cистемный DSN (там её и регистрируешь). Хотя если селекты работают то БД там должна быть уже зарегистрирована...
            Вот посмотри: такой скрипт у меня когда то работал:

            Файл register.asp
            ExpandedWrap disabled
              <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>


            Ну и соответственно форма которая его обрабатывает:
            ExpandedWrap disabled
              <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.
            Сообщение отредактировано: d_k -
              Ну при чем тут ДСН, у меня такая же трабла, ну и что, а на серваке где хостюсь все пашет. И не для того адо придумали, чтобы ДСНами пользоваться!
              И кто те на серваке каком-то разрешит свои ДСНы прописывать?
                Цитата Yola, 09.09.02, 10:14:27
                Ну при чем тут ДСН, у меня такая же трабла, ну и что, а на серваке где хостюсь все пашет. И не для того адо придумали, чтобы ДСНами пользоваться!
                И кто те на серваке каком-то разрешит свои ДСНы прописывать?

                Мля, ДСН надо чтобы коннектиться к базе данных через ODBC.
                В источник данных ODBC ты должен же чтото прописать или нет мистер гений?
                А на том серваке где ты хостишься тебе таблицу сделали в БД и делов то а в ДСН'e она уже была. Вот почему у тебя ничего и работало на локалхосте. :P
                  Цитата
                  Мля, ДСН надо чтобы коннектиться к базе данных через ODBC.

                  Вот тут ты прав. Но при чем тут ОДБЦ к АДО я не пойму ???
                    :)Проблему решил!!! :)

                    Все оказалось проще, чем Вы все думаете!
                    Просто, т.к. у меня NTFS, надо было поставить галочку "Разрешить полным доступ всем юзерам" в свойствах для той папки, где лежит БД.!!

                    Прошу прощения за то, что всех побеспокоил!
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0263 ]   [ 16 queries used ]   [ Generated: 26.04.24, 05:09 GMT ]