Запрос и обновление данных с помощью ADO со страниц ASP

Переводы статьи Переводы статьи
Код статьи: 195951 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

В этой статье показано, как для запроса и обновления данные в электронную таблицу Excel с помощью объектов данных ActiveX (ADO) из Страницы Active Server Pages (ASP). В статье также описывается ограничения, не связан с этим типом приложения.

Важно: Хотя Приложения ASP и объекты ADO поддерживают многопользовательский доступ, не поддерживает электронную таблицу Excel. Таким образом не поддерживает этот метод для создания запросов и обновления данных одновременный доступ нескольких пользователей.

Дополнительная информация

Для доступа к данным в электронной таблице Excel для этого образцы, используйте драйвер ODBC для Microsoft Excel. Создание таблицы для доступа к данные, создав именованный диапазон в электронной таблице Excel.

Шаги по созданию примера приложения

  • Создание файла Excel ADOtest.xls со следующими данными в листе sheet1.

    Свернуть эту таблицуРазвернуть эту таблицу
    Столбец1Столбец2Столбец3
    запись ресурса Файл15
    bbтест20
    (ЭТ)Works25

    Примечание Если столбец в таблице Excel содержит текст, так и номера, драйвер ODBC Microsoft Excel не может правильно интерпретировать тип данных, который столбец должен быть. Убедитесь, что все ячейки столбца имеют того же типа данных. Следующие три ошибки могут возникать при каждой ячейки в столбце не того же типа, или иметь смешанный между «текст» типы и «Общие»:
    1. Поставщик Microsoft OLE DB для драйверов ODBC ошибка «80040e21»
      Свойства запроса может не поддерживаться Этот драйвер ODBC.
    2. Поставщик Microsoft OLE DB для драйверов ODBC ошибка «80004005»
      Запрос не является обновляемым так как он не содержит доступные для поиска столбцов для использования в качестве ключа гораздо веселее.
    3. Поставщик Microsoft OLE DB для драйверов ODBC ошибка «80004005»
      Не удалось выполнить запрос на обновление. Строка для обновления не удается найти.
  • Создайте именованный диапазон, myRange1, в электронной таблице:

    1. Выделите область строк и столбцов которой данные находится.
    2. Выберите в меню Вставка укажите на пункт имя и нажмите кнопку Определение.
    3. Введите имя myRange1 для именованного диапазона имя.
    4. Нажмите кнопку ОК.
    MyRange1 именованного диапазона содержит следующие данные:

    Свернуть эту таблицуРазвернуть эту таблицу
    Столбец1Столбец2Столбец3
    запись ресурсаФайл15
    bbтест20
    (ЭТ)Works25


    Примечание ADO предполагается, что первая строка запроса Excel содержит заголовки столбцов. Таким образом именованный диапазон должен включать заголовки столбцов. Это другое поведение от DAO.

    Примечание Заголовки столбцов не может быть числом. Драйвер Excel невозможно их интерпретировать и вместо этого возвращает ячейку ссылки. Например столбец Заголовок «f1» будет ошибочно.
  • Создание ODBC системы имя источника данных (DSN) команды файл ADOTest.xls.
    1. На панели управления откройте компонент ODBC Администратор.
    2. На вкладке системный DSN нажмите кнопку Добавить.
    3. Выберите драйвер Microsoft Excel (*.xls) и нажмите кнопку "Готово". Если этот параметр не существует, необходимо установить драйвер Microsoft ODBC для Excel из программы установки Microsoft Excel.
    4. Выберите ADOExcel в качестве имени источника данных.
    5. Убедитесь, что задана правильная версия версия Microsoft Excel.
    6. Нажмите кнопку «Выбрать книгу...», перейдите к ADOTest.xls файл и нажмите кнопку ОК.
    7. Нажмите кнопку "Параметры >>" кнопки и снимите флажок «чтение Только"флажок.
    8. Нажмите кнопку ОК, а затем нажмите кнопку ОК.
  • Установить разрешения для файла ADOTest.xls.
Если активной серверной страницы осуществляется анонимно, необходимо Убедитесь, что по крайней мере у учетной записи анонимного пользователя (IUSR_<machinename>) RW (чтение/запись) доступ к электронной таблице. Если требуется удалить сведения из электронной таблицы необходимо предоставить соответствующие разрешения.<b00></b00></machinename>

Если проверка подлинности доступа для активной серверной страницы, необходимо Убедитесь, что все пользователи, работающие приложения имеют соответствующие разрешения.

Примечание Если не задать соответствующие разрешения на электронную таблицу, то сообщение об ошибке следующего вида:

Поставщик Microsoft OLE DB для драйверов ODBC ошибка «80004005»

[Microsoft][Драйвер ODBC Microsoft Excel] Microsoft Jet компонент Database engine не удалось открыть файл (нет). Он уже открыт монопольно другим пользователем или требуется разрешение для просмотра его данных.
  1. Создание новой страницы ASP и вставьте следующий код:
          <!-- Begin ASP Source Code -->
          <%@ LANGUAGE="VBSCRIPT" %>
          <%
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open "ADOExcel"
    
            Set objRS = Server.CreateObject("ADODB.Recordset")
            objRS.ActiveConnection = objConn
            objRS.CursorType = 3                    'Static cursor.
            objRS.LockType = 2                      'Pessimistic Lock.
            objRS.Source = "Select * from myRange1"
            objRS.Open
       %>
       <br>
       <%
          Response.Write("Original Data")
    
          'Printing out original spreadsheet headings and values.
    
          'Note that the first recordset does not have a "value" property
          'just a "name" property.  This will spit out the column headings.
    
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'The update is made here
    
          objRS.MoveFirst
          objRS.Fields(0).Value = "change"
          objRS.Fields(1).Value = "look"
          objRS.Fields(2).Value = "30"
          objRS.Update
    
          'Printing out spreadsheet headings and values after update.
    
          Response.Write("<br>Data after the update")
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'ADO Object clean up.
    
          objRS.Close
          Set objRS = Nothing
    
          objConn.Close
          Set objConn = Nothing
       %>
       <!-- End ASP Source Code -->
    					
  2. Сохранить и имя активной серверной страницы и просмотреть его в обозреватель. Вы увидите следующее:
          Original Data:
    
          column1    column2    column3
          -----------------------------
    
          rr         this       30
          bb         test       20
          tt         works      25
    
    
          Data after the update:
    
          column1    column2    column3
          -----------------------------
    
          change     look       30
          bb         test       20
          tt         works      25
    					
Примечание Обновление было выполнено на первой строке именованный диапазон (после заголовков).

Ссылки

Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
190195Как ExtractInformation из листа Excel с помощью DAO

Свойства

Код статьи: 195951 - Последний отзыв: 4 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Active Server Pages 4.0
Ключевые слова: 
kbcode kbhowto kbmdacnosweep kbmt KB195951 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:195951

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com