Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через SProc = ADO.CreateADOStoredProc(); не удается.
Как реализовать вызов хранимых процедур в одной сессии
#1
Отправлено 01 ноября 2017 - 08:25
#2
Отправлено 02 ноября 2017 - 05:42
Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через SProc = ADO.CreateADOStoredProc(); не удается.
Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).
#3
Отправлено 02 ноября 2017 - 07:15
Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через SProc = ADO.CreateADOStoredProc(); не удается.
Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).
Вот тут загвоздка я пытался так реализовать, но не могу понять как передать созданный connection в мою процедуру потому что в самом tc мало документации и подсказок на эту тему. С БД до этого практически не работал и не углублялся в этой раньше в итоге сейчас и появилась такая проблема
#4
Отправлено 03 ноября 2017 - 06:01
Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через SProc = ADO.CreateADOStoredProc(); не удается.
Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).
Вот тут загвоздка я пытался так реализовать, но не могу понять как передать созданный connection в мою процедуру потому что в самом tc мало документации и подсказок на эту тему. С БД до этого практически не работал и не углублялся в этой раньше в итоге сейчас и появилась такая проблема
Я же говорю, что практически у каждого ADO объекта есть свойство Connection. Его можно читать и задавать. У вашего объекта SProc есть такое свойство точно после выполнения самой процедуры (до выполнения .Close()). Возьмите оттуда и далее просто делайте ADO.CreateADOStoredProc().Connection = myOpenedConnection;
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных