1. Oracle Client를 설치하고, 연결할 Oracle을 에 대한 설정을 한다.

2. DB connect Function(여기서 XXX 부분에 Oracle Client에서 설정한 값을 입력한다.)
  - DB 연결이 필요한 부분에 아래 function을 호출한다.

Private Sub ConnectDB()
    Set adoOraCon = New ADODB.Connection
   
    With adoOraCon
        .ConnectionString = "Provider=MSDAORA.1;Data Source=XXX;User ID=XXX;Password=XXX;Persist Security Info=True"
        .ConnectionTimeout = 60
        .Open
    End With
End Sub

3. 모듈에  다음 function을 입력한다.
Option Explicit
Public adoOraCon As ADODB.Connection

'   Procedure : GetRecordSet
' Description : 인자로 넘어오는 쿼리를 실행하고, 결과값을 RecordSet으로 반환
'   Parameter : szSql(쿼리)
'Return Value : Recordset
Public Function GetRecordSet(ByVal szSql As String) As ADODB.Recordset
   
    Dim adoRs As ADODB.Recordset
   
    Set adoRs = New ADODB.Recordset
   
    adoRs.Open szSql, adoOraCon, adOpenKeyset, adLockBatchOptimistic
       
    'Recordset 반환
    Set GetRecordSet = adoRs

    Set adoRs = Nothing
       
End Function

'   Procedure : ExecuteQuery
' Description : 인자로 넘어오는 쿼리를 실행하고 성공여부를 반환
'   Parameter : szSql(쿼리)
'Return Value : True/False
Public Function ExecuteQuery(szSql As String) As Boolean
   
    On Error GoTo ErrHandler
   
    adoOraCon.Execute szSql
   
    ExecuteQuery = True
   
    Exit Function
   
ErrHandler:
    If Err.Number <> 0 Then
        MsgBox Err.Source & vbCrLf & Err.Description, vbExclamation, "쿼리 수행 오류"
        ExecuteQuery = False
        Err.Clear
    End If
End Function

4. 원하는 쿼리를 만들어 모듈의 function을 실행한다.
  - 일반적으로 값을 가지고 오는 Select Query이면, GetRecordSet를 실행하고,
  - insert, delete와 같은 데이터 조작 쿼리인 경우에는 ExecuteQuery를 실행한다.

  예) SELECT Query
    Dim strSQL As String
    Dim adoRs As ADODB.Recordset
   
    '//IMPORTANT : 조회 쿼리 생성
    strSQL = "SELECT * FROM TEST_TAB ORDER BY A_COL"
   
    Set adoRs = GetRecordSet(strSQL)

    While Not adoRs.EOF
        '//IMPORTANT : 가지고 온 결과를 처리하는 부분
        adoRs.MoveNext
    Wend
   
    adoRs.Close
    Set adoRs = Nothing

  예) Execute Query
  Dim strSQL As String
  strSQL = "INSERT INTO TEST_TAB(a_col, b_col, c_col, d_col) VALUES ('" & strName & "', '" & strKorean & "', '" & strMath & "', '" & strEnglish & "')"
       
  If ExecuteQuery(strSQL) = False Then
      Msgbox "실패"
  Else
      Msgbox "성공"
  End If
신고
Posted by 나비 나비:D

필요한 JDBC파일들은 올려놓았다.

//------------------------------------------------------------
// Name : ConnectionDB.java
// Desc : Mysql DB와 연결을 담당 하는 클래스
//------------------------------------------------------------

package edu1;

import java.sql.*;

import sun.misc.*;
public class ConnectionDB
{
 
 private Connection conn = null;
 private Statement stmt = null;
 private ResultSet rs = null;
 
 
 //MS-SQL JDBC드라이버 로드
 static final String msjdbc_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";

 static final String msjdbc_url = "jdbc:microsoft:sqlserver://203.247.166.172;databasename=project";//DB이름
 
 
 //MSSQL ID, PASSWORD
 private static String msid  = "admin"; //mssql ID
 private static String mspassword = "abc12345"; //mssql password
 
 
 String url = msjdbc_url; //MSSQLJDBC URL
 
 
 //-------------------------------------------------------
 // Name : ConnectionDB
 // Desc : 생성자
 //-------------------------------------------------------
 public ConnectionDB()
 {
 
 
 }
    //-------------------------------------------------------
  // Name : getPublicKey
  // Desc : 데이타베이스와 연결해서 공개키를 가져온다.
 //-------------------------------------------------------
    //통합사이트에서만 키를 가져오면 된다.
    public void getDB() throws Exception
    {
     
     String sql="select *from lathe where id='1'";
     
     //MS-SQL에 연결
     Class.forName(msjdbc_driver).newInstance();
  conn = DriverManager.getConnection(url,msid,mspassword);
  stmt = conn.createStatement();
  rs = stmt.executeQuery(sql);
  while(rs.next()){
   System.out.println(rs.getString(1));
  }
  disconnectDB(); //DB와 연결을 끊는다.
     
    }
   
       
    //-------------------------------------------------------
 // Name : disconnectDB
 // Desc : 데이타베이스와 연결을 끊는다. 
 //-------------------------------------------------------
 public void disconnectDB() throws Exception
 {
  conn.close();
  stmt.close();
  rs.close();
    }
    //main
    public static void main(String[] args)
    {
     ConnectionDB db = new ConnectionDB();
     db.getDB();
     
    }
}

신고
Posted by 나비 나비:D

BLOG main image
by 나비:D

공지사항

카테고리

분류 전체보기 (278)
Programming? (0)
----------------------------- (0)
나비의삽질 (5)
Application (177)
SQL (51)
Web (27)
etc. (14)
Omnia (0)
---------------------------.. (0)

글 보관함

달력

«   2017/08   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Total : 870,086
Today : 41 Yesterday : 412