Хранимая процедура 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 анонимных