📄 vericlient.java
字号:
* Run the tests */ public void run() { testSimpleConnection(); testPooledConnection(); } } /** * Test the data containers */ public static class TestContainers extends Test { private static JCO.MetaData tmeta; private static JCO.MetaData smeta; private static String[] data = {"Chars","12","34","56","7890","123.45", "678.90", "2000-10-20", "10:11:12", "0123456789ABCDEF", "String", "01234567890ABCDEF"}; private static String[] check = {"Chars","12","34","56","007890","123.45", "678.9", "2000-10-20", "10:11:12", "0123456789ABCDEF00000000000000", "String", "01234567890ABCDEF0", "TEST", "TEST"}; /** * Check field value of a record */ private void checkFields(JCO.Record rec) throws Exception { if (rec instanceof JCO.Table && ((JCO.Table)rec).getNumRows() == 0) return; //------------------------------------------------------------ // Loop over all fields //------------------------------------------------------------ int i; for (i = 0; i < rec.getFieldCount(); i++) { if (rec.getType(i) == JCO.TYPE_STRUCTURE) { JCO.Structure s = rec.getStructure(i); checkFields(s); } else if (rec.getType(i) == JCO.TYPE_TABLE) { JCO.Table t = rec.getTable(i); if (t.getNumRows() > 0) { t.firstRow(); do { checkFields(t); } while (t.nextRow()); t.firstRow(); }//for } else if (rec.isInitialized(i)) { String value = rec.getString(i); if (!check[i].equals(value)) { printStatus(new Exception(rec.getName(i) + ": " + value + " != " + check[i])); }//if }//if }//for //------------------------------------------------------------ // Same as above but now with enumerator //------------------------------------------------------------ i = 0; for (JCO.FieldIterator e = rec.fields(); e.hasMoreElements();) { JCO.Field f = e.nextField(); if (f.getType() == JCO.TYPE_STRUCTURE) { JCO.Structure s = f.getStructure(); checkFields(s); } else if (f.getType() == JCO.TYPE_TABLE) { JCO.Table t = f.getTable(); if (t.getNumRows() > 0) { t.firstRow(); do { checkFields(t); } while (t.nextRow()); t.firstRow(); }//for } else if (f.isInitialized()) { String value = f.getString(); if (!check[i].equals(value)) { printStatus(new Exception(rec.getName(i) + ": " + value + " != " + check[i])); }//if }//if i++; }//for } private void testMetaData() { try { printMethod("new JCO.MetaData()"); smeta = new JCO.MetaData("TEST"); printStatus(null); printMethod("meta.addInfo()"); smeta.addInfo("FIELD_CHAR", JCO.TYPE_CHAR, 32, -1, 0); smeta.addInfo("FIELD_INT" , JCO.TYPE_INT, 4, -1, 0); smeta.addInfo("FIELD_INT2", JCO.TYPE_INT2, 2, -1, 0); smeta.addInfo("FIELD_INT1", JCO.TYPE_INT1, 1, -1, 0); smeta.addInfo("FIELD_NUM", JCO.TYPE_NUM, 6, -1, 0); smeta.addInfo("FIELD_BCD", JCO.TYPE_BCD, 10, -1, 2); smeta.addInfo("FIELD_FLOAT", JCO.TYPE_FLOAT, 10, -1, 2); smeta.addInfo("FIELD_DATE", JCO.TYPE_DATE, 10, -1, 0); smeta.addInfo("FIELD_TIME", JCO.TYPE_TIME, 10, -1, 0); smeta.addInfo("FIELD_BYTE", JCO.TYPE_BYTE, 15, -1, 0); smeta.addInfo("FIELD_STRING", JCO.TYPE_STRING, 32, -1, 0); smeta.addInfo("FIELD_XSTRING", JCO.TYPE_XSTRING, 15, -1, 0); printStatus(null); printMethod("meta.clone()"); tmeta = (JCO.MetaData)smeta.clone(); printStatus(null); printMethod("meta.addInfo()"); tmeta.addInfo("FIELD_STRUCTURE",JCO.TYPE_STRUCTURE, 32, -1, 0, 0, smeta); tmeta.addInfo("FIELD_TABLE", JCO.TYPE_TABLE, 32, -1, 0, 0, smeta); printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testParameterList() { if (smeta == null) testMetaData(); try { printMethod("new JCO.ParameterList()"); JCO.ParameterList p = new JCO.ParameterList(); printStatus(null); printMethod("param.addInfo()"); for (int i = 0; i < data.length; i++) { p.addInfo(smeta.getName(i),smeta.getType(i),smeta.getLength(i),-1,smeta.getDecimals(i)); }//for printStatus(null); printMethod("param.setValue(\"\")"); for (int i = 0; i < data.length; i++) { p.setValue("",smeta.getName(i)); }//for printStatus(null); printMethod("param.setValue(\"Text\")"); for (int i = 0; i < data.length; i++) { p.setValue(data[i],smeta.getName(i)); }//for printStatus(null); p = new JCO.ParameterList(); printMethod("param.appendValue()"); for (int i = 0; i < data.length; i++) { p.appendValue(smeta.getName(i),smeta.getType(i),smeta.getLength(i),smeta.getDecimals(i),data[i]); }//for printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testStructure() { if (smeta == null) testMetaData(); try { printMethod("new JCO.Structure(meta)"); JCO.Structure s = new JCO.Structure(smeta); printStatus(null); printMethod("struc.setValue(\"\")"); for (int i = 0; i < data.length; i++) s.setValue("",s.getName(i)); printStatus(null); printMethod("struc.setValue(\"Text\")"); for (int i = 0; i < data.length; i++) s.setValue(data[i],s.getName(i)); printStatus(null); printMethod("struc.getString()"); checkFields(s); printStatus(null); printMethod("struc.clone()"); JCO.Structure s2 = (JCO.Structure)s.clone(); checkFields(s2); printStatus(null); if (JCO.getVersion().charAt(0) == '2') { printMethod("new JCO.Structure(structure)"); s2 = new JCO.Structure(s); checkFields(s2); printStatus(null); }//if } catch (Exception ex) { printStatus(ex); }//try } private void testTable() { int NUM_ROWS = 3; if (tmeta == null) testMetaData(); try { printMethod("new JCO.Table(meta)"); JCO.Table t = new JCO.Table(tmeta); printStatus(null); printMethod("table.appendRow()"); for (int j = 0; j < NUM_ROWS; j++) { t.appendRow(); for (int i = 0; i < data.length; i++) t.setValue(data[i],t.getName(i)); JCO.Structure s2 = t.getStructure(data.length); for (int i = 0; i < data.length; i++) s2.setValue(data[i],s2.getName(i)); JCO.Table t2 = t.getTable(data.length+1); t2.appendRows(NUM_ROWS); for (int j2 = 0; j2 < NUM_ROWS; j2++) { for (int i = 0; i < data.length; i++) t2.setValue(data[i],t2.getName(i)); t2.nextRow(); }//for t2.firstRow(); }//for printStatus(null); printMethod("new JCO.Table(table.getMetaData())"); JCO.Table tc = new JCO.Table(t.getMetaData()); for (int j = 0; j < 1; j++) { tc.appendRow(); for (int i = 0; i < data.length; i++) tc.setValue(data[i],t.getName(i)); JCO.Structure s2 = tc.getStructure(data.length); for (int i = 0; i < data.length; i++) s2.setValue(data[i],s2.getName(i)); JCO.Table t2 = tc.getTable(data.length+1); t2.appendRows(NUM_ROWS); for (int j2 = 0; j2 < NUM_ROWS; j2++) { for (int i = 0; i < data.length; i++) t2.setValue(data[i],t2.getName(i)); t2.nextRow(); }//for t2.firstRow(); }//for //checkFields(tc); printStatus(null); printMethod("table.clone()"); tc = (JCO.Table)t.clone(); checkFields(tc); printStatus(null); if (JCO.getVersion().charAt(0) == '2') { printMethod("new JCO.Table(table)"); tc = (JCO.Table)new JCO.Table(t); checkFields(tc); printStatus(null); }//if printMethod("table.insertRow()"); for (int j = 0; j < NUM_ROWS; j++) { t.insertRow(0); for (int i = 0; i < data.length; i++) t.setValue(data[i],t.getName(i)); JCO.Structure s2 = t.getStructure(data.length); for (int i = 0; i < data.length; i++) s2.setValue(data[i],s2.getName(i)); JCO.Table t2 = t.getTable(data.length+1); t2.appendRows(NUM_ROWS); for (int j2 = 0; j2 < NUM_ROWS; j2++) { for (int i = 0; i < data.length; i++) t2.setValue(data[i],t2.getName(i)); t2.nextRow(); }//for t2.firstRow(); }//for printStatus(null); printMethod("table.deleteRow() " + t.getNumRows()); t.setRow(t.getNumRows()-2); t.deleteRow(t.getNumRows()-1); t.deleteRow(2); t.deleteRow(0); if (t.getRow() != (NUM_ROWS-1)) printStatus(new Exception("getRow() != " + (NUM_ROWS-1) + ", but " + t.getRow())); else printStatus(null); printMethod("table.getNumColumns()"); if (t.getNumColumns() != tmeta.getFieldCount()) printStatus(new Exception("No. of columns != " + tmeta.getFieldCount())); else printStatus(null); printMethod("table.getNumRows()"); if (t.getNumRows() != NUM_ROWS) printStatus(new Exception("No. of rows != " + NUM_ROWS)); else printStatus(null); printMethod("table.firstRow()"); t.firstRow(); printStatus(null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -