// 2006.10.28 qx/ex sql // 2005.10.26 fix setTime setDate // 2005.04.03 getInt etc. on nulls // 2005.03.15 jdbc:q: // jar cf jdbc.jar *.class ..\*.class url(jdbc:q:host:port) isql(new service resources jdbc.jar) // http://www.minq.se/products/dbvis/ import java.io.*;import java.math.*;import java.util.*;import java.sql.*;import java.sql.Date;import java.net.URL; public class jdbc implements Driver{static int V=2,v=0;static void O(String s){System.out.println(s);} public int getMajorVersion(){return V;}public int getMinorVersion(){return v;}public boolean jdbcCompliant(){return false;} public boolean acceptsURL(String s){return s.startsWith("jdbc:q:");} public Connection connect(String s,Properties p)throws SQLException{return!acceptsURL(s)?null:new co(s.substring(7),p!=null?p.get("user"):p,p!=null?p.get("password"):p);} public DriverPropertyInfo[]getPropertyInfo(String s,Properties p)throws SQLException{return new DriverPropertyInfo[0];} static{try{DriverManager.registerDriver(new jdbc());}catch(Exception e){O(e.getMessage());}} static int[]SQLTYPE={0,16,0,0,-2,5,4,-5,7,8,0,12,0,0,91,93,0,0,0,92}; static String[]TYPE={"","boolean","","","byte","short","int","long","real","float","char","symbol","","month","date","datetime","","minute","second","time"}; static int find(String[]x,String s){int i=0;for(;in){ Object[]r=new Object[i];System.arraycopy(p,0,r,0,n);p=r;for(;n=n;} public boolean isFirst()throws SQLException{return r==0;} public boolean isLast()throws SQLException{return r==n-1;} public void beforeFirst()throws SQLException{r=-1;} public void afterLast()throws SQLException{r=n;} public boolean first()throws SQLException{r=0;return n>0;} public boolean last()throws SQLException{r=n-1;return n>0;} public int getRow()throws SQLException{return r;} public boolean absolute(int row)throws SQLException{r=row;return r=0&&r=0;} public void setFetchDirection(int direction)throws SQLException{q("fd");} public int getFetchDirection()throws SQLException{return FETCH_FORWARD;} public void setFetchSize(int rows)throws SQLException{}public int getFetchSize()throws SQLException{return 0;} public int getType()throws SQLException{return TYPE_SCROLL_SENSITIVE;} public int getConcurrency()throws SQLException{return CONCUR_READ_ONLY;} public boolean rowUpdated()throws SQLException{q();return false;} public boolean rowInserted()throws SQLException{q();return false;} public boolean rowDeleted()throws SQLException{q();return false;} public void updateNull(int columnIndex)throws SQLException{q();} public void updateBoolean(int columnIndex,boolean x)throws SQLException{q();} public void updateByte(int columnIndex,byte x)throws SQLException{q();} public void updateShort(int columnIndex,short x)throws SQLException{q();} public void updateInt(int columnIndex,int x)throws SQLException{q();} public void updateLong(int columnIndex,long x)throws SQLException{q();} public void updateFloat(int columnIndex,float x)throws SQLException{q();} public void updateDouble(int columnIndex,double x)throws SQLException{q();} public void updateBigDecimal(int columnIndex,BigDecimal x)throws SQLException{q();} public void updateString(int columnIndex,String x)throws SQLException{q();} public void updateBytes(int columnIndex,byte[]x)throws SQLException{q();} public void updateDate(int columnIndex,Date x)throws SQLException{q();} public void updateTime(int columnIndex,Time x)throws SQLException{q();} public void updateTimestamp(int columnIndex,Timestamp x)throws SQLException{q();} public void updateAsciiStream(int columnIndex,InputStream x,int length)throws SQLException{q();} public void updateBinaryStream(int columnIndex,InputStream x,int length)throws SQLException{q();} public void updateCharacterStream(int columnIndex,Reader x,int length)throws SQLException{q();} public void updateObject(int columnIndex,Object x,int scale)throws SQLException{q();} public void updateObject(int columnIndex,Object x)throws SQLException{q();} public void updateNull(String columnName)throws SQLException{q();} public void updateBoolean(String columnName,boolean x)throws SQLException{q();} public void updateByte(String columnName,byte x)throws SQLException{q();} public void updateShort(String columnName,short x)throws SQLException{q();} public void updateInt(String columnName,int x)throws SQLException{q();} public void updateLong(String columnName,long x)throws SQLException{q();} public void updateFloat(String columnName,float x)throws SQLException{q();} public void updateDouble(String columnName,double x)throws SQLException{q();} public void updateBigDecimal(String columnName,BigDecimal x)throws SQLException{q();} public void updateString(String columnName,String x)throws SQLException{q();} public void updateBytes(String columnName,byte[]x)throws SQLException{q();} public void updateDate(String columnName,Date x)throws SQLException{q();} public void updateTime(String columnName,Time x)throws SQLException{q();} public void updateTimestamp(String columnName,Timestamp x)throws SQLException{q();} public void updateAsciiStream(String columnName,InputStream x,int length)throws SQLException{q();} public void updateBinaryStream(String columnName,InputStream x,int length)throws SQLException{q();} public void updateCharacterStream(String columnName,Reader reader,int length)throws SQLException{q();} public void updateObject(String columnName,Object x,int scale)throws SQLException{q();} public void updateObject(String columnName,Object x)throws SQLException{q();} public void insertRow()throws SQLException{q();} public void updateRow()throws SQLException{q();} public void deleteRow()throws SQLException{q();} public void refreshRow()throws SQLException{q();} public void cancelRowUpdates()throws SQLException{q();} public void moveToInsertRow()throws SQLException{q();} public void moveToCurrentRow()throws SQLException{q();} public Statement getStatement()throws SQLException{q();return null;} public Object getObject(int i,Map map)throws SQLException{q();return null;} public Ref getRef(int i)throws SQLException{q();return null;} public Blob getBlob(int i)throws SQLException{q();return null;} public Clob getClob(int i)throws SQLException{q();return null;} public Array getArray(int i)throws SQLException{q();return null;} public Object getObject(String colName,Map map)throws SQLException{q();return null;} public Ref getRef(String colName)throws SQLException{q();return null;} public Blob getBlob(String colName)throws SQLException{q();return null;} public Clob getClob(String colName)throws SQLException{q();return null;} public Array getArray(String colName)throws SQLException{q();return null;} public Date getDate(int columnIndex,Calendar cal)throws SQLException{q();return null;} public Date getDate(String columnName,Calendar cal)throws SQLException{q();return null;} public Time getTime(int columnIndex,Calendar cal)throws SQLException{q();return null;} public Time getTime(String columnName,Calendar cal)throws SQLException{q();return null;} public Timestamp getTimestamp(int columnIndex,Calendar cal)throws SQLException{q();return null;} public Timestamp getTimestamp(String columnName,Calendar cal)throws SQLException{q();return null;} //3 public URL getURL(int columnIndex)throws SQLException{q();return null;} public URL getURL(String columnName)throws SQLException{q();return null;} public void updateRef(int columnIndex,Ref x)throws SQLException{q();} public void updateRef(String columnName,Ref x)throws SQLException{q();} public void updateBlob(int columnIndex,Blob x)throws SQLException{q();} public void updateBlob(String columnName,Blob x)throws SQLException{q();} public void updateClob(int columnIndex,Clob x)throws SQLException{q();} public void updateClob(String columnName,Clob x)throws SQLException{q();} public void updateArray(int columnIndex,Array x)throws SQLException{q();} public void updateArray(String columnName,Array x)throws SQLException{q();}} public class rm implements ResultSetMetaData{private String[]f;private Object[]d; public rm(String[]x,Object[]y){f=x;d=y;} public int getColumnCount()throws SQLException{return f.length;} public String getColumnName(int i)throws SQLException{return f[i-1];} public String getColumnTypeName(int i)throws SQLException{return TYPE[c.t(d[i-1])];} public int getColumnDisplaySize(int i)throws SQLException{return 11;} public int getScale(int i)throws SQLException{return 2;} public int isNullable(int i)throws SQLException{return 1;} public String getColumnLabel(int i)throws SQLException{return getColumnName(i);} public int getColumnType(int i)throws SQLException{return SQLTYPE[c.t(d[i-1])];} public int getPrecision(int i)throws SQLException{return 11;} //SQLPREC[c.t(d[i-1])];} public boolean isSigned(int i)throws SQLException{return true;} public String getTableName(int i)throws SQLException{return"";} public String getSchemaName(int i)throws SQLException{return"";} public String getCatalogName(int i)throws SQLException{return"";} public boolean isReadOnly(int i)throws SQLException{return false;} public boolean isWritable(int i)throws SQLException{return false;} public boolean isDefinitelyWritable(int i)throws SQLException{return false;} public boolean isAutoIncrement(int i)throws SQLException{return false;} public boolean isCaseSensitive(int i)throws SQLException{return true;} public boolean isSearchable(int i)throws SQLException{return true;} public boolean isCurrency(int i)throws SQLException{return false;} public String getColumnClassName(int column)throws SQLException{q("col");return null;}} public class dm implements DatabaseMetaData{private co co;public dm(co x){co=x;} public ResultSet getCatalogs()throws SQLException{return co.qx("([]TABLE_CAT:`symbol$())");} public ResultSet getSchemas()throws SQLException{return co.qx("([]TABLE_SCHEM:`symbol$())");} public ResultSet getTableTypes()throws SQLException{return co.qx("([]TABLE_TYPE:`TABLE`VIEW)");} public ResultSet getTables(String a,String b,String t,String x[])throws SQLException{return co.qx( "raze{([]TABLE_CAT:`;TABLE_SCHEM:`;TABLE_NAME:system string`a`b x=`VIEW;TABLE_TYPE:x)}each",x);} public ResultSet getTypeInfo()throws SQLException{return co.qx( "`DATA_TYPE xasc([]TYPE_NAME:`boolean`byte`short`int`long`real`float`symbol`date`time`timestamp;DATA_TYPE:16 -2 5 4 -5 7 8 12 91 92 93;PRECISION:11;LITERAL_PREFIX:`;LITERAL_SUFFIX:`;CREATE_PARAMS:`;NULLABLE:1h;CASE_SENSITIVE:1b;SEARCHABLE:1h;UNSIGNED_ATTRIBUTE:0b;FIXED_PREC_SCALE:0b;AUTO_INCREMENT:0b;LOCAL_TYPE_NAME:`;MINIMUM_SCALE:0h;MAXIMUM_SCALE:0h;SQL_DATA_TYPE:0;SQL_DATETIME_SUB:0;NUM_PREC_RADIX:10)");} public ResultSet getColumns(String a,String b,String t,String c)throws SQLException{if(t.startsWith("%"))t="";return co.qx( "select TABLE_CAT:`,TABLE_SCHEM:`,TABLE_NAME:n,COLUMN_NAME:c,DATA_TYPE:0,TYPE_NAME:t,COLUMN_SIZE:2000000000,BUFFER_LENGTH:0,DECIMAL_DIGITS:16,NUM_PREC_RADIX:10,NULLABLE:1,REMARKS:`,COLUMN_DEF:`,SQL_DATA_TYPE:0,SQL_DATETIME_SUB:0,CHAR_OCTET_LENGTH:2000000000,ORDINAL_POSITION:1+til count n,NULLABLE:`YES from .Q.nct`"+t);} public ResultSet getPrimaryKeys(String a,String b,String t)throws SQLException{q("pk");return co.qx( "");} //"q)([]TABLE_CAT:'',TABLE_SCHEM:'',TABLE_NAME:'"+t+"',COLUMN_NAME:key "+t+",KEY_SEQ:1+asc count key "+t+",PK_NAME:'')");} public ResultSet getImportedKeys(String a,String b,String t)throws SQLException{q("imp");return co.qx( "");} //"q)select PKTABLE_CAT:'',PKTABLE_SCHEM:'',PKTABLE_NAME:x,PKCOLUMN_NAME:first each key each x,FKTABLE_CAT:'',FKTABLE_SCHEM:'',FKTABLE_NAME:'"+t+"',FKCOLUMN_NAME:y,KEY_SEQ:1,UPDATE_RULE:1,DELETE_RULE:0,FK_NAME:'',PK_NAME:'',DEFERRABILITY:0 from('x','y')vars fkey "+t);} public ResultSet getProcedures(String a,String b,String p)throws SQLException{q("pr");return co.qx( "");} // "q)([]PROCEDURE_CAT:'',PROCEDURE_SCHEM:'',PROCEDURE_NAME:varchar(),r0:0,r1:0,r2:0,REMARKS:'',PROCEDURE_TYPE:0)");} public ResultSet getExportedKeys(String a,String b,String t)throws SQLException{q("exp");return null;} public ResultSet getCrossReference(String pa,String pb,String pt,String fa,String fb,String ft)throws SQLException{q("cr");return null;} public ResultSet getIndexInfo(String a,String b,String t,boolean unique,boolean approximate)throws SQLException{q("ii");return null;} public ResultSet getProcedureColumns(String a,String b,String p,String c)throws SQLException{q("pc");return null;} // PROCEDURE_CAT PROCEDURE_SCHEM PROCEDURE_NAME ... public ResultSet getColumnPrivileges(String a,String b,String table,String columnNamePattern)throws SQLException{q("cp");return null;} //select TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME GRANTOR GRANTEE PRIVILEGE IS_GRANTABLE ordered by COLUMN_NAME and PRIVILEGE. public ResultSet getTablePrivileges(String a,String b,String t)throws SQLException{q("tp");return null;} //select TABLE_CAT TABLE_SCHEM TABLE_NAME GRANTOR GRANTEE PRIVILEGE IS_GRANTABLE ordered by TABLE_SCHEM,TABLE_NAME,and PRIVILEGE. public ResultSet getBestRowIdentifier(String a,String b,String t,int scope,boolean nullable)throws SQLException{q("br");return null;} //select SCOPE COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE DECIMAL_DIGITS PSEUDO_COLUMN ordered by SCOPE public ResultSet getVersionColumns(String a,String b,String t)throws SQLException{q("vc");return null;} //select SCOPE COLUMN_NAME DATA_TYPE TYPE_NAME COLUMN_SIZE DECIMAL_DIGITS PSEUDO_COLUMN ordered by SCOPE public boolean allProceduresAreCallable()throws SQLException{return true;} public boolean allTablesAreSelectable()throws SQLException{return true;} public boolean dataDefinitionCausesTransactionCommit()throws SQLException{return false;} public boolean dataDefinitionIgnoredInTransactions()throws SQLException{return false;} public boolean doesMaxRowSizeIncludeBlobs()throws SQLException{return true;} public String getSchemaTerm()throws SQLException{return"schema";} public String getProcedureTerm()throws SQLException{return"procedure";} public String getCatalogTerm()throws SQLException{return"catalog";} public String getCatalogSeparator()throws SQLException{return".";} public int getMaxBinaryLiteralLength()throws SQLException{return 0;} public int getMaxCharLiteralLength()throws SQLException{return 0;} public int getMaxColumnNameLength()throws SQLException{return 0;} public int getMaxColumnsInGroupBy()throws SQLException{return 0;} public int getMaxColumnsInIndex()throws SQLException{return 0;} public int getMaxColumnsInOrderBy()throws SQLException{return 0;} public int getMaxColumnsInSelect()throws SQLException{return 0;} public int getMaxColumnsInTable()throws SQLException{return 0;} public int getMaxConnections()throws SQLException{return 0;} public int getMaxCursorNameLength()throws SQLException{return 0;} public int getMaxIndexLength()throws SQLException{return 0;} public int getMaxSchemaNameLength()throws SQLException{return 0;} public int getMaxProcedureNameLength()throws SQLException{return 0;} public int getMaxCatalogNameLength()throws SQLException{return 0;} public int getMaxRowSize()throws SQLException{return 0;} public int getMaxStatementLength()throws SQLException{return 0;} public int getMaxStatements()throws SQLException{return 0;} public int getMaxTableNameLength()throws SQLException{return 0;} public int getMaxTablesInSelect()throws SQLException{return 0;} public int getMaxUserNameLength()throws SQLException{return 0;} public int getDefaultTransactionIsolation()throws SQLException{return co.TRANSACTION_SERIALIZABLE;} public String getSQLKeywords()throws SQLException{return"show,meta,load,save";} public String getNumericFunctions()throws SQLException{return"";} public String getStringFunctions()throws SQLException{return"";} public String getSystemFunctions()throws SQLException{return"";} public String getTimeDateFunctions()throws SQLException{return"";} public String getSearchStringEscape()throws SQLException{return"";} public String getExtraNameCharacters()throws SQLException{return"";} public String getIdentifierQuoteString()throws SQLException{return"";} public String getURL()throws SQLException{return null;} public String getUserName()throws SQLException{return"";} public String getDatabaseProductName()throws SQLException{return"kdb";} public String getDatabaseProductVersion()throws SQLException{return"2.0";} public String getDriverName()throws SQLException{return"jdbc";} public String getDriverVersion()throws SQLException{return V+"."+v;} public int getDriverMajorVersion(){return V;} public int getDriverMinorVersion(){return v;} public boolean isCatalogAtStart()throws SQLException{return true;} public boolean isReadOnly()throws SQLException{return false;} public boolean nullsAreSortedHigh()throws SQLException{return false;} public boolean nullsAreSortedLow()throws SQLException{return true;} public boolean nullsAreSortedAtStart()throws SQLException{return false;} public boolean nullsAreSortedAtEnd()throws SQLException{return false;} public boolean supportsMixedCaseIdentifiers()throws SQLException{return false;} public boolean storesUpperCaseIdentifiers()throws SQLException{return false;} public boolean storesLowerCaseIdentifiers()throws SQLException{return false;} public boolean storesMixedCaseIdentifiers()throws SQLException{return true;} public boolean supportsMixedCaseQuotedIdentifiers()throws SQLException{return true;} public boolean storesUpperCaseQuotedIdentifiers()throws SQLException{return false;} public boolean storesLowerCaseQuotedIdentifiers()throws SQLException{return false;} public boolean storesMixedCaseQuotedIdentifiers()throws SQLException{return true;} public boolean supportsAlterTableWithAddColumn()throws SQLException{return true;} public boolean supportsAlterTableWithDropColumn()throws SQLException{return true;} public boolean supportsTableCorrelationNames()throws SQLException{return true;} public boolean supportsDifferentTableCorrelationNames()throws SQLException{return true;} public boolean supportsColumnAliasing()throws SQLException{return true;} public boolean nullPlusNonNullIsNull()throws SQLException{return true;} public boolean supportsExpressionsInOrderBy()throws SQLException{return true;} public boolean supportsOrderByUnrelated()throws SQLException{return false;} public boolean supportsGroupBy()throws SQLException{return true;} public boolean supportsGroupByUnrelated()throws SQLException{return false;} public boolean supportsGroupByBeyondSelect()throws SQLException{return false;} public boolean supportsLikeEscapeClause()throws SQLException{return false;} public boolean supportsMultipleResultSets()throws SQLException{return false;} public boolean supportsMultipleTransactions()throws SQLException{return false;} public boolean supportsNonNullableColumns()throws SQLException{return true;} public boolean supportsMinimumSQLGrammar()throws SQLException{return true;} public boolean supportsCoreSQLGrammar()throws SQLException{return true;} public boolean supportsExtendedSQLGrammar()throws SQLException{return false;} public boolean supportsANSI92EntryLevelSQL()throws SQLException{return true;} public boolean supportsANSI92IntermediateSQL()throws SQLException{return false;} public boolean supportsANSI92FullSQL()throws SQLException{return false;} public boolean supportsIntegrityEnhancementFacility()throws SQLException{return false;} public boolean supportsOuterJoins()throws SQLException{return false;} public boolean supportsFullOuterJoins()throws SQLException{return false;} public boolean supportsLimitedOuterJoins()throws SQLException{return false;} public boolean supportsConvert()throws SQLException{return false;} public boolean supportsConvert(int fromType,int toType)throws SQLException{return false;} public boolean supportsSchemasInDataManipulation()throws SQLException{return false;} public boolean supportsSchemasInProcedureCalls()throws SQLException{return false;} public boolean supportsSchemasInTableDefinitions()throws SQLException{return false;} public boolean supportsSchemasInIndexDefinitions()throws SQLException{return false;} public boolean supportsSchemasInPrivilegeDefinitions()throws SQLException{return false;} public boolean supportsCatalogsInDataManipulation()throws SQLException{return false;} public boolean supportsCatalogsInProcedureCalls()throws SQLException{return false;} public boolean supportsCatalogsInTableDefinitions()throws SQLException{return false;} public boolean supportsCatalogsInIndexDefinitions()throws SQLException{return false;} public boolean supportsCatalogsInPrivilegeDefinitions()throws SQLException{return false;} public boolean supportsSelectForUpdate()throws SQLException{return false;} public boolean supportsPositionedDelete()throws SQLException{return false;} public boolean supportsPositionedUpdate()throws SQLException{return false;} public boolean supportsOpenCursorsAcrossCommit()throws SQLException{return true;} public boolean supportsOpenCursorsAcrossRollback()throws SQLException{return true;} public boolean supportsOpenStatementsAcrossCommit()throws SQLException{return true;} public boolean supportsOpenStatementsAcrossRollback()throws SQLException{return true;} public boolean supportsStoredProcedures()throws SQLException{return false;} public boolean supportsSubqueriesInComparisons()throws SQLException{return true;} public boolean supportsSubqueriesInExists()throws SQLException{return true;} public boolean supportsSubqueriesInIns()throws SQLException{return true;} public boolean supportsSubqueriesInQuantifieds()throws SQLException{return true;} public boolean supportsCorrelatedSubqueries()throws SQLException{return true;} public boolean supportsUnion()throws SQLException{return true;} public boolean supportsUnionAll()throws SQLException{return true;} public boolean supportsTransactions()throws SQLException{return true;} public boolean supportsTransactionIsolationLevel(int level)throws SQLException{return true;} public boolean supportsDataDefinitionAndDataManipulationTransactions()throws SQLException{return true;} public boolean supportsDataManipulationTransactionsOnly()throws SQLException{return false;} public boolean usesLocalFiles()throws SQLException{return false;} public boolean usesLocalFilePerTable()throws SQLException{return false;} public boolean supportsResultSetType(int type)throws SQLException{return type!=rs.TYPE_SCROLL_SENSITIVE;} public boolean supportsResultSetConcurrency(int type,int concurrency)throws SQLException{return type==rs.CONCUR_READ_ONLY;} public boolean ownUpdatesAreVisible(int type)throws SQLException{return false;} public boolean ownDeletesAreVisible(int type)throws SQLException{return false;} public boolean ownInsertsAreVisible(int type)throws SQLException{return false;} public boolean othersUpdatesAreVisible(int type)throws SQLException{return false;} public boolean othersDeletesAreVisible(int type)throws SQLException{return false;} public boolean othersInsertsAreVisible(int type)throws SQLException{return false;} public boolean updatesAreDetected(int type)throws SQLException{return false;} public boolean deletesAreDetected(int type)throws SQLException{return false;} public boolean insertsAreDetected(int type)throws SQLException{return false;} public boolean supportsBatchUpdates()throws SQLException{return false;} public ResultSet getUDTs(String catalog,String schemaPattern,String typeNamePattern,int[]types)throws SQLException{return null;} public Connection getConnection()throws SQLException{return co;} //3 public boolean supportsSavepoints()throws SQLException{return false;} public boolean supportsNamedParameters()throws SQLException{return false;} public boolean supportsMultipleOpenResults()throws SQLException{return false;} public boolean supportsGetGeneratedKeys()throws SQLException{return false;} public ResultSet getSuperTypes(String catalog,String schemaPattern,String typeNamePattern)throws SQLException{return null;} public ResultSet getSuperTables(String catalog,String schemaPattern,String tableNamePattern)throws SQLException{return null;} public ResultSet getAttributes(String catalog,String schemaPattern,String typeNamePattern,String attributeNamePattern)throws SQLException{return null;} public boolean supportsResultSetHoldability(int holdability)throws SQLException{return false;} public int getResultSetHoldability()throws SQLException{return 0;} public int getDatabaseMajorVersion()throws SQLException{return 0;} public int getDatabaseMinorVersion()throws SQLException{return 0;} public int getJDBCMajorVersion()throws SQLException{return 0;} public int getJDBCMinorVersion()throws SQLException{return 0;} public int getSQLStateType()throws SQLException{return 0;} public boolean locatorsUpdateCopy()throws SQLException{return false;} public boolean supportsStatementPooling()throws SQLException{return false;}}} /* class ar implements Array{ public String getBaseTypeName()throws SQLException{q();return null;} public int getBaseType()throws SQLException{q();return 0;} public Object getArray()throws SQLException{q();return null;} public Object getArray(Map map)throws SQLException{q();return null;} public Object getArray(long index,int count)throws SQLException{q();return null;} public Object getArray(long index,int count,Map map)throws SQLException{q();return null;} public ResultSet getResultSet()throws SQLException{q();return null;} public ResultSet getResultSet(Map map)throws SQLException{q();return null;} public ResultSet getResultSet(long index,int count)throws SQLException{q();return null;} public ResultSet getResultSet(long index,int count,Map map)throws SQLException{q();return null;}} class bl implements Blob{ public long length()throws SQLException{q();return 0L;} public byte[]getBytes(long pos,int length)throws SQLException{q();return null;} public InputStream getBinaryStream()throws SQLException{q();return null;} public long position(byte[]pattern,long start)throws SQLException{q();return 0L;} public long position(Blob pattern,long start)throws SQLException{q();return 0L;}} class cl implements Clob{ public long length()throws SQLException{q();return 0L;} public String getSubString(long pos,int length)throws SQLException{q();return null;} public Reader getCharacterStream()throws SQLException{q();return null;} public InputStream getAsciiStream()throws SQLException{q();return null;} public long position(String searchstr,long start)throws SQLException{q();return 0L;} public long position(Clob searchstr,long start)throws SQLException{q();return 0L;}} class re implements Ref{public String getBaseTypeName()throws SQLException{q();return null;}} // DriverPropertyInfo a=new DriverPropertyInfo("user",null),b=new DriverPropertyInfo("password",null),r[]=new DriverPropertyInfo[2]; // a.required=b.required=false;r[0]=a;r[1]=b;for(int i=0;i