Q&A

  • 오라클 연결 해제시 세션이 안끝기는 이유??
[개발환경]
Delphi6
Oracle 8i

실행파일로 컴파일하여 데이타베이스에 연결한 후 연결을 끊고나서 토드에서 세션을 확인하면
세션이 연결되어있다 끊긴 것을 확인할 수 있습니다.

하지만 델파이 IDE환경에서 실행하여 연결한 후  Button2를 눌러 연결을 끊어도 세션이 끊어지질 않습니다.
프로그램을 종료하면 CPU창이 뜹니다.

제가 줄곧 VB만 개발해서 이런 창 떠도 전혀 도움이 되질 않고 왜 떴는지, 어디에 쓰이는 창인지도 잘 모르겠습니다.


Connection.Close; 이렇게 코딩하면 커넥션을 끊는다고 책에도 나와있는데 왜 안 끊기는지 이해할 수 없습니다.
컴파일한 실행파일에서도 프로그램을 종료하기 전까지 똑같이 세션이 안 끊기고 살아있습니다.

이러한 현상에 대해 잘 알고 계신 델파이 선배님들이 계시다면 답변 좀 부탁드리겠습니다.

----------------------------------------------------------------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ADOConnection1: TADOConnection;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOConnection1.ConnectionString:= 'Provider=MSDASQL.1;'
  + 'Password=xxxxxx;Persist Security Info=True;User ID=xxxxxx;'
  + 'Data Source=xxxxxx';

  ADOConnection1.Open;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOConnection1.Close;
end;

end.
2  COMMENTS
  • Profile
    갑도리 2005.02.07 18:47
    문제해결했습니다.

    문제의 원인은 Driver에 있더군요...

    다시말해서 OLE DB Driver를

    1) MicroSoft OLE DB  Provider for Oracle 또는

    2) MicroSoft OLE DB Provider for ODBC Drivers를 이용할 경우에는 제게 발생했던 일이 발생하고요..

    3) Oracle Provider for OLE DB를 이용하는 경우에는 제대로 수행이 되는군요...

    책에 있는 내용을 무조건 신용할 순 없게 돼버렸네요.. ^^;;

    답변도 안달리고해서 속으로 많이 고민했는데 드라이버 문제여서 다행입니다..

    아마 다른 문제였다면 더 고생했을 것 같거던요...

    제 글 읽어보시고 문제에 대해서 좀이라도 고민하셨던 델파이 선배님들...

    새해 복 많이 받으시고 즐프하세요~~



  • Profile
    갑도리 2005.02.05 04:17

    Connection1.Close;
    이 코드 밑에
    Connection1.Free;
    이 코드를 붙이니깐 컴파일된 실행파일을 실행해서 세션을 끊으면 세션이 끊기긴 합니다만...
    IDE환경에서 실행하면 CPU창이 뜨는거 똑같군요...

    잘 아시는 분 답변 꼭 부탁드립니다.