⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 picodbapi.java

📁 picoSQL is a SQL-based, multi-user, client/server RDBMS, released under the GPL
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/*_____       _    _    Corso   Italia,  178(_|__   .  (_   |_|_  56125           Pisa(_|_) |)|(()_)()| |   tel.  +39  050 46380  |   |               picosoft@picosoft.it Copyright (C) Picosoft s.r.l. 1995-2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/package IT.picosoft.jdbc;import java.io.PrintStream;import java.io.UnsupportedEncodingException;import java.math.BigDecimal;import java.sql.*;import java.net.*;import java.util.Vector;import java.util.Calendar;import org.omg.CORBA.*;public class PicoDbApi {   public static final short SQL_NTS = -3;/*   public static final int MajorVersion = 1;   public static final int MinorVersion = 0;*/   private static final String id = JDBCPicoDbHelper.id();   private static final String key = "key";   //private static ORB orb = ORB.init(new String[0], null);   private ORB orb;   private int hEnv = OdbcDef.SQL_NULL_HENV;   private JDBCPicoDb getCORBAServer(String host, int port) {      return JDBCPicoDbHelper.narrow((org.omg.CORBA.Object)orb.string_to_object((new IOR(id, host, port, key)).toString()));   }   public static String getLocalHost() {      String hostName = null;      try {hostName = InetAddress.getLocalHost().getHostName();}      catch (Exception e) {}      return hostName;   }   public String charSet;   private JDBCPicoDb server;   private IntHolder returnCodeHolder = new IntHolder();   private String sqlState = "";   private String sqlErrMess = "";   public PicoDbApi() {      if (DriverManager.getLogWriter() != null) {         java.util.Date date = new java.util.Date();         DriverManager.println ("Jdbc PicoDb thin client");         DriverManager.println ("Current Date/Time: " + date.toString());         DriverManager.println ("Loading PicoDbApi library");         DriverManager.println ("orb = " + orb);      }      orb = ORB.init(new String[0], null);   }   public void finalize () {   }   public int SQLAllocEnv() throws SQLException { if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLAllocEnv)");      return 1;   }   public int SQLAllocConnect(int i) throws SQLException {      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLAllocConnect)");      return 1;   }   public int SQLAllocStmt(OdbcConnection HDBC) throws SQLException {      int hDbc = HDBC.getHDBC();      if(DriverManager.getLogWriter() != null)         DriverManager.println("!--(SQLAllocStmt), hDbc=" + hDbc);      IntHolder hStmtHolder = new IntHolder();      server.SQLAllocStmt(returnCodeHolder, hDbc, hStmtHolder);      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, hDbc, 0);      if(DriverManager.getLogWriter() != null)         DriverManager.println("hStmt=" + hStmtHolder.value);      return hStmtHolder.value;   }   public void SQLFreeEnv(int hEnv) throws SQLException {      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLFreeEnv), hEnv=" + hEnv);   }   public void SQLFreeConnect(OdbcConnection HDBC) throws SQLException {      int hDbc;      hDbc = HDBC != null ? HDBC.getHDBC() : 0;      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLFreeConnect), hDbc=" + hDbc);      try {         server.SQLFreeConnect(returnCodeHolder, hDbc);      } catch (org.omg.CORBA.SystemException e) {        // vfc jdk1.4      }      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, hDbc, 0);   }   public void SQLFreeStmt(OdbcStatement HSTMT, short fOption) throws SQLException {      int hStmt = HSTMT.getHSTMT();      if(DriverManager.getLogWriter() != null)         DriverManager.println("!--(SQLFreeStmt), hStmt=" + hStmt +                          ", fOption=" + fOption);      server.SQLFreeStmt(returnCodeHolder, hStmt, fOption);      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, 0, hStmt);   }   public void SQLDisconnect(OdbcConnection HDBC) throws SQLException {      int hDbc = HDBC.getHDBC();      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLDisconnect), hDbc=" + hDbc);      server.SQLDisconnect(returnCodeHolder, hDbc);      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, hDbc, 0);   }   public int SQLConnect(String connStr, String user, String pass)                       throws SQLException, SQLWarning {      String host = getLocalHost();      String port = "9876";      String dsn = "default";      IntHolder hDbcHolder = new IntHolder();      IntHolder hEnvHolder = new IntHolder();      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLConnect), this=" + this + " thread = " + Thread.currentThread());      int j, i = connStr.indexOf(':');      if (i >= 0) {         host = connStr.substring(0, i);         j = connStr.indexOf(':', i + 1);         if (j >= 0) {            port = connStr.substring(i + 1, j);            dsn = connStr.substring(j + 1);         } else {            port = connStr.substring(i);         }      } else {         host = connStr;      }      if (host.charAt(0) == '@')         host = host.substring(1);           if(DriverManager.getLogWriter() != null)         DriverManager.println("Debug " + host + " " + port);      server = getCORBAServer(host, Integer.parseInt(port));      if(DriverManager.getLogWriter() != null)         DriverManager.println("Debug " + server + ","  + hEnv);      if (hEnv == OdbcDef.SQL_NULL_HENV) {         server.SQLAllocEnv(returnCodeHolder, hEnvHolder);         if (returnCodeHolder.value == OdbcDef.SQL_ERROR) {            standardError (returnCodeHolder.value, 0, 0, 0);         }         hEnv = hEnvHolder.value;      }      server.SQLAllocConnect(returnCodeHolder, hEnv, hDbcHolder);      if(DriverManager.getLogWriter() != null)         DriverManager.println("Debug " + hEnv + "," + hDbcHolder);      if (returnCodeHolder.value == OdbcDef.SQL_ERROR) {         standardError (returnCodeHolder.value, 0, hDbcHolder.value, 0);      } else {         if(DriverManager.getLogWriter() != null)            DriverManager.println("(SQLAlloc), hDbc=" + hDbcHolder.value +                                   ",rc=" + returnCodeHolder.value);         if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)            standardError (returnCodeHolder.value, 0, 0, 0);         if(DriverManager.getLogWriter() != null)            DriverManager.println("(SQLConnect), hDbc=" +                                  hDbcHolder.value +                                   ", dsn=" + dsn +                                  ", user=" + user +                                  ", pass=" + pass +                                  ", host=" + host +                                  ", port=" + port);         server.SQLConnect(            returnCodeHolder,            hDbcHolder.value,            dsn, SQL_NTS,            user, SQL_NTS,            pass, SQL_NTS         );         if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) {            standardError (returnCodeHolder.value, 0, hDbcHolder.value, 0);         }      }      return hDbcHolder.value;   }   public void SQLCancel(OdbcStatement HSTMT)      throws SQLException, SQLWarning   {      int hStmt = HSTMT.getHSTMT();      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLCancel), hStmt=" + hStmt);      server.SQLCancel(returnCodeHolder, hStmt);      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, 0, hStmt);   }   public int SQLColAttributes(OdbcStatement HSTMT, int icol, short type)      throws SQLException, PicoSQLWarning {      int hStmt = HSTMT.getHSTMT();      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLColAttributes int), hStmt=" + hStmt + ", icol=" + icol + ", type=" + type);      OctetSequenceHolder rgbDesc = new OctetSequenceHolder(new byte[2]);      ShortHolder pcbDesc = new ShortHolder();      IntHolder pfDesc = new IntHolder();      short cbDescMax = 2;      server.SQLColAttributes(returnCodeHolder,hStmt,(short)icol,type,rgbDesc,                              cbDescMax, pcbDesc, pfDesc);      if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS)         standardError (returnCodeHolder.value, 0, 0, hStmt);      if(DriverManager.getLogWriter() != null)         DriverManager.println("value (int)=" + pfDesc.value);      return pfDesc.value;   }   public String SQLColAttributesString(OdbcStatement HSTMT, int icol, short type)      throws SQLException, PicoSQLWarning {      int hStmt = HSTMT.getHSTMT();      if(DriverManager.getLogWriter() != null)         DriverManager.println("(SQLColAttributes String), hStmt=" + hStmt + ", icol=" + icol + ", type=" + type);      OctetSequenceHolder rgbDesc = new OctetSequenceHolder(new byte[128]);      ShortHolder pcbDesc = new ShortHolder();      IntHolder pfDesc = new IntHolder();      short cbDescMax = 128;      server.SQLColAttributes(returnCodeHolder,hStmt,(short)icol,type,rgbDesc,                              cbDescMax, pcbDesc, pfDesc);      String Return = new String();      try {         Return = PicoUtil.BytesToChars(charSet, rgbDesc.value);      } catch(UnsupportedEncodingException unsupportedencodingexception) {         if(DriverManager.getLogWriter() != null)            DriverManager.println(unsupportedencodingexception.toString());      }      if(DriverManager.getLogWriter() != null)         DriverManager.println("value (String)=" + Return.trim());      return Return.trim();   }   public void SQLColumns(OdbcStatement HSTMT, String catalog, String schema, String table, String colType)      throws SQLException, SQLWarning   {      int hStmt = HSTMT.getHSTMT();      if(DriverManager.getLogWriter() != null) {         DriverManager.println("(SQLColumns), hStmt=" + hStmt + ", catalog=" + catalog + ", schema=" + schema + ", table=" + table + ", colType=" + colType);      }      server.SQLColumns(         returnCodeHolder,         hStmt,         catalog == null ? "" : catalog,         catalog == null ? OdbcDef.SQL_NULL_DATA : SQL_NTS,         schema == null ? "" : schema,         schema == null ? OdbcDef.SQL_NULL_DATA : SQL_NTS,         table == null ? "%" : table,         table == null ? OdbcDef.SQL_NULL_DATA : SQL_NTS,         colType == null ? "" : colType,         colType == null ? OdbcDef.SQL_NULL_DATA : SQL_NTS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -