Перейти к содержимому

Фотография

Как реализовать вызов хранимых процедур в одной сессии


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Paxitet

Paxitet

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Смирнов Илья

Отправлено 01 ноября 2017 - 08:25

Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже  в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через    SProc = ADO.CreateADOStoredProc(); не удается.


  • 0

#2 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 02 ноября 2017 - 05:42

Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже  в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через    SProc = ADO.CreateADOStoredProc(); не удается.

Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).


  • 0

#3 Paxitet

Paxitet

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Смирнов Илья

Отправлено 02 ноября 2017 - 07:15

 

Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже  в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через    SProc = ADO.CreateADOStoredProc(); не удается.

Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).

 

Вот тут загвоздка я пытался так реализовать, но не могу понять как передать созданный connection в мою процедуру потому что в самом tc мало документации и подсказок на эту тему. С БД до этого практически не работал и не углублялся в этой раньше в итоге сейчас и появилась такая проблема :sad:


  • 0

#4 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 03 ноября 2017 - 06:01

 

 

Имеется две хранимые процедуры в базе, отрабатывают они корректно проблем с их вызовом нету, но оказалось что они обе должны вызываться в одной сессии чтобы возвращать нужные данные. То есть после написания SProc.Close(); в функции вызова процедуры следующая не сможет выдать корректные данные тк уже  в другой сессии. А текущая сессия должна быть открыта на протяжении всего времени работы автотеста. Как можно реализовать подобное через    SProc = ADO.CreateADOStoredProc(); не удается.

Сессия - это объект ADOConnection вроде бы. Насколько помню у всех ADO объектов есть свойство connection (get/set). Создавайте его отдельно или переиспользуйте из однажды выполненной процедуры. Proc.Close() возможно в это случае выполнять нельзя (надо смотреть документацию, закрывает ли это соединение с БД).

 

Вот тут загвоздка я пытался так реализовать, но не могу понять как передать созданный connection в мою процедуру потому что в самом tc мало документации и подсказок на эту тему. С БД до этого практически не работал и не углублялся в этой раньше в итоге сейчас и появилась такая проблема :sad:

 

Я же говорю, что практически у каждого ADO объекта есть свойство Connection. Его можно читать и задавать. У вашего объекта SProc  есть такое свойство точно после выполнения самой процедуры (до выполнения .Close()). Возьмите оттуда и далее просто делайте ADO.CreateADOStoredProc().Connection = myOpenedConnection;


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных