¥È¥Ã¥× º¹Ê¬ °ìÍ÷ ¥½¡¼¥¹ ¸¡º÷ ¥Ø¥ë¥× RSS ¥í¥°¥¤¥ó

BugTrack-£ÒÈ÷˺Ͽ/26

£ÒÈ÷˺Ͽ /¾õÂÖ¶õ´Ö¥â¥Ç¥ê¥ó¥°/donlp2/¤½¤Î¾¤Î¥á¥â

£ÒÈ÷˺Ͽ - µ­»ö°ìÍ÷

RODBC¤Ç¤¤¤í¤ó¤Ê¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÈÄÌ¿®¤¹¤ë

  • Åê¹Æ¼Ô¡§ ¤ß¤å
  • ¥«¥Æ¥´¥ê¡§ ¤Ê¤·
  • Í¥ÀèÅÙ¡§ ÉáÄÌ
  • ¾õÂÖ¡§ ´°Î»
  • Æü»þ¡§ 2009ǯ04·î22Æü 08»þ50ʬ44ÉÃ

ÆâÍÆ

R¤Î¥Ñ¥Ã¥±¡¼¥¸¡ÚRODBC¡Û¤ò»È¤Ã¤Æ¤ß¤ë

  • ¤È¤¤¤¦¤«¡¢¼Â̳¤Ç¤Ï»È¤¤¤Þ¤¯¤Ã¤Æ¤Þ¤¹¡¥

unixODBC¤Î¥¤¥ó¥¹¥È¡¼¥ë

  • RODBC¤ò»È¤¦¤¿¤á¤Ë¤Ï¤Þ¤ºunixODBC¤ò¥¤¥ó¥¹¥È¡¼¥ë¤¹¤ëɬÍפ¬¤¢¤ë
    • ¡ÊiODBC¤Ç¤â¤¤¤¤¤Î¤«¤â¤·¤ì¤Ê¤¤¡¥Å¬Åö¡Ë
  • ¥³¥ó¥Õ¥£¥°
./configure --sysconfdir=/etc --enable-gui=no
    • ¡Ö--sysconfdir¡×¤òÀßÄꤷ¤Ê¤¤¤È¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡Ö/usr/etc¡×¤Ëodbc.ini¤È¤«odbcinst.ini¤¬¤¢¤ë¤È»×¤¦¤é¤·¤¤¡¥
    • ¼Â¹Ô»þ¤Ë´Ä¶­ÊÑ¿ô¡ÖODBCSYSINI=/etc¡×¤Ç¤â¤¤¤¤¤é¤·¤¤¡¥¥Æ¥¹¥ÈºÑ¤ß¡¥
    • ¡Ö--enable-gui=no¡×¤Ï¤ß¤å¤Î´Ä¶­¤Ç¤Ï¡ÖQt¤¬¤Ê¤¯¤Æ¥³¥ó¥Õ¥£¥°¤¬Ä̤é¤Ê¤¤¤è¡×¤ÈÅܤé¤ì¤¿¤Î¤Ç¡¢¤Ä¤±¤¿¤À¤±¡¥
  • make
make
  • ¥¤¥ó¥¹¥È¡¼¥ë¡¥root¤Ë¤Ê¤Ã¤Æ
make install

PostgreSQL

  • À¤³¦¤Ç¤ÏSUN¤¬MySQLÇã¼ý¤·¤Æ¤«¤é¡¢MySQL¤¬Âçή¹Ô¤Ê¤ó¤À¤½¤¦¤Ç¡¥
  • ¤½¤ó¤Ê¤³¤È¤¤¤Ã¤Æ¤â¡¢¤³¤Ã¤Á¤ÏPostgreSQL¤Ç¤â¤¦¶È̳¤Þ¤ï¤Ã¤Á¤ã¤Ã¤Æ¤ó¤À¤â¤ó¤µ¡Ê¶òÃÔ¡Ë¡¥
  • unixODBC¤ÇPostgreSQL¤ÈÄÌ¿®¤¹¤ë¤¿¤á¤Ë¤Ï¡¢°Ê²¼¤Î£²¤Ä¤¬É¬ÍפǤ¹
    • PostgreSQL¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î¥¤¥ó¥¹¥È¡¼¥ë
    • psqlodbc¤Î¥¤¥ó¥¹¥È¡¼¥ë

PostgreSQL¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î¥¤¥ó¥¹¥È¡¼¥ë

  • ¥µ¡¼¥Ð¡¼¤Î¥½¡¼¥¹¤Ë¥¯¥é¥¤¥¢¥ó¥È¤¬Æþ¤Ã¤Æ¤ë¤Î¤Ç¥µ¡¼¥Ð¡¼¤Î¥½¡¼¥¹¤ò¥À¥¦¥ó¥í¡¼¥É
  • ÉáÄ̤˥³¥ó¥Õ¥£¥°
./configure
  • ÉáÄ̤Ëmake
make
  • root¤Ë¤Ê¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë¡¥¥¯¥é¥¤¥¢¥ó¥È¤À¤±¤Ê¤Î¤Ç°Ê²¼¤Ç¡¥¥½¡¼¥¹¤Ë´Þ¤Þ¤ì¤ë¡ÖINSTALL¡×¤Ë½ñ¤¤¤Æ¤¢¤ë¡¥£¶£¸£°¹ÔÌܤ¢¤¿¤ê¡¥
make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install

psqlodbc

  • ¥³¥ó¥Õ¥£¥°
./configure
    • ¥³¥ó¥Õ¥£¥°¤¬Ä̤é¤Ê¤¤¤³¤È¤¬¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡¥¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤Ï¤ï¤¹¤ì¤¿¤±¤É¡¢long¤Î¥µ¥¤¥º¤¬¼èÆÀ¤Ç¤­¤Ê¤¤¤È¤«¤Ê¤ó¤È¤«¡¥¤Þ¤¿½Ð¤¿¤é¹¹¿·¤·¤è¤¦¡¥
    • ¤½¤Î¾ì¹ç¤Ï¡Ö/usr/lib:/usr/local/lib¡×¤ò¡ÖLD_LIBRARY_PATH¡×¤ËÄɲ乤ë¤È¤¦¤Þ¤¯¤¤¤¯¤«¤â¡¥
    • ¤Ä¤¤¤Ç¤Ë¡Ö/usr/local/pgsql/lib¡×¤â¡ÖLD_LIBRARY_PATH¡×¤ËÄɲ䷤Ƥª¤³¤¦¡¥
  • make
make
    • make¤Ç¤â¥¨¥é¡¼¤¬½Ð¤ë¤È»×¤¦¡¥
    • ¡Öunixodbc¤Î´Ø¿ôÄêµÁ¤È°ú¿ô¤¬°ã¤¦¡×¤È¤«Åܤé¤ì¤ë¤Î¤Ç¡¢psqlodbc¦¤Î¥½¡¼¥¹¤ò¹ç¤¦¤è¤¦¤ËÊѹ¹¤·¤Á¤ã¤¤¤Þ¤¹¡¥´Ä¶­¤Ë¤è¤Ã¤ÆÅܤé¤ì¤ë¾ì½ê¤Ï°ã¤¦¤È»×¤¦¤±¤É¡¢°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¡¥
SQLRETURN SQL_API SQLColAttributeW(
        SQLHSTMT        hstmt,
        SQLUSMALLINT    iCol,
        SQLUSMALLINT    iField,
        SQLPOINTER      pCharAttr,
        SQLSMALLINT     cbCharAttrMax,
        SQLSMALLINT     *pcbCharAttr,
#if defined(WITH_UNIXODBC) || (defined(WIN32) && ! defined(_WIN64))
        /*SQLPOINTER    pNumAttr*/                          ¢«¤³¤³¤ò¥³¥á¥ó¥È¥¢¥¦¥È
        SQLLEN          *pNumAttr                           ¢«¤³¤Î¹Ô¤òÄɲÃ
#else
        SQLLEN          *pNumAttr
#endif
        )
{
    • ²È¤Î£³£²¥Ó¥Ã¥È´Ä¶­¤À¤È£²²Õ½ê¡¢²ñ¼Ò¤Î£¶£´¥Ó¥Ã¥È´Ä¶­¤À¤È£³²Õ½ê½¤Àµ¤·¤¿¡¥
  • make¤¬Ä̤俤顢root¤Ë¤Ê¤Ã¤Æ¥¤¥ó¥¹¥È¡¼¥ë
make install

¡Ú/etc/odbcinst.ini¡Û¤ÎÀßÄê

[PostgreSQL64]   ­¡
Description    = ODBC for PostgreSQL   ­¢
Driver         = /usr/local/lib/psqlodbcw.so   ­£
Setup          = /usr/local/lib/libodbcpsqlS.so   ­¤
FileUsage      = 1   ­¥
  • ­¡¤Ï¡Úodbc.ini¡Û¤Ç»²¾È¤¹¤ë̾Á°¡¥²¿¤Ç¤â¤¤¤¤¤±¤É¡¢¤ï¤«¤ê°×¤¤¤â¤Î¤ò¤Ä¤±¤Þ¤·¤ç¤¦¡¥
  • ­¢¤Ï¥³¥á¥ó¥È
  • ­£¤È­¤¤Ï¤è¤¯¤ï¤«¤ó¤Ê¤¤¤±¤É¤³¤ì¤ÇÆ°¤¤¤Æ¤Þ¤¹¡¥
  • ­¥¤âÉÔÌÀ¡¦¡¦¡¦
  • ¤Á¤Ê¤ß¤Ë¾åµ­.so¤Îldd¤Ï°Ê²¼¤Ê´¶¤¸
$ ldd /usr/local/lib/psqlodbcw.so
        libpq.so.5 => /usr/local/pgsql/lib/libpq.so.5 (0x00002ae1edddb000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002ae1ee014000)
        libodbcinst.so.1 => /usr/local/lib/libodbcinst.so.1 (0x00002ae1ee22e000)
        libc.so.6 => /lib64/libc.so.6 (0x00002ae1ee444000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00002ae1ee797000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003ebca00000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00002ae1ee9cf000)
$ ldd /usr/local/lib/libodbcpsqlS.so
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b727afaf000)
        libc.so.6 => /lib64/libc.so.6 (0x00002b727b1c9000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003ebca00000)

¡Ú/etc/odbc.ini¡Û¤ÎÀßÄê

[ZZZ_zzz]   ­¡
Description     = PostgreSQL   ­¢
Driver          = PostgreSQL64   ­£
Trace           = No
TraceFile       =
Database        = aaa   ­¤
Servername      = host_name   ­¥
Username        =
Password        =
Port            = 5432
Protocol        = 6.4
ReadOnly        = No
RowVersioning   = No
ShowSystemTables= No
ShowOidColumn   = No
FakeOidIndex    = No
ConnSettings    =
UseID           =
  • ­¡Å¬Åö¤Ê̾Á°¤ò¤Ä¤±¤Þ¤·¤ç¤¦¡¥¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é»²¾È¤µ¤ì¤Þ¤¹¡¥
  • ­¢¥³¥á¥ó¥È¤Ç¤¹
  • ­£¡Öodbcinst.ini¡×¤Ç¤Ä¤±¤¿Ì¾Á°¤Ç¤É¤Î¥É¥é¥¤¥Ð¡¼¤ò»È¤¦¤Î¤«¤ò»ØÄꤷ¤Þ¤¹¡¥
  • ­¤postgreSQL¤Î»ÈÍѤ¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î̾Á°¤ò»ØÄꤷ¤Þ¤¹¡¥
  • ­¥¥µ¡¼¥Ð¡¼¤Î¥Û¥¹¥È̾¤Ç¤¹¡¥
  • ¤³¤ì¤ÇÆ°¤¯¤Ï¤º¤Ç¤¹¡¥
  • isql¤Ç³Îǧ¤·¤Æ¤ß¤Þ¤·¤ç¤¦
isql ZZZ_zzz uid pwd -v
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
    • -v¤ò¤Ä¤±¤ë¤³¤È¤Ç¡¢¤Ä¤Ê¤¬¤é¤Ê¤¤¾ì¹ç¤Î¥Ò¥ó¥È¤Ë¤Ê¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡¥

R

library(RODBC)
cn <- odbcConnect("ZZZ_zzz", "postgreSQL¤Î¥æ¡¼¥¶¡¼Ì¾", "¥Ñ¥¹¥ï¡¼¥É")
  • Àܳ´°Î»

¥³¥á¥ó¥È