Aqua Data Studio


Sybase를 위한 데이터베이스 클라이언트(client)이자 관리도구로서, 일전에 소개한 ASE Isql을 사용하다가 Aqua Data Studio라는 것이 있다는 것을 알았다. 처음 로딩이 느린 단점이 있는 반면 ASE Isql에 비해 훨씬 진보적인 UI와 기능을 제공한다.

원문:  http://kyungseo.pe.kr/wiki/development/tools/aquafold

개요

Java 기반 데이터베이스 관리도구이며, JDBC 드라이버가 있는 대부분의 DB를 지원한다. 상용이지만 4.7.2 버전까지는 개인사용자에게 무료 라이선스가 적용된다.

지원 OS:

  • Windows
  • Linux
  • OSX
  • Solaris
  • Java Platform

지원 DB:

  • Oracle - 10g/9i/8i
  • DB2 UDB - 9/8/7
  • MS SQL Server - 2005/2000/7/MSDE
  • Sybase ASE - 15/12.x/11.x
  • Sybase Anywhere - 10/9/8
  • Sybase IQ - 12.x
  • Informix IDS - 10/9.x/7.x
  • PostgreSQL - 8.x/7.x
  • MySQL - 5/4.x/3.x
  • Generic JDBC Platform
  • Generic ODBC

설치

aquafold에서 현재 무료 라이선스가 적용되는 최신 버전으로 Aqua Data Studio v4.7.2를 원하는 플랫폼(OS) 형태로 다운로드 할 수 있다. Aqua Data Studio를 설치하고 실행하기 위해서는 Java/JRE 1.5 이상이 필요하다.

메인 화면

설정

Aqua Data Studio를 실행하면 UI의 일부 및 데이터베이스 환경에 따라 결과 값의 한글이 깨지는 현상이 발생할 수 있다. 각각에 대한 적절한 설정 방법은 다음과 같다.

Server Properties

Grid 또는 Text Results 에서 칼럼의 한글 데이터가 깨지는 경우 서버 속성을 다음 두가지 값 중 하나를 적용하면 된다.

  • Driver Param: 드라이버 파라미터의 값으로 "?CHARSET=eucksc"를 입력한다.
  • Charset: Character set의 값으로 eucksc를 선택한다.

위 화면은 두가지를 모두 적용한 예이다.

Options

메뉴에서 File → Options → General을 선택한 후 그림과 같이 Appearance 부분의 Look and Feel과 Font 설정을 변경하도록 한다. 그림의 설정만 적용되는 것은 아니므로 취향에 맞게 수정하도록 한다. 이 설정으로 메인 화면 및 Editing 윈도우를 포함하여 전체 범위에 대하여 한글이 적용된다.

참고 사이트

"Useful Tools" 카테고리의 다른 글

2007/12/05 20:47 2007/12/05 20:47
 
Bookmark and Share

Sybase와 한글

Sybase와 한글(eucksc, euc-kr) - JDBC Driver(jConnect, jTDS) 설정


1 환경 요약


1.1 기본 환경

  • Database: Sybase Adaptive Server Enterprise v15
  • JDBC driver: jConnect™ for JDBC™ Version 6.05 (jconn3.jar), jTDS(jtds-1.2.2.jar)
  • Java version: 1.5.0_07
  • WAS: JEUS 5.0 (fix #22)


    1.2 DB character-set 설정

    현재 서버의 Sybase DB의 설정을 보면 character-set이 ISO-8859-1(Latine1)으로 세팅되어 있는 것을 확인할 수 있다.

    sp_helpsort
    Character Set = 1, iso_1
         ISO 8859-1 (Latin-1) - Western European 8-bit character set.
     Sort Order = 50, bin_iso_1
         Binary sort order for the ISO 8859/1 character set (iso_1).
    ...


    2 한글 사용을 위한 세팅

    상위에 기술한 환경 하에서 DB의 기본 character-set을 한글(eucksc)로 변경할 수 없는 상황을 전제로 하여 한글 사용을 위한 세팅을 프로그램 및 DB로 구분하여 설명한다.


    2.1 프로그램 세팅

    JDBC 드라이버, jConnector의 character-set property를 eucksc로 설정한다.

    아래 두 예제를 참고하도록 한다. database.properties는 JDBC 관련 속성을 설정해 두고 사용하는 예제이며 DataSource의 경우는 WAS의 JNDI에 데이터소스로 등록하여 사용하는 예제이다.

    database.properties

    jdbc.driver=com.sybase.jdbc3.jdbc.SybDriver
    jdbc.url=jdbc:sybase:Tds:IP_ADDRESS:PORT_NUMBER/bct?CHARSET=eucksc
    jdbc.username=kyungseo
    jdbc.password=kyungseo


    DataSource

    JEUSMain.xml 파일을 열어 다음과 같은 내용으로 데이터소스를 추가하도록 한다.

    <resource>
        <data-source>
            <database> 
                <vendor>sybase</vendor>
                <export-name>bctDs</export-name>
                <data-source-class-name>
                    com.sybase.jdbc3.jdbc.SybConnectionPoolDataSource
                </data-source-class-name>
                <data-source-type>ConnectionPoolDataSource</data-source-type>
                <database-name>bct</database-name>
                <data-source-name>
                    com.sybase.jdbc3.jdbc.SybConnectionPoolDataSource
                </data-source-name>
                <description>
                    BCT Sybase Database - NON-XA DataSource - DEV Server
                </description>
                <network-protocol>Tds</network-protocol>
                <port-number>3000</port-number>
                <server-name>127.0.0.1</server-name>
                <user>kyungseo</user>
                <password>kyungseo</password>
                <property>
                    <name>CHARSET</name>
                    <type>java.lang.String</type>
                    <value>eucksc</value>
                </property>
                <connection-pool>
                    <pooling>
                        <min>2</min>
                        <max>30</max>
                        <step>4</step>
                        <period>3600000</period>
                    </pooling>
                </connection-pool>
            </database>
        </data-source>
    </resource>


    2.2 DB 세팅

    ASE 15에서는 Configuration parameters 항목 중 'disable character set conversions' 파라미터의 값을 “1”로 세팅하여야 한다. 'disable character set conversions'의 기본값은 “0”으로 이것은 client에서 Adaptive Server로 데이터가 이동할 때, character set conversions 기능을 사용하겠다는 의미이다. 따라서 이 값을 “1”로 변경하여 데이터가 컨버전 되지 않도록 하여야 한다.

    참고로 ASE 12.5.x에서는 Database의 기본 charset과 무관하므로 이러한 작업이 불필요하다.


    sp_configure "disable character set conversions" 1


    3 참고 사항

    JDBC 드라이버로 벤더(Sybase)에서 제공하는 jConnect의 대안으로 공개(GNU LGPL) 버전인 jTDS를 사용할 수 있다. Sybase ASE의 JDBC 드라이버로 주로 jConnect와 jTDS 두가지를 많이 사용하는데, jTDS는 오픈 소스로써 Microsoft SQL Server ( 6.5, 7, 2000 그리고 2005) 와 Sybase (10, 11, 12, 15)를 지원하는 100% 순수 자바 JDBC 3.0 드라이버(type 4)이다.

    jTDS(jtds-1.2.2.jar)를 사용할 경우 ASE가 15 버전이라 하더라도 Database의 설정 변경 없이 다음과 같이 URL에 속성값을 전송하면 한글 문제가 해결된다.

    driver=net.sourceforge.jtds.jdbcx.JtdsDataSource
    url=jdbc:jtds:sybase://IP_ADDRESS:PORT_NUMBER/bct;charset=euc-kr
    username=kyungseo
    password=kyungseo


    단, 주의할 것은 jTDS의 경우 sybase에 정의된 character-set인 eucksc가 아닌 euc-kr로 값을 세팅해야한다(처음에 eucksc로 설정하고 테스트하다가 한글이 깨져 나오길래 좌절 모드로 돌입하고, 관련 문서 뒤져보기 직전... 혹시나 하고 euc-kr로 해본 것이 적중! ^^).

    다음은 테스트 코드이다.

    package kyungseo.test.db;
     
    import java.sql.Connection;
    import java.sql.Driver;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import kyungseo.test.util.HangulUtil;
     
    public class JtdsHanTest {
     
    public static void main(String args[]) {
      try {
     
       DriverManager.registerDriver((Driver) Class.forName(
         "net.sourceforge.jtds.jdbc.Driver").newInstance());
       Connection con = DriverManager.getConnection (
         "jdbc:jtds:sybase://127.0.0.1:3000/db;charset=euc-kr", "kyungseo", "kyungseo");
       Statement stmt = con.createStatement();
     
       ResultSet rs = stmt.executeQuery("select han_column from table");
     
       if (rs.next()) {
        String value = rs.getString("han_column");
        System.out.println("원래 값: " + value);
        System.out.println("한글 값: " + HangulUtil.ko(value));
       }
       rs.close();
      }
      catch (SQLException sqe) {
       System.out.println("Unexpected exception : " + sqe.toString()
         + ", sqlstate = " + sqe.getSQLState ());
       System.exit(1);
      }
      catch (Exception e) {
       e.printStackTrace();
       System.exit(1);
      }
      finally {
       if ( stmt != null ) try { stmt.close();}catch(Exception e){}
       if ( con != null ) try { con.close();}catch(Exception e){}
      }
      System.exit(0);
    }
     
    }


    4 참고 사이트



    사용자 삽입 이미지
  • "Development Story" 카테고리의 다른 글

    2007/12/03 17:26 2007/12/03 17:26
     
    Bookmark and Share

    Sybase ASE isql (SQL Advantage replacement)

    2007/10/22 11:33
    Sybase를 처음 접하게 되었는데, 이곳에서 사용하던 Client 툴이 맘에 들지 않아 이것 저것 찾아보는 중이다.
    게중에 쓸만한 듯 보이는 것이 ASE isql이다.

    아무래도 MS SQL의 쿼리 분석기가 그립다... ㅜ.ㅡ


    Sybase ASE isql (SQL Advantage replacement)


    개발자가 말하길, SQL Advantage가 편리하지 않아서 자신을 위한 툴로 ASE Isql을 만들었다고 한다. ^^


    Download

    ASE Isql의 공식 홈 페이지에서 다운로드 할 수 있다.

    * ASE Isql: Sybase ASE isql (SQL Advantage replacement)

    2007년 10월 현재 최신 버전은 aseisql (UNICODE) built on 2007-10-18(YMD)이다.

    Features

    • 유니코드 지원(UTF8)
    • Marker 관리.
    • BEGIN-END 섹션을 폴딩(expand/collapse)
    • SQL 개체의 컨텍스트 메뉴 지원(proc 이름이 선택된 경우 “Open procedure” 와 같은 형태)
    • Trigger 지원
    • Sybase 디버거(sqldbgr) 통합

    Screenshot

    로그온

    메인 창

    오브젝트 브라우저

    옵션


    "Useful Tools" 카테고리의 다른 글

    2007/10/22 11:33 2007/10/22 11:33
     
    Bookmark and Share