При разработке веб -сайтов ASP необходимо напечатать данные MSSQL. Полем Если вам нужно вызовать большой объем данных, вы можете создать создание объекта rds.dataspace (удаленная служба данных) в сценарии клиента и использовать удаленный поставщик для доступа к базе данных MSSQL через веб -сайт ASP (установите только через RDS. Обработчик по умолчанию или пользовательские коммерческие объекты. Код заключается в следующем:
< HTML > < Голова > < Мета-содержание = текст/html; < заголовок > Клиентская таблица печати </заголовок > </голова > < Body Bgcolor = SkyBlue topmargin = 5 Leftmargin = 20 OnContextMenu = return false rightmargin = 0 bottommargin = 0 > < Div Align = Центр >< Центр > < Таблица граница = 1 bgcolor =#ffe4b5 Стиль = высота: 1px; < tr > < TD Align = Middle Bgcolor =#ffffff bordercolor =#000080 > < Font Color =#000080 Size = 3 > Клиентская таблица печати </шрифт > </TD > </tr > </Таблица > </div > < Имя формы = myform > < Div Align = Left > < Type Type = значение кнопки = excel name = ryport = language = vbscript onclick = fun_excel () стиль = высота: 32px; </div > </форма > </тело > </html > < Язык сценария = VBScript > sub fun_excel () Dim RDS, RS, DF Dim Strcn, STRSQL, STRRS Dim xlapp, xlbook, xlsheet1 Установить rds = createObject (rds.dataspace) Установить df = rds.createObject (rdsserver.datafactory, http://192.168.0.1) '192.168.0.1 - IP -адрес веб -сервера IP -адрес Strcn = Provider = MS Remote; Remote Server = http: //192.168.0.1; Handler = msdfmap.handler; Data Source = pubsdatabase; strsql = getalljobs Установите rs = df.query (strcn, strsql) Установите xlapp = createObject (Excel.application) 'Примечание нет: server.createObject (Excel.Application) Установите xlbook = xlapp.workbooks.add Установите xlsheet1 = xlbook.worksheets (1) xlsheet1.cells (1,1) .value = таблица работы xlsheet1.range (a1: d1) .merge xlsheet1.cells (2,1) .value = job_id xlsheet1.cells (2,2) .value = job_desc xlsheet1.cells (2,3) .value = max_lvl xlsheet1.cells (2,4) .value = min_lvl cnt = 3 делать, пока не rs.eof xlsheet1.cells (cnt, 1) .value = rs (job_id) xlsheet1.cells (cnt, 2) .value = rs (job_desc) xlsheet1.cells (cnt, 3) .value = rs (max_lvl) xlsheet1.cells (cnt, 4) .value = rs (min_lvl) Rs.movenext cnt = cint (cnt) + 1 петля xlsheet1.application.visible = true Конец суб </Сценарий > |
Вы также можете создать экземпляр DTSTACONTROL RDS, просто изменить приведенный выше код:
Установить rds = createObject (rds.dataspace) Установить df = rds.createObject (rdsserver.datafactory, http://192.168.0.1) '192.168.0.1 - IP -адрес веб -сервера IP -адрес Strcn = Provider = MS Remote; Remote Server = http: //192.168.0.1; Handler = msdfmap.handler; Data Source = pubsdatabase; strsql = getalljobs Установите rs = df.query (strcn, strsql) |
Модифицировано на:
Установить DC = CreateObject (rds.datacontrol) dc.executeoptions = 1 'Установите для выполнения синхронно, что может упростить следующий код Dc.fetchoptions = 1 С DC .Server = http://192.168.0.1 .Handler = msdfmap.handler .Connect = источник данных = pubsdatabase; .Sql = getalljobs .Refresh Закончить с Установите RS = DC.Recordset |
Измените файл msdfmap.ini (если в win98, c: /windows/msdfmap.ini; if in in win2000, d: /winnt/msdfmap.ini; if in win2000 server, d: /winnts/msdfmap.ini).
[SQL Getalljobs] SQL = SELECT * с заданий [Connect PubsDatabase] Access = readonly Connect = Provider = SQLOLEDB; Data Source = SQL Server; начальный каталог = pubs; uid = userId; pwd = пароль |
Откройте реестр hkey_local_machine/system/currentControlset/services/w3svc/parameters/adclaunch Если нет rdsserver.datafactory, добавьте его. В этом примере используется обработчик RDS по умолчанию для доступа к базе данных. Обратите внимание, что если база данных не доступна через обработчик RDS или пользовательские коммерческие объекты, она будет создавать риск безопасности для базы данных.
Ниже приведено пользовательский бизнес -объект в VB, со следующим кодом:
'Написание ActiveX DLL, имя: rsget.dll, содержащий класс Rsreturn, Method return RS Общественная функция returnrs (strdb как вариант, strsql как вариант) как adodb.recordset 'Возвращает набор записей ADODB. При ошибке gato ehgetrecordset Dim CN как новый Adodb.connection Dim Rs как новый Adodb.recordset Выберите Case Strdb Case ydjjspdatabase strdb = ydjjsp Case Pubsdatabase Strdb = пабы Конец выбора Если strsql = getallbuy, тогда strsql = select * от buyuser Goto Nextstep Конец, если Если осталось (strsql, instr (strsql, () - 1) = getpubsbyid then Если instr (strsql ,,) < = 0, тогда Dim Str как строка str = mid (strsql, instr (strsql, () + 2, instr (strsql,)) - instr (strsql, () - 3) strsql = select * с заданий, где job_id = '& str &' Еще Dim Strstart, Strend как строка strStart = mid (strsql, instr (strsql, () + 2, instr (strsql,,,) - instr (strsql, () - 3) strend = mid (strsql, instr (strsql,,,) + 2, instr (strsql,)) - instr (strsql ,,) - 3) strsql = select * с заданий, где job_id> = '& strstart &' и job_id <= '& strend &' Конец, если Конец, если NextStep: Dim Strconnect как строка strConnect = Provider = SQLOLEDB; Server = DDK; uid = ydj; pwd = ydj; CN.Open Strconnect Rs.cursorlocation = Aduseclient Rs.open strsql, CN, Adpasenstatic, Adlockoptimistic, Adcmdtext Установить returnrs = rs Выходная функция EhgetRecordset: Err.raise err.number, err.source, err.description Конечная функция |
Скопируйте rsget.dll в c:/windows или d:/winnt, start/run, введите regsvr32.exe c: /windows/rsget.dll или regsvr32.exe d: /winnt/rsget.dll, нажмите кнопку OK, чтобы зарегистрироваться Чтобы быть компонентом веб -сервера и добавить rsget.rsreturn в реестр hkey_local_machine/system/currentControlset/services/w3svc/parameters/adclaunch.
Если вы используете пользовательский бизнес -объект, измените приведенный выше код файла ASP:
Установить rds = createObject (rds.dataspace) Установить df = rds.createObject (rdsserver.datafactory, http://192.168.0.1) '192.168.0.1 - IP -адрес веб -сервера IP -адрес Strcn = Provider = MS Remote; Remote Server = http: //192.168.0.1; Handler = msdfmap.handler; Data Source = pubsdatabase; strsql = getalljobs Установите rs = df.query (strcn, strsql) |
Изменить на:
Установить rds = createObject (rds.dataspace) Установите df = rds.createObject (rsget.rsreturn, http: //192.168.0.1) SET RS = DF.RETURNRS (PubsDatabase, getPubSbyId ('2', '10')) |
Кроме того, на стороне браузера требуется следующая конфигурация:
Открыть панель управления -> Параметры Интернета -> Безопасность -> Пользовательский уровень -> Инициализировать и сценарии, работающие для элементов управления ActiveX, которые не помечены как безопасные -> Активировать