<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Autoit_odbc_%EC%97%B0%EA%B2%B0</id>
	<title>Autoit odbc 연결 - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Autoit_odbc_%EC%97%B0%EA%B2%B0"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Autoit_odbc_%EC%97%B0%EA%B2%B0&amp;action=history"/>
	<updated>2026-04-04T05:44:51Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=Autoit_odbc_%EC%97%B0%EA%B2%B0&amp;diff=2273&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: === Oracle ODBC 연결 === {{틀:알림 |내용= 3가지를 명심 할것  # windows 가 64비트여도 orcle odbc는 32비트용을 깔아라(64비트 깔면 개고생) # TNS_ADMIN 환경변수에 등록 , tnsnames.ora 파일 경로 # Provider ~ 쓰지말고 DSN ~ 으로 써야 된다 * 안됨 (삽질의 시작) Provider *:&lt;source lang=sql&gt; .ConnectionString =(&quot;Provider=&#039;OraOLEDB.Oracle&#039;;Data Source=&#039;TNS NAME HERE&#039;;User Id=&#039;XXXX&#039;;Password=&#039;XXXXX&#039;;&quot;) &lt;/source&gt;  * 수정 후 (삽...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Autoit_odbc_%EC%97%B0%EA%B2%B0&amp;diff=2273&amp;oldid=prev"/>
		<updated>2025-08-05T01:45:12Z</updated>

		<summary type="html">&lt;p&gt;새 문서: === Oracle ODBC 연결 === {{틀:알림 |내용= 3가지를 명심 할것  # windows 가 64비트여도 orcle odbc는 32비트용을 깔아라(64비트 깔면 개고생) # TNS_ADMIN 환경변수에 등록 , tnsnames.ora 파일 경로 # Provider ~ 쓰지말고 DSN ~ 으로 써야 된다 * 안됨 (삽질의 시작) Provider *:&amp;lt;source lang=sql&amp;gt; .ConnectionString =(&amp;quot;Provider=&amp;#039;OraOLEDB.Oracle&amp;#039;;Data Source=&amp;#039;TNS NAME HERE&amp;#039;;User Id=&amp;#039;XXXX&amp;#039;;Password=&amp;#039;XXXXX&amp;#039;;&amp;quot;) &amp;lt;/source&amp;gt;  * 수정 후 (삽...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Oracle ODBC 연결 ===&lt;br /&gt;
{{틀:알림&lt;br /&gt;
|내용= 3가지를 명심 할것 &lt;br /&gt;
# windows 가 64비트여도 orcle odbc는 32비트용을 깔아라(64비트 깔면 개고생)&lt;br /&gt;
# TNS_ADMIN 환경변수에 등록 , tnsnames.ora 파일 경로&lt;br /&gt;
# Provider ~ 쓰지말고 DSN ~ 으로 써야 된다&lt;br /&gt;
* 안됨 (삽질의 시작) Provider&lt;br /&gt;
*:&amp;lt;source lang=sql&amp;gt; .ConnectionString =(&amp;quot;Provider=&amp;#039;OraOLEDB.Oracle&amp;#039;;Data Source=&amp;#039;TNS NAME HERE&amp;#039;;User Id=&amp;#039;XXXX&amp;#039;;Password=&amp;#039;XXXXX&amp;#039;;&amp;quot;) &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 수정 후 (삽질 2일차 해결) DSN&lt;br /&gt;
*:&amp;lt;source lang=sql&amp;gt; .ConnectionString = (&amp;quot;DSN=orcl;DB=orcl;UID=dbcafe;PWD=xxxx;&amp;quot;) &amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=sql&amp;gt;&lt;br /&gt;
; Initialize COM error handler&lt;br /&gt;
$oMyError = ObjEvent(&amp;quot;AutoIt.Error&amp;quot;,&amp;quot;MyErrFunc&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$sqlCon = ObjCreate(&amp;quot;ADODB.Connection&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$sqlCon.Mode = 16  ; shared&lt;br /&gt;
$sqlCon.CursorLocation = 3 ; client side cursor&lt;br /&gt;
&lt;br /&gt;
#cs&lt;br /&gt;
$sqlCon.Open (&amp;quot;Driver={DB2}; IP=[ip_address]; Port=[port_number]; Database=[database_name]; UID=[username]; PWD=[password]&amp;quot;)&lt;br /&gt;
#ce&lt;br /&gt;
; DSN : TNS NAME (tnsnames.ora)&lt;br /&gt;
$sqlCon.Open (&amp;quot;DSN=orcl;DB=orcl;UID=dbcafe;PWD=xxxx;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If @error Then&lt;br /&gt;
    MsgBox(0, &amp;quot;ERROR&amp;quot;, &amp;quot;Failed to connect to the database&amp;quot;)&lt;br /&gt;
    Exit&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
; See also Catalog &amp;quot;ADOX Catalog Example.au3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
$sqlRs = ObjCreate(&amp;quot;ADODB.Recordset&amp;quot;)&lt;br /&gt;
If Not @error Then&lt;br /&gt;
    $sqlRs.open (&amp;quot;select * from Table&amp;quot;, $sqlCon)&lt;br /&gt;
    If Not @error Then&lt;br /&gt;
        ;Loop until the end of file&lt;br /&gt;
        While Not $sqlRs.EOF&lt;br /&gt;
            ;Retrieve data from the following fields&lt;br /&gt;
            $OptionName = $sqlRs.Fields (&amp;#039;name&amp;#039; ).Value&lt;br /&gt;
            $OptionVal = $sqlRs.Fields (&amp;#039;value&amp;#039; ).Value&lt;br /&gt;
            MsgBox(0, &amp;quot;Record Found&amp;quot;, &amp;quot;Name:  &amp;quot; &amp;amp; $OptionName &amp;amp; @CRLF &amp;amp; &amp;quot;Value:  &amp;quot; &amp;amp; $OptionVal)&lt;br /&gt;
            $sqlRs.FIELDS(&amp;#039;&amp;quot;&amp;#039; &amp;amp; $OptionName &amp;amp; &amp;#039;&amp;quot;&amp;#039;) = &amp;quot;.F.&amp;quot; ; ADDED THIS LINE&lt;br /&gt;
           ; $sqlRs.Update  ; ADDED THIS LINE&lt;br /&gt;
            $sqlRs.MoveNext  &lt;br /&gt;
        WEnd&lt;br /&gt;
        $sqlRs.close&lt;br /&gt;
    EndIf&lt;br /&gt;
EndIf&lt;br /&gt;
&lt;br /&gt;
Func MyErrFunc()&lt;br /&gt;
  $HexNumber=hex($oMyError.number,8)&lt;br /&gt;
  Msgbox(0,&amp;quot;COM Test&amp;quot;,&amp;quot;We intercepted a COM Error !&amp;quot;       &amp;amp; @CRLF  &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.description is: &amp;quot;    &amp;amp; @TAB &amp;amp; $oMyError.description    &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.windescription:&amp;quot;     &amp;amp; @TAB &amp;amp; $oMyError.windescription &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.number is: &amp;quot;         &amp;amp; @TAB &amp;amp; $HexNumber              &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.lastdllerror is: &amp;quot;   &amp;amp; @TAB &amp;amp; $oMyError.lastdllerror   &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.scriptline is: &amp;quot;     &amp;amp; @TAB &amp;amp; $oMyError.scriptline     &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.source is: &amp;quot;         &amp;amp; @TAB &amp;amp; $oMyError.source         &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.helpfile is: &amp;quot;       &amp;amp; @TAB &amp;amp; $oMyError.helpfile       &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.helpcontext is: &amp;quot;    &amp;amp; @TAB &amp;amp; $oMyError.helpcontext _&lt;br /&gt;
            )&lt;br /&gt;
  SetError(1)  ; to check for after this function returns&lt;br /&gt;
Endfunc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Oracle OLEDB for Autoit === &lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=autoit&amp;gt;&lt;br /&gt;
#include &amp;lt;GUIConstants.au3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dim $oMyError&lt;br /&gt;
&lt;br /&gt;
; Initializes COM handler&lt;br /&gt;
$oMyError = ObjEvent(&amp;quot;AutoIt.Error&amp;quot;,&amp;quot;MyErrFunc&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
$ado = ObjCreate( &amp;quot;ADODB.Connection&amp;quot; )    ; Create a COM ADODB Object  with the Beta version&lt;br /&gt;
&lt;br /&gt;
With $ado&lt;br /&gt;
    ; &amp;#039;Set data source - for OLEDB this is a tns alias, for ODBC it can be &amp;#039;either a tns alias or a DSN.&lt;br /&gt;
    ; If &amp;quot;provider&amp;quot; is used this means that the ODBC connections is used via DSN. &lt;br /&gt;
    ; if Driver is used = &amp;quot;Driver={Microsoft ODBC for Oracle};Server=TNSnames_ora;Uid=demo;Pwd=demo;&amp;quot; then this is a DSN Less connector&lt;br /&gt;
    ; More Info for Oracle MS KB Q193332&lt;br /&gt;
    .ConnectionString = (&amp;quot;DSN=orcl;DB=orcl;UID=dbcafe;PWD=xxxx;&amp;quot;)&lt;br /&gt;
;~    .ConnectionString =(&amp;quot;Provider=&amp;#039;OraOLEDB.Oracle&amp;#039;;Data Source=&amp;#039;TNS NAME HERE&amp;#039;;User Id=&amp;#039;XXXX&amp;#039;;Password=&amp;#039;XXXXX&amp;#039;;&amp;quot;) &lt;br /&gt;
    .Open&lt;br /&gt;
EndWith&lt;br /&gt;
&lt;br /&gt;
$adors = ObjCreate( &amp;quot;ADODB.RecordSet&amp;quot; )    ; Create a Record Set to handles SQL Records&lt;br /&gt;
&lt;br /&gt;
With $adors&lt;br /&gt;
        .ActiveConnection = $ado&lt;br /&gt;
        ;.CursorLocation = &amp;quot;adUseClient&amp;quot;&lt;br /&gt;
        ;.LockType = &amp;quot;adLockReadOnly&amp;quot; ; Set ODBC connection read only&lt;br /&gt;
        .Source = &amp;quot;select * from TABLE NAME HERE&amp;quot;&lt;br /&gt;
        .Open &lt;br /&gt;
EndWith&lt;br /&gt;
&lt;br /&gt;
While not $adors.EOF&lt;br /&gt;
    For $i = 0 To $adors.Fields.Count - 1&lt;br /&gt;
        ConsoleWrite( $adors.Fields( $i ).Value &amp;amp; @TAB )    ; Columns in the AutoIt console use Column Name or Index&lt;br /&gt;
    Next&lt;br /&gt;
        ConsoleWrite(@CR)&lt;br /&gt;
    $adors.MoveNext                                                ; Go to the next record&lt;br /&gt;
WEnd&lt;br /&gt;
&lt;br /&gt;
; This COM error Handler&lt;br /&gt;
Func MyErrFunc()&lt;br /&gt;
  $HexNumber=hex($oMyError.number,8)&lt;br /&gt;
  Msgbox(0,&amp;quot;AutoItCOM Test&amp;quot;,&amp;quot;We intercepted a COM Error !&amp;quot;       &amp;amp; @CRLF  &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.description is: &amp;quot;    &amp;amp; @TAB &amp;amp; $oMyError.description    &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.windescription:&amp;quot;     &amp;amp; @TAB &amp;amp; $oMyError.windescription &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.number is: &amp;quot;         &amp;amp; @TAB &amp;amp; $HexNumber              &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.lastdllerror is: &amp;quot;   &amp;amp; @TAB &amp;amp; $oMyError.lastdllerror   &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.scriptline is: &amp;quot;     &amp;amp; @TAB &amp;amp; $oMyError.scriptline     &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.source is: &amp;quot;         &amp;amp; @TAB &amp;amp; $oMyError.source         &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.helpfile is: &amp;quot;       &amp;amp; @TAB &amp;amp; $oMyError.helpfile       &amp;amp; @CRLF &amp;amp; _&lt;br /&gt;
             &amp;quot;err.helpcontext is: &amp;quot;    &amp;amp; @TAB &amp;amp; $oMyError.helpcontext _&lt;br /&gt;
            )&lt;br /&gt;
  SetError(1)  ; to check for after this function returns&lt;br /&gt;
Endfunc&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>