📄 picodbapi.java
字号:
public int SQLNumParams(OdbcStatement HSTMT) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); int numPar = 0; if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLNumParams), hStmt=" + hStmt); ShortHolder numParHolder = new ShortHolder(); server.SQLNumResultCols(returnCodeHolder, hStmt, numParHolder); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if(DriverManager.getLogWriter() != null) DriverManager.println("value=" + numParHolder.value); return numParHolder.value; } public int SQLNumResultCols(OdbcStatement HSTMT) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLNumResultCols), hStmt=" + hStmt); ShortHolder pccol = new ShortHolder(); server.SQLNumResultCols(returnCodeHolder, hStmt, pccol); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); if(DriverManager.getLogWriter() != null) DriverManager.println("value=" + pccol.value); return pccol.value; } public void SQLPrepare(OdbcStatement HSTMT, String szSqlStr) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLPrepare), hStmt=" + hStmt + ", szSqlStr=" + szSqlStr); server.SQLPrepare (returnCodeHolder, hStmt, szSqlStr, szSqlStr.length()); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public int SQLRowCount(OdbcStatement HSTMT) throws SQLException, PicoSQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLRowCount), hStmt=" + hStmt); IntHolder pcrow = new IntHolder(); server.SQLRowCount(returnCodeHolder, hStmt, pcrow); if(DriverManager.getLogWriter() != null) DriverManager.println("value=" + pcrow.value); return pcrow.value; } public void SQLSetConnectOption(OdbcConnection HDBC, short fOption, int vParam) throws SQLException { int hDbc = HDBC.getHDBC(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLSetConnectOption), hDbc=" + hDbc + ", fOption=" + fOption + ", vParam=" + vParam); server.SQLSetConnectOption(returnCodeHolder, hDbc, fOption, "", vParam); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, hDbc, 0); } public void SQLSetConnectOption(OdbcConnection HDBC, short fOption, String vParam) throws SQLException { int hDbc = HDBC.getHDBC(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLSetConnectOption), hDbc=" + hDbc + ", fOption=" + fOption + ", vParam=" + vParam); server.SQLSetConnectOption(returnCodeHolder, hDbc, fOption, vParam, 0); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, hDbc, 0); } public void SQLSetStmtOption(OdbcStatement HSTMT, short fOption, int vParam) throws SQLException { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLSetStmtOption), hStmt=" + hStmt + ", fOption=" + fOption + ", vParam=" + vParam); server.SQLSetStmtOption(returnCodeHolder, hStmt, fOption, "", vParam); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public void SQLSpecialColumns(OdbcStatement HSTMT, short fColType, String catalog, String schema, String table, int fScope, boolean fNullable) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLSpecialColumns), hStmt=" + hStmt + ", fColType=" + fColType + ",catalog=" + catalog + ", schema=" + schema + ", table=" + table + ", fScope=" + fScope + ", fNullable=" + fNullable); server.SQLSpecialColumns( returnCodeHolder, hStmt, fColType, 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, (short)fScope, (short)(fNullable ? OdbcDef.SQL_NULLABLE : OdbcDef.SQL_NO_NULLS) ); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public void SQLStatistics(OdbcStatement HSTMT, String catalog, String schema, String table, boolean unique, boolean approximate) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLStatistics), hStmt=" + hStmt + ",catalog=" + catalog + ", schema=" + schema + ", table=" + table + ", unique=" + unique + ", approximate=" + approximate); server.SQLStatistics( 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, (short)(unique ? OdbcDef.SQL_INDEX_UNIQUE : OdbcDef.SQL_INDEX_ALL), (short)(approximate ? OdbcDef.SQL_QUICK : OdbcDef.SQL_ENSURE) ); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public void SQLTables(OdbcStatement HSTMT, String catalog, String schema, String table, String types) throws SQLException, SQLWarning { int hStmt = HSTMT.getHSTMT(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLTables), hStmt=" + hStmt + ",catalog=" + catalog + ", schema=" + schema + ", table=" + table + ", types=" + types); server.SQLTables( 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, types == null ? "" : types, types == null ? OdbcDef.SQL_NULL_DATA : SQL_NTS ); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, 0, 0, hStmt); } public void SQLTransact(int hEnv, OdbcConnection HDBC, short fType) throws SQLException { int hDbc = HDBC.getHDBC(); if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLTransact), hEnv=" + hEnv + ", hDbc=" + hDbc + ", fType=" + fType); server.SQLTransact(returnCodeHolder, hEnv, hDbc, fType); if (returnCodeHolder.value != OdbcDef.SQL_SUCCESS) standardError (returnCodeHolder.value, hEnv, hDbc, 0); } public int SQLError(int hEnv, int hDbc, int hStmt) { int Return; StringHolder outSqlState = new StringHolder(); StringHolder outErrorMsg = new StringHolder(); IntHolder outNativeError = new IntHolder(); ShortHolder pcbErrorMsg = new ShortHolder(); server.SQLError(returnCodeHolder, hEnv, hDbc, hStmt, outSqlState, outNativeError, outErrorMsg, (short)512, pcbErrorMsg); if (returnCodeHolder.value == OdbcDef.SQL_NO_DATA_FOUND) { sqlState = ""; sqlErrMess = ""; Return = 0; } else if (returnCodeHolder.value == OdbcDef.SQL_ERROR) { sqlState = "S10000"; sqlErrMess = "General Error - Error on SQLError"; Return = 0; } else { sqlState = outSqlState.value; sqlErrMess = outErrorMsg.value; Return = (outNativeError.value == 0) ? 9999 : outNativeError.value; } if(DriverManager.getLogWriter() != null) DriverManager.println("(SQLError), hEnv=" + hEnv + ", hDbc=" + hDbc + ", hStmt=" + hStmt + " [" + sqlErrMess + "]=" + Return); return Return; } public static SQLWarning convertWarning(PicoSQLWarning warn) { SQLWarning Return = warn; if(warn.getSQLState().equals("01004")) { Return = new DataTruncation(-1, false, true, 0, 0); } return Return; } SQLException createSQLException(int hEnv, int hDbc, int hStmt) { int error; SQLException Return = null, currEx = null, lastEx = null; if (DriverManager.getLogWriter() != null) DriverManager.println("ERROR - Generating SQLException..."); while((error = SQLError (hEnv, hDbc, hStmt)) != 0) { currEx = new SQLException(sqlErrMess, sqlState, error); if (Return == null) Return = currEx; else lastEx.setNextException(currEx); lastEx = currEx; } if (Return == null) { Return = new PicoSQLWarning("General Error", "S1000"); } return Return; } PicoSQLWarning createSQLWarning(int hEnv, int hDbc, int hStmt) { int error; PicoSQLWarning Return = null, currEx = null, lastEx = null; if(DriverManager.getLogWriter() != null) DriverManager.println("WARNING - Generating SQLWarning..."); while((error = SQLError (hEnv, hDbc, hStmt)) != 0) { currEx = new PicoSQLWarning(sqlErrMess, sqlState, error); if (Return == null) Return = currEx; else lastEx.setNextWarning(currEx); lastEx = currEx; } if (Return == null) { Return = new PicoSQLWarning("General warning", "01000"); } return Return; } void standardError(int retCode, int hEnv, int hDbc, int hStmt) throws SQLException, PicoSQLWarning { if(DriverManager.getLogWriter() != null) DriverManager.println("RETCODE = " + retCode); switch(retCode) { case OdbcDef.SQL_SUCCESS: return; case OdbcDef.SQL_ERROR: throw createSQLException(hEnv, hDbc, hStmt); case OdbcDef.SQL_SUCCESS_WITH_INFO: throw createSQLWarning(hEnv, hDbc, hStmt); case OdbcDef.SQL_INVALID_HANDLE: throw new SQLException("Invalid handle"); case OdbcDef.SQL_NO_DATA_FOUND: throw new SQLException("No data found"); } throwGenericSQLException(retCode); } void throwGenericSQLException(int code) throws SQLException { String reason = "Unknown return code " + code; String sqlstate = "S1000"; if(DriverManager.getLogWriter() != null) DriverManager.println("ERROR - " + sqlstate + " " + reason); throw new SQLException(reason, sqlstate); } protected void ReleaseStoredBytes(int i, int j){} protected void ReleaseStoredChars(int i, int j){} public int bufferToInt(byte abyte0[]){return 0;} static private String fractToString (int fract) { String Return = "000" + fract; return Return.substring(Return.length() - 3); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -