📄 picodbapi.java
字号:
{ int hDbc = HDBC.getHDBC(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetConnectOption), hDbc=" + hDbc + ", fOption=" + fOption); IntHolder optionValueHolder = new IntHolder(); StringHolder optionStringValueHolder = new StringHolder(); server.SQLGetConnectOption(returnCodeHolder, hDbc, fOption, optionStringValueHolder, optionValueHolder); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, hDbc, 0); if(DriverManager.getLogWriter() != null) DriverManager.println("option value (int)=" + optionStringValueHolder.value.trim()); return optionStringValueHolder.value.trim(); } public String SQLGetCursorName(OdbcStatement HSTMT) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetCursorName), hStmt=" + hStmt); StringHolder cursorNameHolder = new StringHolder(); ShortHolder cursorNameLengthHolder = new ShortHolder(); server.SQLGetCursorName(returnCodeHolder, hStmt, cursorNameHolder, (short)256, cursorNameLengthHolder); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); String cursorName = cursorNameHolder.value.trim(); if(DriverManager.getLogWriter() != null) DriverManager.println("value=" + cursorName); return cursorName; } public java.lang.Object[] SQLGetAllData (OdbcStatement HSTMT, PicoBoundCol attr[]) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); AnySequenceHolder dataHolder = new AnySequenceHolder(); CommAttr_seqHolder attrHolder = new CommAttr_seqHolder(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetAllData), hStmt=" + hStmt); server.SQLGetAllData(returnCodeHolder,hStmt,dataHolder,attrHolder); if (returnCodeHolder.value == OdbcDef.SQL_ERROR) standardError (returnCodeHolder.value, 0, 0, hStmt); if (DriverManager.getLogWriter() != null) DriverManager.println("value=" + dataHolder); java.lang.Object Return[]=new java.lang.Object[dataHolder.value.length]; for (int i = 0; i < dataHolder.value.length; i++) { attr[i].setLength (attrHolder.value[i].length); attr[i].setType (OdbcDef.odbcTypeToJdbc(attrHolder.value[i].type)); attr[i].setPrecision (attrHolder.value[i].precision); attr[i].setScale (attrHolder.value[i].scale); switch (dataHolder.value[i].type().kind().value()) { case TCKind._tk_short: Return[i] = new Short (dataHolder.value[i].extract_short()); break; case TCKind._tk_ushort: Return[i] = new Short (dataHolder.value[i].extract_ushort()); break; case TCKind._tk_long: Return[i] = new Integer (dataHolder.value[i].extract_long()); break; case TCKind._tk_ulong: Return[i] = new Integer (dataHolder.value[i].extract_ulong()); break; case TCKind._tk_float: Return[i] = new Float (dataHolder.value[i].extract_float()); break; case TCKind._tk_double: Return[i] = new Double (dataHolder.value[i].extract_double()); break; case TCKind._tk_string: Return[i] = dataHolder.value[i].extract_string(); break; case TCKind._tk_Principal: org.omg.CORBA.portable.InputStream in = dataHolder.value[i].create_input_stream(); int size = in.read_long(); Return[i] = (java.lang.Object) new byte[size]; in.read_octet_array ((byte[])Return[i], 0, size); break; case TCKind._tk_null: Return[i] = null; break; case TCKind._tk_struct: try { if (Timestamp_structHelper.type().name().equals( dataHolder.value[i].type().name())) { Timestamp_struct ts = Timestamp_structHelper.extract( dataHolder.value[i]); Return[i] = Timestamp.valueOf( ""+ ts.year + "-" + ts.month + "-" + ts.day + " " + ts.hour + ":" + ts.minute +":" + ts.second + "." + fractToString (ts.fraction)); } else { Return[i] = null; throw new SQLException ("Unknown struct " + dataHolder.value[i].type().name() + " col # " + i); } } catch (org.omg.CORBA.TypeCodePackage.BadKind ex) { Return[i] = null; throw new SQLException (ex.toString()); } break; default: Return[i] = null; throw new SQLException ("Unknown tk type " + dataHolder.value[i].type().kind().value() + " col # " + i); } } /* if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); */ return Return; } public Double SQLGetDataDouble(OdbcStatement HSTMT, int icol) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); Double Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData Double), hStmt=" + hStmt + ", icol=" + icol); AnyHolder rgbValue = new AnyHolder(); int cbValueMax = 0; IntHolder pcbValue = new IntHolder(); server.SQLGetData(returnCodeHolder,hStmt,(short)icol,OdbcDef.SQL_DOUBLE, rgbValue, cbValueMax, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (pcbValue.value >= 0) Return = new Double (rgbValue.value.extract_double()); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=" + Return + ",len=" + pcbValue.value); return Return; } public Float SQLGetDataFloat(OdbcStatement HSTMT, int icol) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); Float Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData Float), hStmt=" + hStmt + ", icol=" + icol); AnyHolder rgbValue = new AnyHolder(); int cbValueMax = 0; IntHolder pcbValue = new IntHolder(); server.SQLGetData(returnCodeHolder,hStmt,(short)icol,OdbcDef.SQL_REAL, rgbValue, cbValueMax, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (pcbValue.value >= 0) Return = new Float (rgbValue.value.extract_float()); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=" + Return + ",len=" + pcbValue.value); return Return; } public Integer SQLGetDataInteger(OdbcStatement HSTMT, int icol) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); Integer Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData Integer), hStmt=" + hStmt + ", column=" + icol); AnyHolder rgbValue = new AnyHolder(); int cbValueMax = 0; IntHolder pcbValue = new IntHolder(); server.SQLGetData(returnCodeHolder,hStmt,(short)icol,OdbcDef.SQL_INTEGER, rgbValue, cbValueMax, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (pcbValue.value >= 0) Return = new Integer (rgbValue.value.extract_long()); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=" + Return + ",len=" + pcbValue.value); return Return; } public String SQLGetDataString(OdbcStatement HSTMT, int icol, int cbValueMax, boolean trim) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); String Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData String), hStmt=" + hStmt + ", icol=" + icol + ", cbValueMax=" + cbValueMax); AnyHolder rgbValue = new AnyHolder(); IntHolder pcbValue = new IntHolder(); server.SQLGetData(returnCodeHolder,hStmt,(short)icol,OdbcDef.SQL_CHAR, rgbValue, cbValueMax, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (pcbValue.value >= 0) Return = rgbValue.value.extract_string(); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=[" + Return + "],len=" + pcbValue.value); if (trim && Return != null) return Return.trim(); else return Return; } public byte[] SQLGetDataBytes(OdbcStatement HSTMT, int icol) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); byte[] Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData Bytes), hStmt=" + hStmt + ", icol=" + icol); AnyHolder rgbValue = new AnyHolder(); IntHolder pcbValue = new IntHolder(); server.SQLGetData (returnCodeHolder,hStmt,(short)icol, OdbcDef.SQL_LONGVARBINARY, rgbValue, 0x7fffffff, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=[" + Return + "],len=" + pcbValue.value); org.omg.CORBA.portable.InputStream in = rgbValue.value.create_input_stream(); int size = in.read_long(); Return = new byte[size]; in.read_octet_array ((byte[])Return, 0, size); return Return; } public Timestamp SQLGetDataTimestamp (OdbcStatement HSTMT, int icol) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); Timestamp Return = null; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetData Timestamp), hStmt=" + hStmt + ", icol=" + icol); AnyHolder rgbValue = new AnyHolder(); IntHolder pcbValue = new IntHolder(); server.SQLGetData (returnCodeHolder,hStmt,(short)icol, OdbcDef.SQL_TIMESTAMP, rgbValue, 0, pcbValue); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if (DriverManager.getLogWriter() != null) DriverManager.println("type=" + rgbValue.value.type().kind().value() + ",value=[" + Return + "],len=" + pcbValue.value); Timestamp_struct ts = Timestamp_structHelper.extract(rgbValue.value); Return = Timestamp.valueOf( ""+ ts.year + "-" + ts.month + "-" + ts.day + " " + ts.hour + ":" + ts.minute +":" + ts.second + "." + fractToString(ts.fraction)); return Return; } public int SQLGetStmtOption(OdbcStatement HSTMT, short fOption) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetStmtOption), hStmt=" + hStmt + ", fOption=" + fOption); IntHolder optionValueHolder = new IntHolder(); StringHolder optionStringValueHolder = new StringHolder(); server.SQLGetStmtOption(returnCodeHolder, hStmt, fOption, optionStringValueHolder, optionValueHolder); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if(DriverManager.getLogWriter() != null) DriverManager.println("value=" + optionValueHolder.value); return optionValueHolder.value; } public void SQLGetTypeInfo(OdbcStatement HSTMT, short fSqlType) throws SQLException { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLGetTypeInfo), hStmt=" + hStmt + ", fSqlType=" + fSqlType); server.SQLGetTypeInfo(returnCodeHolder, hStmt, fSqlType); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -