

Java技术
2005: 03 04 05 06 07 08
09 10 11 12
2006: 01 02
Asp.net
2005: 07 08 09 10 11 12
2006: 01 02

| static { try { // Register the JWDriver with DriverManager JWDriver driverInst = new JWDriver(); DriverManager.registerDriver(driverInst); System.setSecurityManager(new RMISecurityManager()); } ... } |
| if(remoteDriver == null) { remoteDriver= RemoteDriver)Naming.lookup ("rmi://"+serverName +":1099"+"/RemoteDriver"); } |
| { IRemoteConnection remoteConInstance = (IRemoteConnection)remoteDriver.getConnection(); localConInstance = new JWConnection (remoteConInstance); . .. return (Connection)localConInstance; } |
| public Statement createStatement() throws SQLException { try { IRemoteStatement remStmt = (IRemoteStatement) remoteConnection.createStatement(); JWStatement localStmtInstance = new JWStatement(remStmt); return (Statement)localStmtInstance; } } |
| public ResultSet executeQuery(String sqlQuery) throws SQLException { try { IRemoteResultSet remoteRsInstance = (IRemoteResultSet) remoteStmt.executeQuery(sqlQuery); JWResultSet localRsInstance = new JWResultSet(remoteRsInstance); return (ResultSet)localRsInstance; } catch(RemoteException ex) { throw(new SQLException(ex.getMessage())); } } |
| public class JWResultSet implements java.sql.ResultSet { // The current ResultSet data row private Object[] row;//自己替换[] ... public boolean next() throws SQLException { try { // Get the current data row from remote ResultSet // All the getXXX methods will get data from local ´row´ row = remoteResultSet.getNextRow(); } catch(Exception ex) { return false; } if(row == null) { return false; } return true; } } |
| public static void main(String args[])//自己替换[] { System.setSecurityManager(new RMISecurityManager()); try { // Get the data source name, data source user, data source // Password and log level ResourceBundle settingsBundle = ResourceBundle.getBundle( "DriverSettings"); DSN = settingsBundle.getString("DSN"); dsUser = settingsBundle.getString("User"); dsPassword = settingsBundle.getString ("Password"); // Create a RemoteDriverImpl instance to register with naming service RemoteDriverImpl serverInstance = new RemoteDriverImpl(); Naming.rebind ("RemoteDriver",serverInstance); // Load the JDBC-ODBC Bridge driver Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } ... } |
| public IRemoteConnection getConnection() throws RemoteException,SQLException { String URL="jdbc:odbc:"+DSN; Connection sqlCon = DriverManager.getConnection(URL,dsUser,dsPassword); RemoteConnectionImpl ConnectionInstance = new RemoteConnectionImpl(sqlCon); return (IRemoteConnection)ConnectionInstance; } |
| public IRemoteStatement createStatement() throws RemoteException,SQLException { RemoteStatementImpl StmtImplInstance = new RemoteStatementImpl(sqlConnection.createStatement()); return (IRemoteStatement)StmtImplInstance; } |
| public void closeConnection() throws RemoteException,SQLException { sqlConnection.close(); } |
| public IRemoteResultSet executeQuery(String Query) throws RemoteException,SQLException { ResultSet rs = sqlStatment.executeQuery(Query); RemoteResultSetImpl remoteRs = new RemoteResultSetImpl(rs); return (IRemoteResultSet)remoteRs; } |
| public void close() throws RemoteException, SQLException { sqlStatment.close(); } |
| public Object[] getNextRow() throws RemoteException,SQLException//自己替换[] { // Return null if all data has already been iterated if(sqlRs.next() == false) return null; // Prepare the data row in an array of Objects Object []row = new Object[colNum];//自己替换[] for(int i = 1; i <= colNum; i++) { row[i-1] = sqlRs.getString(i);//自己替换[] } return row; } |
| public void close() throws RemoteException,SQLException { sqlRs.close(); } |