Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема розпочата: sergiucz від Березень 05, 2013, 09:54:40 ДП

Назва: Как принудительно закрыть ADO соединение.
Відправлено: sergiucz від Березень 05, 2013, 09:54:40 ДП
Добрый день господа гуру.
ПРи соединение через АДО,соединение окрывается и вивсит на сервере открытым даже после  завершение программы .
И закрывается тогда когда выдоишь с сап логона.
Как с этим боротся?


CREATE OBJECT adoconnect 'ADODB.Connection'.
  CREATE OBJECT adors 'ADODB.RecordSet'.
  init = initstr.
  SET PROPERTY OF adoconnect 'ConnectionString' = init.
  CALL METHOD OF adoconnect 'Open'.
  SET PROPERTY OF adors 'CursorType' = 3.
  SET PROPERTY OF adors 'LockType' = 1.
  SET PROPERTY OF adors 'ActiveConnection' = adoconnect.
  CALL METHOD OF adors 'Open'
         EXPORTING
                 #1 = sql.
  GET PROPERTY OF adors 'EOF' = eof.
  REFRESH intab_db.
  ASSIGN ('intab_db[]') TO <fs_int>.
  ASSIGN ('fc[]') TO <fs_tab>.
  CREATE DATA dref LIKE intab_db.
  ASSIGN dref->* TO <fs_ref>.
  <fs_ref> = intab_db.
  WHILE eof = '0'.
    LOOP AT <fs_tab> ASSIGNING <fs_line>.
      field_name = <fs_line>-fieldname.
      CALL METHOD OF adors 'fields' = adofield
            EXPORTING
              #1 = field_name.
      GET PROPERTY OF adofield 'Value' = value.
      ASSIGN COMPONENT field_name OF STRUCTURE <fs_ref> TO <fs>.
      <fs> = value.
    ENDLOOP.
    APPEND <fs_ref> TO intab_db.
    FREE adofield.
    CALL METHOD OF adors 'MoveNext'.
    GET PROPERTY OF adors 'EOF' = eof.
  ENDWHILE.

UNASSIGN <fs_tab>.
  UNASSIGN <fs_int>.
  FREE adoconnect.
  FREE adofield.
  FREE adors.

Заранее благодарен!!
Назва: Re: Как принудительно закрыть ADO соединение.
Відправлено: Uukrul від Березень 05, 2013, 11:59:51 ДП
Цитата: sergiucz від Березень 05, 2013, 09:54:40 ДП

  FREE adoconnect.
  FREE adofield.
  FREE adors.

Может это использовать надо: FREE OBJECT
Назва: Re: Как принудительно закрыть ADO соединение.
Відправлено: sergiucz від Березень 06, 2013, 03:27:42 ПП
Цитата: Uukrul від Березень 05, 2013, 11:59:51 ДП
Может это использовать надо: FREE OBJECT

Пробовал и так не помогает  :-[  :-[

реально после закрытия сап логона  отрубается конект.  ПРи закрытия программы, режима,  конекты остаются висячими. :o
Назва: Re: Как принудительно закрыть ADO соединение.
Відправлено: Uukrul від Березень 06, 2013, 03:39:39 ПП
Цитата: sergiucz від Березень 06, 2013, 03:27:42 ПП
Пробовал и так не помогает  :-[  :-[

реально после закрытия сап логона  отрубается конект.  ПРи закрытия программы, режима,  конекты остаются висячими. :o
К примеру вот метод: CALL METHOD OF adoconnect 'Open'. А вот метода CLOSE для конекта не вижу.
Назва: Re: Как принудительно закрыть ADO соединение.
Відправлено: sergiucz від Березень 07, 2013, 10:32:31 ДП
Цитата: Uukrul від Березень 06, 2013, 03:39:39 ПП
К примеру вот метод: CALL METHOD OF adoconnect 'Open'. А вот метода CLOSE для конекта не вижу.

Как всегда ты прав. Забыл закрыть :)) Спасибо заработало :)))