Хранимая процедура MS SQL
#1
Отправлено 26 июня 2011 - 06:15
Ситуация следующая. Существует БД MS SQL, в которой имеется хранимая процедура. Вызываю эту хранимую процедуру, указав соответствующие значения в соответствующие параметры. В ответ возвращается всегда одна строка с одним и тем же набором полей. Задача такая. Нужно автоматизировать этот процесс: вызывать хранимую процедуру передавая соответствующие значения, обрабатывать и проверять то, что приходит в ответ.
Подскажите пжлста каким образом это можно осуществить? Может существуют какие либо специальные инструменты? Обычно я вызываю хранимую процедуру вручную в SQL Query Analyzer.
#2
Отправлено 26 июня 2011 - 09:53
Всем привет!
Ситуация следующая. Существует БД MS SQL, в которой имеется хранимая процедура. Вызываю эту хранимую процедуру, указав соответствующие значения в соответствующие параметры. В ответ возвращается всегда одна строка с одним и тем же набором полей. Задача такая. Нужно автоматизировать этот процесс: вызывать хранимую процедуру передавая соответствующие значения, обрабатывать и проверять то, что приходит в ответ.
Подскажите пжлста каким образом это можно осуществить? Может существуют какие либо специальные инструменты? Обычно я вызываю хранимую процедуру вручную в SQL Query Analyzer.
Есть такая штука - DBUnit
или если взять любое средство автоматизированного тестирования, к примеру QTP или тескомплит, у них вроде есть спец точки верификации для проверки
#3
Отправлено 26 июня 2011 - 14:19
#4
Отправлено 04 июля 2011 - 08:11
Всем привет!
Ситуация следующая. Существует БД MS SQL, в которой имеется хранимая процедура. Вызываю эту хранимую процедуру, указав соответствующие значения в соответствующие параметры. В ответ возвращается всегда одна строка с одним и тем же набором полей. Задача такая. Нужно автоматизировать этот процесс: вызывать хранимую процедуру передавая соответствующие значения, обрабатывать и проверять то, что приходит в ответ.
Подскажите пжлста каким образом это можно осуществить? Может существуют какие либо специальные инструменты?
Про специальные инструменты не знаю, но можно быстро написать скрипт, который будет вызывать хранимую процедуру и обрабатывать результат.
Например, для VBscript я быстро нагуглил пару примеров, как это сделать:
Пример 1 (http://www.eggheadca...turn-value.aspx)
CREATE PROCEDURE my_getParam
@paramName nvarchar(50)
AS
SET NOCOUNT ON
SELECT parameter_value FROM tbl
WHERE parameter_name = @paramName
GO
Dim rs,parmname,parmval
parmname="runScript"
Set rs=createobject("adodb.recordset")
adoSQLConnection.my_getParam parmName, rs
if not rs.EOF then
parmval = rs(0)
else
parmval="No parameter named " & parmname & " was found"
end if
Пример 2. (http://www.experts-e...Q_23851411.html)
Вызов процедуры из SQL Analyzer:
exec msdb.dbo.sp_send_dbmail @profile_name = 'DBMail'
, @recipients = 'mymailaddress@mycompany.com'
, @subject = 'SQL Transaction Log'
, @query = 'exec sp_sds_custom'
, @attach_query_result_as_file = 1
Код на VBScript:
Const adChar = 129
Const adParamOutput = 2
Const adParamInput = 1
Const adCmdStoredProc = 4
const adInteger = 5
Dim oCon, oRs, strCon
Dim cmdStoredFunct
Dim objExcel, defaultSheets, intRowsRead
Dim objWorkbook, objWorkSheet
Dim fso
Dim strSaveAbsolute
strCon = "Driver={SQL Server};Server=sslmhsql004;Initial Catalog=master;Trusted_Connection=Yes;"
Set oCon = WScript.CreateObject("ADODB.Connection")
oCon.Open strCon
Set cmdStoredFunct = CreateObject("ADODB.Command")
Set cmdStoredFunct.ActiveConnection = oCon
with cmdStoredFunct
.CommandText = "msdb.dbo.sp_send_dbmail"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("@profile_name", adVarWChar, adParamInput, 50, "DBMail")
.Parameters.Append .CreateParameter("@recipients", adVarWChar, adParamInput, 50, "kbuchanan@lmh.cc")
.Parameters.Append .CreateParameter("@subject", adVarWChar, adParamInput, 50, "SQL Transaction Log")
.Parameters.Append .CreateParameter("@query", adVarWChar, adParamInput, 50, "exec sp_sds_custom")
.Parameters.Append .CreateParameter("@attach_query_result_as_file", adInteger, adParamInput, 50, 1)
end with
Set oRs = WScript.CreateObject("ADODB.Recordset")
Set oRs = cmdStoredFunct.Execute
oCon.Close
Set cmdStoredFunct = Nothing
Set oRs = Nothing
Set oCon = Nothing
MsgBox "Script Completed"
В переменной oRS будет результат выполнения процедуры - та строка, которая возвращается в виде объекта RecordSet
SQL для тестировщиков
Тренинги по HP QTP и автоматизации тестирования
Если минарет, значит выше всех (с)
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных

