📄 picodbapi.java
字号:
); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public void SQLExecDirect(OdbcStatement HSTMT, String szSqlStr) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLExecDirect), hStmt=" + hStmt + ", szSqlStr=" + szSqlStr); server.SQLExecDirect(returnCodeHolder, hStmt, szSqlStr, SQL_NTS); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public boolean SQLExecute(OdbcStatement HSTMT) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLExecute), hStmt=" + hStmt); server.SQLExecute(returnCodeHolder, hStmt); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); return true; } public boolean SQLExecuteParams(OdbcStatement HSTMT, Vector params) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); int nParams; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLExecuteParams), hStmt=" + hStmt); if (params != null) { for (nParams = 1; nParams < params.size(); nParams++) if (params.get(nParams) == null) break; nParams--; } else nParams = 0; Param_item parSeq[] = new Param_item[nParams]; PicoBoundParam par; for (int i = 0; i < nParams; i++) { par = (PicoBoundParam) params.get(i + 1); parSeq[i] = new Param_item (); parSeq[i].fParamType = par.fInputOutput; parSeq[i].fSqlType = par.fSqlType; parSeq[i].ibScale = (short) par.ibScale; parSeq[i].rgbValue = orb.create_any(); switch (par.fSqlType) { case OdbcDef.SQL_TYPE_NULL: parSeq[i].fSqlType = OdbcDef.SQL_CHAR; parSeq[i].fCType = OdbcDef.SQL_C_CHAR; parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_string(""); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; break; case OdbcDef.SQL_CHAR: case OdbcDef.SQL_VARCHAR: case OdbcDef.SQL_LONGVARCHAR: case OdbcDef.SQL_NUMERIC: case OdbcDef.SQL_DECIMAL: case OdbcDef.SQL_BIGINT: parSeq[i].fCType = OdbcDef.SQL_C_CHAR; if (par.rgbValue == null) { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_string(""); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = par.rgbValue.toString().length(); parSeq[i].cbValueMax = parSeq[i].cbColDef; parSeq[i].rgbValue.insert_string(par.rgbValue.toString()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_BIT: parSeq[i].fCType = OdbcDef.SQL_C_BIT; if (par.rgbValue == null) { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_octet((byte)0); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_octet( (byte)(((Boolean)par.rgbValue).booleanValue() ? 1 : 0)); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_TINYINT: parSeq[i].fCType = OdbcDef.SQL_C_CHAR; if (par.rgbValue == null) { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_octet((byte)0); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].rgbValue.insert_octet( (byte)((Byte)par.rgbValue).byteValue()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_SMALLINT: parSeq[i].fCType = OdbcDef.SQL_C_SHORT; if (par.rgbValue == null) { parSeq[i].cbColDef = 2; parSeq[i].cbValueMax = 2; parSeq[i].rgbValue.insert_short((short)0); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 2; parSeq[i].cbValueMax = 2; parSeq[i].rgbValue.insert_short( ((Integer)par.rgbValue).shortValue()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_INTEGER: parSeq[i].fCType = OdbcDef.SQL_C_LONG; if (par.rgbValue == null) { parSeq[i].cbColDef = 4; parSeq[i].cbValueMax = 4; parSeq[i].rgbValue.insert_long(0); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 4; parSeq[i].cbValueMax = 4; parSeq[i].rgbValue.insert_long( ((Integer)par.rgbValue).intValue()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_REAL: parSeq[i].fCType = OdbcDef.SQL_C_FLOAT; if (par.rgbValue == null) { parSeq[i].cbColDef = 4; parSeq[i].cbValueMax = 4; parSeq[i].rgbValue.insert_float(0F); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 4; parSeq[i].cbValueMax = 4; parSeq[i].rgbValue.insert_float( ((Float)par.rgbValue).floatValue()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_FLOAT: case OdbcDef.SQL_DOUBLE: parSeq[i].fCType = OdbcDef.SQL_C_DOUBLE; if (par.rgbValue == null) { parSeq[i].cbColDef = 8; parSeq[i].cbValueMax = 8; parSeq[i].rgbValue.insert_double(0D); parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 8; parSeq[i].cbValueMax = 8; parSeq[i].rgbValue.insert_double( ((Double)par.rgbValue).doubleValue()); parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_BINARY: case OdbcDef.SQL_LONGVARBINARY: case OdbcDef.SQL_VARBINARY: parSeq[i].fCType = OdbcDef.SQL_C_BINARY; OctetSequenceHelper.insert (parSeq[i].rgbValue, (byte[])(par.rgbValue)); if (par.rgbValue == null) { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = ((byte[])(par.rgbValue)).length; parSeq[i].cbValueMax = 0x7FFFFFFF; parSeq[i].pcbValue = parSeq[i].cbColDef; } break; case OdbcDef.SQL_C_DATE: case OdbcDef.SQL_C_TIME: case OdbcDef.SQL_C_TIMESTAMP: if (par.rgbValue != null) { Timestamp_struct ts = new Timestamp_struct(); Calendar cal = par.cal == null ? Calendar.getInstance():par.cal; cal.setTime ((java.util.Date) par.rgbValue); ts.year = (short) cal.get(Calendar.YEAR); ts.month = (short) (cal.get(Calendar.MONTH) + 1); ts.day = (short) cal.get(Calendar.DAY_OF_MONTH); ts.hour = (short) cal.get(Calendar.HOUR_OF_DAY); ts.minute = (short) cal.get(Calendar.MINUTE); ts.second = (short) cal.get(Calendar.SECOND); ts.fraction = (short) cal.get(Calendar.MILLISECOND); parSeq[i].fCType = OdbcDef.SQL_TIMESTAMP; parSeq[i].fSqlType = OdbcDef.SQL_TIMESTAMP; Timestamp_structHelper.insert (parSeq[i].rgbValue, ts); } if (par.rgbValue == null) { parSeq[i].cbColDef = 1; parSeq[i].cbValueMax = 1; parSeq[i].fCType = OdbcDef.SQL_TIMESTAMP; parSeq[i].fSqlType = OdbcDef.SQL_TIMESTAMP; parSeq[i].pcbValue = OdbcDef.SQL_NULL_DATA; } else { parSeq[i].cbColDef = 16; parSeq[i].cbValueMax = 16; parSeq[i].pcbValue = parSeq[i].cbColDef; } break; default: throw new SQLException("Unknown SQL Type in SQLEcecuteParams=" + par.fSqlType); } } server.SQLExecuteParams(returnCodeHolder, hStmt, parSeq); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); return true; } public boolean SQLFetch(OdbcStatement HSTMT) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); boolean Return = true; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLFetch), hStmt=" + hStmt); IntHolder numCols = new IntHolder(); server.SQLFetch(returnCodeHolder, hStmt, numCols); if (returnCodeHolder.value == OdbcDef.SQL_NO_DATA_FOUND) Return = false; else if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLFetch), ret=" + returnCodeHolder.value + "col=" + numCols.value); return Return; } public boolean SQLFetch(OdbcStatement HSTMT, int nCol[]) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); boolean Return = true; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLFetch), hStmt=" + hStmt); IntHolder numCols = new IntHolder(); server.SQLFetch(returnCodeHolder, hStmt, numCols); if (returnCodeHolder.value == OdbcDef.SQL_NO_DATA_FOUND) Return = false; else if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); nCol[0] = numCols.value; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLFetch), ret=" + returnCodeHolder.value + "col=" + numCols.value); return Return; } public int SQLGetConnectOption(OdbcConnection HDBC, short fOption) throws SQLException { 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)=" + optionValueHolder.value); return optionValueHolder.value; } public String SQLGetConnectOptionString(OdbcConnection HDBC, short fOption) throws SQLException
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -