ASP - это мощный инструмент для генерации динамических интерактивных веб -страниц. Ниже приведен учебник по использованию ASP Storage, которым редактор поделился с вами. Заинтересованные друзья, давайте узнаем об этом с редактором!
1. Пропустите параметры с использованием объектов команд и объектов параметров. Эта лекция в основном будет использовать базу данных Microsoft SQL Server 7.0. Во -первых, создайте файл соединения Adosql7.asp для резервного копирования. Я не буду указывать это, когда он будет использован позже.
%'' Adosql7.asp
OptionExplice
Response.expires = 0
«Часть 1: установление связи
Dimcnn, strcnn
SetCnn = server.createObject ("adodb.connection")
Strcnn = "Provider = sqloledb; userId = sa; пароль =; initialCatalog = pubs; dataSource = icbczjp"
Cnn.openstrcnn
%>
Примечание. При использовании самостоятельно установите DataSource на имя машины вашего сервера базы данных.
Кроме того, при использовании баз данных Access в прошлом Microsoft Access97 может легко просматривать поля и данные. При использовании баз данных SQLServer, особенно при отладке сценариев ASP на другой машине, вам необходимо установить дополнительные инструменты для просмотра полей и данных. Здесь мы предоставляем вам инструмент: msqry32.exe (Microsoftquery). Этот файл установлен с Office97 и обычно расположен в каталоге «Microsoft Office/Office».
Пример wuf70.asp:
%@Language = "vbscript"%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf70.asp
Dimcmdtest, prmtest, rstest
'' CREATE COMPART объект
SetCmdTest = server.createObject ("adodb.command")
Объекты «Запись и команд» могут быть подключены к объектам соединения через свойство ActiveConnection.
cmdtest.activeconnection = cnn
'' SQL Command - содержит два параметра, выразите ее?
cmdtest.commandtext = "updateJobssetJob_desc =? Где Job_id =?"
'Предположим, что тип команды является оператором SQL
cmdtest.commandtype = adcmdtext
'' Подготовленное свойство определяет, сначала ли компилировать команду SQL, установите ее на True, чтобы ускорить запуск
cmdtest.prepared = true
'' Создать объект параметров
Setprmtest = cmdtest.createParameter ("job_desc", Advarchar, Adparaminput, 50, "Network")
'' Добавить данные в параметры сбора данных
cmdtest.parameters.appendprmtest
Setprmtest = cmdtest.createParameter ("job_id", adsmallint, adparaminput ,, "12")
cmdtest.parameters.appendprmtest
'' Выполнить модификацию - нет необходимости возвращать результат, просто используйте cmdtest.execute
cmdtest.execute
'' Сбросить параметры для запуска - вы можете изменить другую часть данных
cmdtest.parameters ("job_id") = "1"
cmdtest.parameters ("job_desc") = "test"
cmdtest.execute
'' Сбросить параметры для запуска
cmdtest ("job_id") = "14"
cmdtest ("job_desc") = "финансовый"
cmdtest.execute
SetrStest = cnn.execute ("selectJob_id, job_descfromjobs")
Пока
Response.writerstest (0) & rstest (1) & ""
rstest.movenext
Венд
Cnn.close: setprmtest = ничего
SetCmdTest = ничего: setCnn = ничего
%>
проанализировать:
1. Метод CreateParameter объекта команды используется для создания объектов параметров для команд SQL или хранимых процедур. Всего есть пять параметров (пять параметров являются необязательными):
Первый параметр: имя объекта параметра;
Второй параметр: существует слишком много типов типов данных объектов параметров. Пожалуйста, обратитесь к Ado Help, здесь Advarchar (String Value), Adsmallint (2-байтовое подписанное целое число);
Третий параметр: тип параметра. Это может быть: adparaminput (указывает входные параметры), adparamoutput (указывает как выходные параметры), adparamreturnValue (указывает как возвращаемое значение), adparamunknown (указывает на то, что тип параметра не может быть определен), adparaminputput (указывает в качестве параметров ввода/вывода);
Четвертый параметр: предпочтительно указано длина данных параметра, которая будет равна соответствующей длине поля в базе данных, чтобы избежать ошибок во время использования. Особенно, когда тип данных является VARCHAR, если это целое число или тип даты, значение не требуется;
Пятый параметр: начальное значение настройки параметра.
2.cmdtest.parameters.Append Метод добавляет объект параметров в сбор данных параметров. Из этого примера вы также можете увидеть, как использовать несколько параметров.
3. Из этого примера мы видим, что вам нужно только сбросить входные параметры для выполнения модификаций других данных, что очень удобно. Эта идея также является одним из наиболее часто используемых методов при программировании.
4. Сбросьте параметры, вы можете использовать cmdtest.parameters или пропустить их в cmdtest ("job_id").
2. Используйте хранимые процедуры в ASP
Что является хранимой процедурой (хранящаяся процедура находится на сервере базы данных и представляет собой набор операторов SQL, которые могут содержать одну или несколько операторов SQL), и как создание хранимых процедур не принадлежит содержанию этой лекции. Эта лекция в основном иллюстрирует, как вызовать хранимые процедуры в ASP.
Преимущества использования хранимых процедур великолепны, которые более эффективны, чем запуск команд SQL в сценариях ASP; Они могут повысить общую производительность и уменьшить нагрузку сети (уменьшить взаимодействие между сетевыми серверами и серверами данных); Они могут оптимизировать код ASP и повысить гибкость кода, и так далее.
(I) Используйте входные параметры в хранимых процедурах
Хранитованная процедура, используемая в этом примере, - «Byroyalty», которая поставляется с SQLServer 7.0. Оператор SQL внутри очень прост. Это не что иное, как дополнительный CreateProcedureByroyalty, а входной параметр - @percentage:
CreateProcedureByroyalty@процент
КАК
SELECTAU_IDFROMTITLEAUTHOR
wherettleauthor.royaltypeper=@percentage
servbywww.cidu.net
Пример wuf71.asp
%@Language = vbscript%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf71.asp
Dimcmdtest, prmtest, rstest
SetCmdTest = server.createObject ("adodb.command")
cmdtest.commandtext = "byroyalty" '' хранящаяся процедура Имя
«Предположим, что тип команды - хранящаяся процедура
cmdtest.commandtype = adcmdStoredProc
'' Создать объект параметров
Setprmtest = server.createObject ("adodb.parameter")
Атрибут типа соответствует второму параметру в wuf70.asp
prmtest.type = adinteger''4-byte подписанный целое число
Свойство направления соответствует третьему параметру в wuf70.asp
prmtest.direction = adparaminput
Атрибут значения соответствует пятому параметру в wuf70.asp
prmtest.value = 30
cmdtest.parameters.appendprmtest
SetCmdTest.ActiveConnection = cnn
'Вам нужно вернуть набор записей, поэтому используйте setrStest = cmdtest.execute
SetrStest = cmdtest.execute
Пока
Response.writerstest (0) & ""
rstest.movenext
Венд
Cnn.close
SetrStest = Nothing: setPrmTest = ничего
SetCmdTest = ничего: setCnn = ничего
%>
Свойство CommandText может указать либо команды SQL, либо в качестве хранимых процедур или имен таблиц.
В этом примере создание объекта параметра немного отличается от wuf70.asp. На самом деле, если вы посмотрите внимательно, значение похоже. Есть два свойства, которые не используются в этом примере: prmtest.name, prmtest.size, плюс тип, направление и значение, которые соответствуют пять параметров в wuf70.asp.
(Ii) Используйте выходные параметры
При получении записи из таблицы базы данных или вычисления значения необходимо использовать хранимую процедуру, которая возвращает выходные параметры. Чтобы привести пример, сначала создайте новую сохраненную процедуру Out Employing в библиотеке пабов SQLServer. Хранитованная процедура должна ввести две даты, а затем вывести максимальное значение.
CreateProcedureoutemploy
(
@job_lvltinyintoutput,
@hire_date1datetime,
@hire_date2dateTime
)
КАК
Выберите@job_lvl = max (job_lvl) от Omploytee
где HIRE_DATE> =@hire_date1andhire_date =@hire_date2
Есть несколько способов создания хранимых процедур:
1. Используйте Microsoft SqlServer's Enterprisemanager, откройте его в каталоге деревьев слева и откройте его: Consoleroot - Микрософтсклсерверс - SQLServergroup - icbczjp (Windowsnt) –databases - Pubs -Stortprocedure -NewsStoredProcedure. После ввода хранимой процедуры, она также может быть обнаружена синтаксисом;
2. Используйте QueryAnalyzer Microsoft SQLServer, сначала подключитесь к серверу базы данных и выберите базу данных PubS. Введите приведенную выше процедуру и нажмите ExecuteQuery (или нажмите F5);
3. Использование VB6.0, после открытия меню «Просмотр»/«Окно представления данных», щелкните правой кнопкой мыши «Ссылка данных»/«Новая ссылка данных»;
4. Используйте сценарий ASP для создания хранимых процедур, таких как WUF75.ASP:
%@Language = vbscript%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf75.asp
DimStrsql
'' Примечание: & Chr (10) и Chr (13) можно игнорировать, главным образом ради красивой внешности
Strsql = "createProcedureouteMploy (@Job_lvltinyIntoutput," & Chr (10) & Chr (13) & _
"@hire_date1dateTime,@hire_date2dateTime) как" & chr (10) & chr (13) & _
"Выберите@job_lvl = max (job_lvl) from imploytee" & _
"Где chhire_date> =@hire_date1andhire_date =@hire_date2"
Cnn.executestrsql
Response.write "Создать сохраненную процедуру успешно"
Cnn.close: setcnn = ничего
%>
После создания хранимой процедуры, в дополнение к использованию меню, вы также можете удалить его, используя оператор SQL «DropProcedureouteMploy».
Пример WUF72.ASP - отправьте необходимые входные параметры в хранимую процедуру и получите выходной результат.
%@Language = vbscript%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf72.asp
Dimcmdtest, prmtest
SetCmdTest = server.createObject ("adodb.command")
cmdtest.activeconnection = cnn
cmdtest.commandtext = "outeMlow" '"Хранившая процедура Имя
cmdtest.commandtype = adcmdStoredProc
'' Создать объект параметров
Setprmtest = cmdtest.createParameter ("job_lvl", adtinyint, adparamoutput)
cmdtest.parameters.appendprmtest
'' Adtinyint-1 байт подписал целое число
'' AddBdate Date Value (yyyyMmdd)
Setprmtest = cmdtest.createParameter ("kiredate1", addbdate, adparaminput, "1993-05-09")
cmdtest.parameters.appendprmtest
Setprmtest = cmdtest.createParameter ("kiredate2", addbdate, adparaminput, "1994-02-01")
cmdtest.parameters.appendprmtest
cmdtest.execute
'Следующие три выражения означают то же самое
Response.writecmdtest ("job_lvl") & ""
Response.writecmdtest.parameters ("job_lvl") & ""
Response.writecmdtest.parameters ("job_lvl"). Value
Cnn.close
Setprmtest = ничего
SetCmdTest = ничего: setCnn = ничего
%>
(Iii) Используйте параметры кода возврата
Используйте оператор возврата, чтобы вернуть различные коды возврата из сохраненных процедур. Например, хранящаяся процедура сначала получает набор записей, а затем, если есть сотрудник по имени Маргарет, она вернется 1, в противном случае он вернет 0.
CreateProcedurerTurneMploy
КАК
selectemp_id, fnamefrommployee
Ifexists (selectfnamefromimumployeewherefname = '' Margaret '')
Возврат (1)
Еще
Возврат (0)
Пример WUF73.ASP
%@Language = vbscript%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf73.asp
Dimcmdtest, prmtest, rstest
SetCmdTest = server.createObject ("adodb.command")
cmdtest.activeconnection = cnn
cmdtest.commandtext = "returnmolution" '' Хранившая процедура Имя
cmdtest.commandtype = adcmdStoredProc
Setprmtest = cmdtest.createParameter ("returnValue", Adinteger, AdparamReTurnValue)
cmdtest.parameters.appendprmtest
SetrStest = cmdtest.execute ()
Пока
Response.writerstest (0) & "] [" & rstest (1) & ""
rstest.movenext
Венд
rstest.close: setrStest = ничего
'' Прежде чем вернуть cmdtest ("returnvalue"), RSTest должен быть закрыт сначала, в противном случае результат будет неверным
Ifcmdtest ("returnvalue") = 1then
Response.write "есть этот сотрудник"
Еще
Ответ. Напишите "Нет сотрудника"
Эндиф
Cnn.close
Setprmtest = ничего
SetCmdTest = ничего: setCnn = ничего
%>
3. Как справиться с большими данными
«Большие данные» здесь в основном относится к полям текста (большой текст) и изображения (изображение). Данные не могут быть правильно получены с использованием методов, описанных выше. Сначала вы должны использовать size = rstest (0). В фактическом использовании, поскольку эти поля относительно большие, чтобы разумно сохранить и использовать ресурсы сервера, обычно используется сегментированное чтение. Пример WUF74.ASP:
%@Language = vbscript%>
!-#includefile = "Adosql7.asp"->
!-#includefile = "Adovbs.inc"->
%'' wuf74.asp
DimStrsql, RSTest
'pr_info - это текстовое поле
Strsql = "selectpr_info, pub_idfrompub_info"
SetrStest = cnn.execute (strsql)
Dimbasicsize, начинается, Ltext
Dowhilenotrstest.eof
Response.writerstest (1) & ""
'1024 байт за чтение
Основное значение = 1024
Начинается = 0
Whilebeginsizerstest (0). Actualsize
Ltext = rstest (0) .getChunk (basicisize)
Начинается = начинается+basicize
'Выходной сегмент по сегменту клиенту
Response.writeltext
Венд
Response.write ""
rstest.movenext
Петля
Cnn.close
SetrStest = ничего: setCnn = ничего
%>
В этом примере максимум 1024 байта читаются каждый раз и читают их несколько раз. Напротив, если вы записываете большие данные в базу данных, метод аналогичен вышеуказанному, но вместо использования метода getChunk вы используете метод AppendChunk:
rStest (0) .appendChunklText
Примечание. Наконец, я представлю небольшой совет о базе данных SQLServer. Если вы столкнулись с этой ситуацией: китайские данные в базе данных отображаются в искаженном коде, пожалуйста, не паникуйте. Вам просто нужно перейти на мой сайт, чтобы загрузить SQLSRV32.dll перезаписать файл с тем же именем в разделе «C:/Windows/System». Источником проблемы является драйвер SQLServer, который обычно происходит в версии Windows 98 (номер версии драйвера SQLServer составляет 3,70.06.23) или Windows 2000 или MDAC2.5 (номер версии - 3,70.08.20).
Приведенное выше учебник по использованию ASP Storage. Я считаю, что вы все это узнали. Для получения более связанного контента, пожалуйста, продолжайте следить за каналом технологии Wonew.