jun.db.core
接口 DataStore


public interface DataStore


方法摘要
 void addAutoCheck(int col, int checkType, java.lang.String where, java.lang.String find)
          注册自动检测
 void addAutoCheck(java.lang.String col, int checkType, java.lang.String where, java.lang.String find)
          注册自动检测
 void assembleDependColumns(java.lang.String expression_, java.util.ArrayList dependColList)
          ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 得到表达式中可能包含的列名称
 java.lang.String assembleRetrieve(java.lang.String col, java.lang.String Operator, java.lang.Object value)
           
 void charsetConvert(java.lang.String sourceCharset, java.lang.String toCharset)
          是对 setDBCharset 和 setCharset的联合调用
 void clearBuffer()
          仅把三个缓冲区清空,其它标记保持不变,结果集连接如果连接着那么仍然保持连接着
 boolean clearValue(int row, int col)
           
 boolean clearValue(int row, java.lang.String col)
           
 java.lang.Object clone()
           
 void close()
          关闭检索.
 int col2Index(java.lang.String col)
           
 boolean columnExists(java.lang.String colName)
           
 boolean createAggregate(int aType, int groupNo, java.lang.String name, java.lang.String expression)
           
 boolean createComputer(java.lang.String name, java.lang.String expression)
           
 void createGroups(java.lang.String rule)
          rule: 格式: g1Col1|g1Col2 , g2Col1|g2Col2 , 组之间用 , 分隔, 同组的各个列之间用 | 分隔。
 boolean deleteRow(int row)
          删除行 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.lang.Object evaluate(java.lang.String expression, int row)
           
 java.lang.String execute(java.lang.String sql)
           
 void executeAfterUpdate(java.lang.String sql)
           
 void executeBatch(java.lang.String sql)
           
 void executeBeforeUpdate(java.lang.String sql)
           
 java.lang.String exportSyntax()
          将结构输出成xml
 boolean exportToImage(int row, java.lang.String col, java.lang.String fileName)
          把某个字段的内容导出成图片
 void filter()
          先用SetFilterBy 设置过滤表达式,然后用Filter执行实际的过滤操作。
 int find(java.lang.String expression, int startRow, int endRow)
          在指定的范围内查找满足条件的第一行
 int getAbsolute()
           
 java.lang.String getAdditionalWhere()
          得到最后一次检索时传入的where条件
 java.lang.String getAsNoDataIfOnlySuchColumnsHoldData()
           
 java.lang.String getCharset()
          取数据时转换到字符集
 int getColumnCount()
          得到列数 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.util.HashMap getColumnInfo()
           
 java.lang.String getColumnName(int index)
           
 ColumnProperty getColumnProperty(int col)
           
 ColumnProperty getColumnProperty(java.lang.String col)
           
 java.sql.Connection getConnection()
           
 java.lang.String getCreateTableSyntax()
           
 java.lang.String getCreateTableSyntax(boolean AllColumnIgnoreType)
          得到建表语句,
 java.lang.String getCreateTableSyntax(java.lang.String tableName, java.lang.String primaryKey)
           
 java.lang.String getCreateTableSyntax(java.lang.String tableName, java.lang.String primaryKey, boolean AllColumnIgnoreType)
           
 java.util.ArrayList getData()
           
 java.util.ArrayList getData(int beginRow, int rowCount)
           
 DataAdapter getDataAdapter()
           
 java.util.Date getDate(int row, int col)
           
 java.util.Date getDate(int row, int col, java.util.Date defaultValue)
           
 java.util.Date getDate(int row, java.lang.String col)
           
 java.util.Date getDate(int row, java.lang.String col, java.util.Date defaultValue)
           
 java.lang.String getDBCharset()
          数据库的字符集
 java.lang.String getDBPoolName()
          得到本数据集远程连接数据库时使用的jndi名字
 int getDBRowCount()
          得到本DataStore能检索出最多的数据条数
 DataBuffer getDeleteBuffer()
           
 double getDouble(int row, int col)
           
 double getDouble(int row, int col, double defaultValue)
           
 double getDouble(int row, java.lang.String col)
           
 double getDouble(int row, java.lang.String col, double defaultValue)
           
 ErrorInfo getError()
           
 DataStoreEventManager getEvent()
           
 DataBuffer getFilterBuffer()
           
 java.lang.String getFilterBy()
           
 java.lang.String getFormatedValue(int row, int col)
           
 java.lang.String getFormatedValue(int row, int col, boolean original)
           
 java.lang.String getFormatedValue(int row, java.lang.String col)
           
 java.lang.String getFormatedValue(int row, java.lang.String col, boolean original)
           
 java.lang.Object getFriendlyProperty(java.lang.String name)
           
 java.lang.String getGroupRole()
           
 int getGuardLineOnRetrieve()
           
 int getInt(int row, int col)
           
 int getInt(int row, int col, int defaultValue)
           
 int getInt(int row, java.lang.String col)
           
 int getInt(int row, java.lang.String col, int defaultValue)
           
 java.lang.String getJSONRow(int row)
           
 java.lang.String getJSONRow(int row, boolean forceConvertToString)
           
 int getOnceRetrieveCount()
           
 DataBuffer getPrimaryBuffer()
           
 java.lang.String getPrimaryKey()
           
 java.lang.String getRemoteFactoryURL()
          当远程创建时,创建工厂的Home URL地址,例如 " http://localhost:8080" 这需要在webapp中的web.xml中增加 jun.db.impl.DataStoreRemoteFactory这个Servlet的映射
 int getRowCount()
          得到行数 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.util.ArrayList getSafeData()
           
 java.lang.String getSelect()
           
 java.lang.String getSelectLastRetrieved()
           
 java.lang.String getString(int row, int col)
           
 java.lang.String getString(int row, int col, java.lang.String defaultValue)
           
 java.lang.String getString(int row, java.lang.String col)
           
 java.lang.String getString(int row, java.lang.String col, java.lang.String defaultValue)
           
 java.lang.Object getTag(java.lang.String name)
           
 int getTimeout()
           
 java.lang.String getUpdatableColumns()
          得到可以更新的列 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 java.lang.String getUpdatableTable()
           
 boolean getUpdateSQL(java.util.ArrayList vectorSql)
          针对每个需要保存的行触发 Validate事件,在校验通过的情况下,把构造好的语句放入到 vectorSql中备用
 java.lang.String getUpdateWhereClauseColumns()
           
 java.lang.Object getValue(int row, int col)
          得到指定行列的值
 java.lang.Object getValue(int row, int col, boolean original)
          ------------------------------------------------------------------------------------------------------------------------------- 得到指定行列的值
 java.lang.Object getValue(int row, java.lang.String col)
           
 java.lang.Object getValue(int row, java.lang.String col, boolean original)
           
 void ignoreTopRow(int ir)
          跳过前面的 rc 行 , 通常本函数在Retrieve函数调用之前调用以跳过若干行。
 int importBigTxtFileAndSave(java.lang.String file, int skipRows, java.lang.String splitChar, int onceSaveCount)
           
 int importCSVFile(java.lang.String file)
           
 int importCSVFile(java.lang.String file, char delimiter, boolean includeHeader)
          从CSV文件导入数据
 int importCSVSource(java.lang.String string)
           
 int importCSVSource(java.lang.String string, char delimiter)
           
 int importData(java.util.ArrayList data)
          从 ArrayList 中导入数据,这些数据的状态将是 newModified
 boolean importImage(int row, java.lang.String col, java.lang.String fileName)
          把一个图片编码后放到一个Text字段中
 int importTxtFile(java.lang.String file)
           
 int importTxtFile(java.lang.String file, int skipRow)
           
 int importTxtSource(java.lang.String string)
           
 boolean importUpdate()
           
 int importXMLFile(java.lang.String file)
           
 int importXMLFile(java.lang.String file, java.lang.String charset)
           
 int importXMLSource(java.lang.String xmlSource)
           
 int insertRow(int beforeRow)
          插进入一行 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 boolean isAutoTrim()
          在检索出字符串类型的数据后,是不是需要自动Trim,缺省是True
 boolean isBlobUnRetrieve()
           
 boolean isCharsetAutoConvert()
           
 boolean isCloseResultsetAfterRetrieveOnce()
          缺省是 true
 boolean isColNeedCheckNull(java.lang.String col)
          字段是不是必须录入
 boolean isDataModified(int row, int col)
           
 boolean isDataModified(int row, java.lang.String col)
           
 boolean isEdited(int row, int col)
          是不是被改动过,注意它不表示当前值与数据库中的值是否相等,仅仅表示有没有改动过数据。
 boolean isEdited(int row, java.lang.String col)
           
 boolean isModified(int row, int col)
           
 boolean isModified(int row, java.lang.String col)
           
 boolean isNeedNotifyAggregateAndUnsureComputerInvalid()
          2008.06.19增加 当有聚合型计算列或不确定型计算列时,如果插入大量的行,可删除大量的行, 将导致性能极剧下降。
 boolean isNew(int row, int col)
           
 boolean isNew(int row, java.lang.String col)
           
 boolean isNewModified(int row, int col)
           
 boolean isNewModified(int row, java.lang.String col)
           
 boolean isNotModified(int row, int col)
           
 boolean isNotModified(int row, java.lang.String col)
           
 boolean isSaveNeeded()
          返回本DataStore 是否需要保存
 boolean isSetValueWithTrigger()
           
 boolean isTheRowHoldNoDataExceptSuchColumns(int row)
           
 boolean isTheRowHoldNoDataExceptSuchColumns(int row, java.lang.String cols)
          判断某行是不是仅指定的cols字段中有数据,其它字段都没有数据
 boolean isUpdatable()
           
 java.lang.String parseInnerParameter(java.lang.String sql, boolean useDetault)
           
 void reCreateGroups()
          按当前分组规则重新创建分组
 void replaceSelect(java.lang.String select)
           
 void reset()
          清除所有缓冲区的数据。
 void resetUpdate()
          复位更新标记,执行本操作后,DataStore中的数据就等效于刚从数据库中检索出来一样 更新单个DataStore 时,本函数一般不需要调用,使用 Update(true)时,当更新成功后, 本函数会自动调用。
 int retrieve()
          不指定附加条件,直接检索数据,等同于 Retrieve("")
 int retrieve(java.util.ArrayList data)
           
 int retrieve(java.util.ArrayList data, boolean append)
          从 ArrayList 中检索数据,该方法用来解决远程取得数据后(取得的数据放在一个ArrayList 中,然后从这个ArrayList中把数据导入本DataStore中。
 int retrieve(java.util.ArrayList data, boolean append, boolean withLastSelect)
           
 int retrieve(java.lang.Object p1)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15, java.lang.Object p16)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15, java.lang.Object p16, java.lang.Object p17)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15, java.lang.Object p16, java.lang.Object p17, java.lang.Object p18)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15, java.lang.Object p16, java.lang.Object p17, java.lang.Object p18, java.lang.Object p19)
           
 int retrieve(java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9, java.lang.Object p10, java.lang.Object p11, java.lang.Object p12, java.lang.Object p13, java.lang.Object p14, java.lang.Object p15, java.lang.Object p16, java.lang.Object p17, java.lang.Object p18, java.lang.Object p19, java.lang.Object p20)
           
 int retrieve(java.lang.String where)
          根据指定的条件来检索数据,当条件为 ""时,表示没有附加的条件。
 int retrieveOnceMore()
          再一次检索预定的条数,并返回实际检索的条数
 int retrieveProcedure(java.util.ArrayList param)
           
 int retrieveRemote(java.lang.String where)
          远程检索数据
 int retrieveWithLastSelect()
          按上一次的检索条件重新检索数据
 boolean saveAsTxt(java.lang.String file)
           
 boolean saveAsTxt(java.io.Writer w)
           
 boolean saveAsXML(java.lang.String file)
           
 boolean saveAsXML(java.io.Writer w)
           
 void setAbsolute(int row)
          跳过 row-1行,
 void setAsNoDataIfOnlySuchColumnsHoldData(java.lang.String cols)
           
 void setAutoTrim(boolean autoTrim)
          设置在检索出字符串类型的数据后,是不是需要自动Trim,缺省是True 注意该设置需要在retrieve 之前先调用
 void setBlobUnRetrieve(boolean unRetrieve)
           
 void setCharset(java.lang.String charset)
           
 void setCharsetAutoConvert(boolean auto)
           
 void setCloseResultsetAfterRetrieveOnce(boolean closeResultsetAfterRetrieveOnce)
          在 retrieveOnce后强制关掉结果集,禁止继续检索 当使用分页机制时,如果不关闭resultset ,是否会引起连接池问题不清楚,所以缺省是关闭结果集 如果需要多次retrieveOnceMore ,请将它设置成false
 void setConnection(java.sql.Connection con)
          设置数据库连接,并自动创建合适的数据库适配器
 void setDataAdapter(DataAdapter da)
               设置数据库适配器。
 void setDBCharset(java.lang.String dbCharset)
           
 void setDBPoolName(java.lang.String dbPool)
          设置 本数据集远程连接数据库时使用的jndi名字
 void setFilterBy(java.lang.String filterBy)
           
 void setGuardLineOnRetrieve(int gl)
          设置检索时的警戒线,检索数据条数超过此数值,会在日志里预警
 void setNeedNotifyAggregateAndUnsureComputerInvalid(boolean needNotifyAggregateAndUnsureComputerInvalid)
           
 void setOnceRetrieveCount(int rc)
           
 void setOrderBy(java.lang.String OrderBy)
          设置排序规则 col1 asc [desc] [ , col2 asc [desc] ...
 void setPrimaryKey(java.lang.String pk)
          设置表的主键,组合主键用,分隔各个列,比如  id, name
 void setRemoteFactoryURL(java.lang.String url)
           
 void setSelect(java.lang.String sqlString)
          指定数据源,任何能返回结果集的SQL语句,在执行本函数前,请先用 setConnection设置数据库连接对象 比如 " Select * from t1" " Select dbo.f_myfunction() " " Select * from t1 where id<100" 注意: 可以多次调用本函数,每一次的调用都会先将DataStore 的数据清空(如果有的话),所有属性复位,比如如下的代码: DataStore ds=new DataStore(); ds.setConnection( con); ds.SetSelect(" select * from t1"); ds.Retrieve(); System.out.println( ds.GetString( 1, "id")); ds.SetSelect("select * from t2"); ds.Retrieve(" id<100"); System.out.println( ds.RowCount());
 void setSelectLastRetrieved(java.lang.String sql)
           
 void setSetValueWithTrigger(boolean mSetValueWithTrigger)
           
 void setTag(java.lang.String name, java.lang.Object value)
           
 void setTimeout(int t)
           
 void setUpdatable(boolean b)
           
 void setUpdatableColumns(java.lang.String cols)
          设置允许更新的列,
 void setUpdatableTable(java.lang.String table)
           
 void setUpdateProperty(java.lang.String table, java.lang.String primaryKey, java.lang.String updatableCols, java.lang.String whereClauseCols)
          用一个函数设置更新属性
 void setUpdateWhereClauseColumns(java.lang.String cols)
          设置参与构造Where子句的列,控制多用户的并发更新
 boolean setValue(int row, int col, java.lang.Object v)
           
 boolean setValue(int row, java.lang.String col, double v)
           
 boolean setValue(int row, java.lang.String col, java.lang.Object v)
           
 void sort()
           
 java.lang.String test(java.lang.Object obj)
           
 boolean update(boolean resetFlag)
          把对DataStore 的修改提交到数据库中,当resetFlag为true时并在update成功的前提下复位单元格的状态以及行的状态 ------------------------------------------------------------------------------------------------------------------------------------------------------------------
 

方法详细信息

reset

void reset()
清除所有缓冲区的数据。同时触发 RetrieveEnd事件


clone

java.lang.Object clone()

setUpdateProperty

void setUpdateProperty(java.lang.String table,
                       java.lang.String primaryKey,
                       java.lang.String updatableCols,
                       java.lang.String whereClauseCols)
用一个函数设置更新属性

参数:
table - 允许更新的表
primaryKey - 主键 ,组合主键的各个列用逗号分隔
updatableCols - 允许更新的列
whereClauseCols - 参与构造Where子句的列

getError

ErrorInfo getError()

setConnection

void setConnection(java.sql.Connection con)
设置数据库连接,并自动创建合适的数据库适配器

参数:
con -

getConnection

java.sql.Connection getConnection()

getColumnProperty

ColumnProperty getColumnProperty(int col)

getColumnProperty

ColumnProperty getColumnProperty(java.lang.String col)

clearBuffer

void clearBuffer()
仅把三个缓冲区清空,其它标记保持不变,结果集连接如果连接着那么仍然保持连接着


getSelect

java.lang.String getSelect()

getSelectLastRetrieved

java.lang.String getSelectLastRetrieved()

setSelectLastRetrieved

void setSelectLastRetrieved(java.lang.String sql)

setSelect

void setSelect(java.lang.String sqlString)
指定数据源,任何能返回结果集的SQL语句,在执行本函数前,请先用 setConnection设置数据库连接对象
 比如 
        " Select * from  t1"
        " Select  dbo.f_myfunction() "
        " Select  * from t1 where id<100"
 
 
 注意:
          可以多次调用本函数,每一次的调用都会先将DataStore 的数据清空(如果有的话),所有属性复位,比如如下的代码:
   
 DataStore   ds=new DataStore();
 ds.setConnection( con);
 ds.SetSelect(" select * from t1");
 ds.Retrieve();
 System.out.println( ds.GetString( 1, "id"));
 
 ds.SetSelect("select * from t2");
 ds.Retrieve(" id<100");
 System.out.println( ds.RowCount());
 
 

参数:
sqlString -

retrieve

int retrieve(java.util.ArrayList data,
             boolean append)
从 ArrayList 中检索数据,该方法用来解决远程取得数据后(取得的数据放在一个ArrayList 中,然后从这个ArrayList中把数据导入本DataStore中。 从性能上考虑,不作任何检查,请使用者自行保证数据的合法性

参数:
data - 是一个ArrayList,其中的每个元素是一HashMap
返回:

retrieve

int retrieve(java.util.ArrayList data,
             boolean append,
             boolean withLastSelect)

retrieve

int retrieve(java.util.ArrayList data)

retrieveProcedure

int retrieveProcedure(java.util.ArrayList param)

retrieve

int retrieve(java.lang.Object p1)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15,
             java.lang.Object p16)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15,
             java.lang.Object p16,
             java.lang.Object p17)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15,
             java.lang.Object p16,
             java.lang.Object p17,
             java.lang.Object p18)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15,
             java.lang.Object p16,
             java.lang.Object p17,
             java.lang.Object p18,
             java.lang.Object p19)

retrieve

int retrieve(java.lang.Object p1,
             java.lang.Object p2,
             java.lang.Object p3,
             java.lang.Object p4,
             java.lang.Object p5,
             java.lang.Object p6,
             java.lang.Object p7,
             java.lang.Object p8,
             java.lang.Object p9,
             java.lang.Object p10,
             java.lang.Object p11,
             java.lang.Object p12,
             java.lang.Object p13,
             java.lang.Object p14,
             java.lang.Object p15,
             java.lang.Object p16,
             java.lang.Object p17,
             java.lang.Object p18,
             java.lang.Object p19,
             java.lang.Object p20)

importData

int importData(java.util.ArrayList data)
从 ArrayList 中导入数据,这些数据的状态将是 newModified

参数:
data - 是一个ArrayList,其中的每个元素是一HashMap
返回:
返回data包含的数据行数

retrieve

int retrieve()
不指定附加条件,直接检索数据,等同于 Retrieve("")

返回:

retrieve

int retrieve(java.lang.String where)
根据指定的条件来检索数据,当条件为 ""时,表示没有附加的条件。当数据源定义中本来就有where 条件时,指定的条件与原有的条件是 and 的关系。
例1:   
 ds.SetSelect("select * from t1 where id>10")
 ds.Retrieve("id<100")
 表示按照 select * from t1 where ( id>10 )  and (id<100)来检索数据 
 
 例2:
  ds.SetSelect("select * from t1 where id>10 or id<5")
 ds.Retrieve("id<100")
 表示按照 select * from t1 where ( id>10 or id<5)  and (id<100)来检索数据
 

参数:
where - 附加的条件
返回:
返回数据的条数

retrieveWithLastSelect

int retrieveWithLastSelect()
按上一次的检索条件重新检索数据

返回:

retrieveOnceMore

int retrieveOnceMore()
再一次检索预定的条数,并返回实际检索的条数

返回:

retrieveRemote

int retrieveRemote(java.lang.String where)
远程检索数据

参数:
where -
返回:

setOrderBy

void setOrderBy(java.lang.String OrderBy)
设置排序规则 col1 asc [desc] [ , col2 asc [desc] ...

参数:
OrderBy -

columnExists

boolean columnExists(java.lang.String colName)

sort

void sort()

getGroupRole

java.lang.String getGroupRole()

createGroups

void createGroups(java.lang.String rule)
rule: 格式: g1Col1|g1Col2 , g2Col1|g2Col2 , 组之间用 , 分隔, 同组的各个列之间用 | 分隔。

参数:
rule -

reCreateGroups

void reCreateGroups()
按当前分组规则重新创建分组


getValue

java.lang.Object getValue(int row,
                          int col)
得到指定行列的值

参数:
row -
col -
返回:
得到指定行列的值,注意行列均以 1 为下限

getValue

java.lang.Object getValue(int row,
                          java.lang.String col)

getValue

java.lang.Object getValue(int row,
                          int col,
                          boolean original)
------------------------------------------------------------------------------------------------------------------------------- 得到指定行列的值

参数:
row -
col -
original - true: 取最初值 , false: 取当前值
返回:
得到指定行列的值 ★★★★★ 特别注意: 返回的是值的克隆,这样防止其它程序修改 GetValue返回的对象的值而影响将缓冲区中的值 -------------------------------------------------------------------------------------------------------------------------------

getValue

java.lang.Object getValue(int row,
                          java.lang.String col,
                          boolean original)

getInt

int getInt(int row,
           int col)

getInt

int getInt(int row,
           int col,
           int defaultValue)

getInt

int getInt(int row,
           java.lang.String col)

getInt

int getInt(int row,
           java.lang.String col,
           int defaultValue)

getDate

java.util.Date getDate(int row,
                       int col)

getDate

java.util.Date getDate(int row,
                       int col,
                       java.util.Date defaultValue)

getDate

java.util.Date getDate(int row,
                       java.lang.String col)

getDate

java.util.Date getDate(int row,
                       java.lang.String col,
                       java.util.Date defaultValue)

getString

java.lang.String getString(int row,
                           int col)

getString

java.lang.String getString(int row,
                           int col,
                           java.lang.String defaultValue)

getString

java.lang.String getString(int row,
                           java.lang.String col)

getString

java.lang.String getString(int row,
                           java.lang.String col,
                           java.lang.String defaultValue)

getDouble

double getDouble(int row,
                 int col)

getDouble

double getDouble(int row,
                 int col,
                 double defaultValue)

getDouble

double getDouble(int row,
                 java.lang.String col)

getDouble

double getDouble(int row,
                 java.lang.String col,
                 double defaultValue)

evaluate

java.lang.Object evaluate(java.lang.String expression,
                          int row)

col2Index

int col2Index(java.lang.String col)
参数:
col -
返回:
返回列名对应的列号 ,如果不存在列,那么返回-1

setValue

boolean setValue(int row,
                 int col,
                 java.lang.Object v)

setValue

boolean setValue(int row,
                 java.lang.String col,
                 java.lang.Object v)

setValue

boolean setValue(int row,
                 java.lang.String col,
                 double v)

clearValue

boolean clearValue(int row,
                   int col)

clearValue

boolean clearValue(int row,
                   java.lang.String col)

assembleDependColumns

void assembleDependColumns(java.lang.String expression_,
                           java.util.ArrayList dependColList)
------------------------------------------------------------------------------------------------------------------------------------------------------------------ 得到表达式中可能包含的列名称

参数:
expression_ -
dependColList - ------------------------------------------------------------------------------------------------------------------------------------------------------------------

createComputer

boolean createComputer(java.lang.String name,
                       java.lang.String expression)

createAggregate

boolean createAggregate(int aType,
                        int groupNo,
                        java.lang.String name,
                        java.lang.String expression)

insertRow

int insertRow(int beforeRow)
插进入一行 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

参数:
beforeRow - 取值范围是 1 - ∞
返回:
插入行的行号 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

deleteRow

boolean deleteRow(int row)
删除行 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

参数:
row -
返回:
------------------------------------------------------------------------------------------------------------------------------------------------------------------

setUpdatable

void setUpdatable(boolean b)

isUpdatable

boolean isUpdatable()

setUpdatableTable

void setUpdatableTable(java.lang.String table)

getUpdatableTable

java.lang.String getUpdatableTable()

setPrimaryKey

void setPrimaryKey(java.lang.String pk)
设置表的主键,组合主键用,分隔各个列,比如  id, name

参数:
pk -

getPrimaryKey

java.lang.String getPrimaryKey()

setUpdatableColumns

void setUpdatableColumns(java.lang.String cols)
设置允许更新的列,

参数:
cols - 多个列之间用竖线分隔,比如 id|name|code
 当设置某个列不允许更新时,只需要在列名字前加上~符号,
 比如 id|name|~code 表示 id, name允许更新,code不允许更新
 

getUpdatableColumns

java.lang.String getUpdatableColumns()
得到可以更新的列 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

返回:
列之间用 | 分隔 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

setUpdateWhereClauseColumns

void setUpdateWhereClauseColumns(java.lang.String cols)
设置参与构造Where子句的列,控制多用户的并发更新

参数:
cols - 多个列之间用竖线分隔,比如 id|name|code
当设置某个列不参与构造Where子句时,只需要在列名字前加上˜符号, 比如 id|name|˜code 表示 id, name参与构造Where子句,code不参与构造Where子句

详细说明:
当有多个用户同时修改相同的数据时, 如何进行控制呢? 比如:000001号单据上的总金额为 500。这时,A,B两个操作员同时将该单据打开修改,A将总金额修改成 1000 , 并保存。B将总金额修改成2000 ,此时,在数据库中,该单据的总金额已经变成了 1000,而不是最初检索出来的 500 。那么,是否允许 B 操作员保存修改呢?

  • 策略一:允许B保存修改,这样带来的结果是:多人同时打开数据进行修改时,后修改的将覆盖先修改的,以最后一个保存的结果为最终结果。
  • 策略二:不允许 B 保存修改,这样带来的结果是:多人同时打开数据进行修改时,最先保存的数据是有效数据,其后的更新操作都失败。
  • DataStore 是通过 UpdateWhereClauseColumns 属性来控制多用户的并发更新。该属性定义了数据修改翻译成 Update 语句中的where 子句的结构。比如 UpdateWhereClauseColumns =" id | name | je " ,那么当用户修改了数据并调用Update 函数作保存时,被修改的数据被解释成 Update ??? Set col1= ??? , ... Where id=? and name=? and je= ? 。 比如表 t1 中有列 id, name ,code, je , 检索出来某行数据为 id=1, name='wise', code='01', je=500 。A 、B 操作员同时将该数据检索出来修改。 A操作员将 je 修改成 1000 , 当A作保存时 , DataStore 将A所做的操作解释成 Update t1 set je=500 Where id=1 and name='wise' and je=500 。当A 保存成功后,数据库中该记录的je变成了1000 . 这时,B操作员将je 修改成 2000 , 当B作保存时 , DataStore 将B所做的操作解释成 Update t1 set je=2000 Where id=1 and name='wise' and je=500 。显然 B操作员的操作不会生效。因为数据库中已经不存在 id=1 并且 name='wise' 并且 je=500 的记录了。这样实现了策略二的要求。如果令 UpdateWhereClauseColumns= "id " 那么 B 操作员的操作被解释成 Update t1 set je=2000 Where id=1 。这时B的操作生效,实现策略一的要求。
    所以,出现在 UpdateWhereClauseColumns中的列越多,并发控制越严格。,出现在 UpdateWhereClauseColumns中的列越少,并发控制越宽松 。但表的主键必须出现在 UpdateWhereClauseColumns中。 比如表 t2 的主键是 name 和 code 组合而成,那么 name | code 必须出现在UpdateWhereClauseColumns中,否则无法正确更新数据。
    值得注意的是:DataStore 能够通过UpdateWhereClauseColumns来控制多用户同时多同一数据的更新,但对多用户对同一数据的删除不作控制,也就是说:如果A操作员删除了单据 000001 , 然后 B 操作员再删除单据 000001 , 虽然 B 操作员的删除操作没有删除任何数据(因为要删除的数据已经被删除),但系统仍然认为 B 操作员执行成功(因为他的目的的确已经达到)。


    getUpdateWhereClauseColumns

    java.lang.String getUpdateWhereClauseColumns()

    update

    boolean update(boolean resetFlag)
    把对DataStore 的修改提交到数据库中,当resetFlag为true时并在update成功的前提下复位单元格的状态以及行的状态 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    参数:
    resetFlag -
    返回:
    如果更新成功就返回true,否则返回 false ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    getUpdateSQL

    boolean getUpdateSQL(java.util.ArrayList vectorSql)
    针对每个需要保存的行触发 Validate事件,在校验通过的情况下,把构造好的语句放入到 vectorSql中备用

    参数:
    vectorSql -
    返回:
    如果通过校验,返回true,否则返回false 。

    isSaveNeeded

    boolean isSaveNeeded()
    返回本DataStore 是否需要保存

    返回:

    addAutoCheck

    void addAutoCheck(java.lang.String col,
                      int checkType,
                      java.lang.String where,
                      java.lang.String find)
    注册自动检测


    addAutoCheck

    void addAutoCheck(int col,
                      int checkType,
                      java.lang.String where,
                      java.lang.String find)
    注册自动检测

    参数:
    col - 被检测的列
    checkType - 检测类型

    可以是AutoCheckConfig中定义的类型

    AutoCheckConfig.CHECK_NULL = 1 数据不能为空的校验
    AutoCheckConfig.CHECK_UNIQUE = 2数据唯一性的校验
    AutoCheckConfig.CHECK_UNIQUE_WARN = 4数据可选择的唯一性校验
    AutoCheckConfig.CHECK_UNIQUE_UNLESS_NULL = 8数据必须唯一,除非为空
    AutoCheckConfig.CHECK_UNIQUE_WARN_UNLESS_NULL = 16数据最好唯一,除非为空

    where - 用于拼装 select 语句的where子句的条件表达式,表示当满足where定义的条件时才检测,格式遵循sql语法
    find - 查找表达式,格式遵循计算列表达式的语法,表示该行必须满足find 定义的表达式时才检测。
      示例:
          AddAutoCheck( "name", 2 , "pID=1", "pID==1")
     
         表示对本DataStore中pID等于1的数据以及数据库中pID等于1的数据做数据唯一性的校验,
     即 pid等于1的所有数据中,name 不能重复。
     其中where参数为"pID=1" 它符合sql语句where条件的写法,
     其中find参数为"pID==1" 它符合计算列的语法 
     
     细节:
        当使用本函数注册自动检测后,在使用 Update 函数执行更新时,
     根据这些注册的检测类型对需要保存的数据(每一行都)做检测,如
     果版检测没有通过,那么Update 直接返回false。当自动检测通过后,
     才触发事件 Validate ,之后的过程请参看 Update函数。
     

    resetUpdate

    void resetUpdate()
    复位更新标记,执行本操作后,DataStore中的数据就等效于刚从数据库中检索出来一样 更新单个DataStore 时,本函数一般不需要调用,使用 Update(true)时,当更新成功后, 本函数会自动调用。本函数通常用在多个DataStore需要协同更新作为一个整体事务时,例如:
    
    if (  ds1.Update(false) && ds2.Update(false)
    {
         ds1.ResetUpdate();
         ds2.ResetUpdate();
         connection.commit();
    }else
    {
         connection.rollBack();
    }
    
    


    getFormatedValue

    java.lang.String getFormatedValue(int row,
                                      java.lang.String col)

    getFormatedValue

    java.lang.String getFormatedValue(int row,
                                      int col)

    getFormatedValue

    java.lang.String getFormatedValue(int row,
                                      java.lang.String col,
                                      boolean original)

    getFormatedValue

    java.lang.String getFormatedValue(int row,
                                      int col,
                                      boolean original)

    getRowCount

    int getRowCount()
    得到行数 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    返回:
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    getColumnName

    java.lang.String getColumnName(int index)

    getColumnCount

    int getColumnCount()
    得到列数 ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    返回:
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    getDataAdapter

    DataAdapter getDataAdapter()

    setDataAdapter

    void setDataAdapter(DataAdapter da)

         设置数据库适配器。因为数据库间的差异,必须为不同的数据库设置不同的适配器。幸运的是,当使用 SetConnection 时,系统会自动判断并设置对应的适配器。如果无法找到合适的适配器,就使用缺省的 适配器。缺省的适配器适用于 MS SQL Server

         可以根据需要定制自己的适配器,可以从DataAdapterDefault派生一个子类, 或新建一个类实现DataAdapter接口

    参数:
    da -

    getEvent

    DataStoreEventManager getEvent()

    getPrimaryBuffer

    DataBuffer getPrimaryBuffer()

    getDeleteBuffer

    DataBuffer getDeleteBuffer()

    getFilterBuffer

    DataBuffer getFilterBuffer()

    getFriendlyProperty

    java.lang.Object getFriendlyProperty(java.lang.String name)

    saveAsTxt

    boolean saveAsTxt(java.lang.String file)

    saveAsTxt

    boolean saveAsTxt(java.io.Writer w)

    importTxtFile

    int importTxtFile(java.lang.String file)

    importTxtFile

    int importTxtFile(java.lang.String file,
                      int skipRow)

    importTxtSource

    int importTxtSource(java.lang.String string)

    importCSVFile

    int importCSVFile(java.lang.String file)

    importCSVFile

    int importCSVFile(java.lang.String file,
                      char delimiter,
                      boolean includeHeader)
    从CSV文件导入数据

    参数:
    file -
    delimiter -
    includeHeader - 文件第一行是否是字段名
    返回:
    数据行数 注意,在导入时,如果有题头,那么用题头与字段名或label进行比对,导入到对应的字段中 如果没有题头则按字段顺序进行导入

    importCSVSource

    int importCSVSource(java.lang.String string)

    importCSVSource

    int importCSVSource(java.lang.String string,
                        char delimiter)

    saveAsXML

    boolean saveAsXML(java.lang.String file)

    saveAsXML

    boolean saveAsXML(java.io.Writer w)

    importXMLFile

    int importXMLFile(java.lang.String file)

    importXMLFile

    int importXMLFile(java.lang.String file,
                      java.lang.String charset)

    importXMLSource

    int importXMLSource(java.lang.String xmlSource)

    exportSyntax

    java.lang.String exportSyntax()
    将结构输出成xml

    返回:

    setFilterBy

    void setFilterBy(java.lang.String filterBy)

    getFilterBy

    java.lang.String getFilterBy()

    filter

    void filter()
    先用SetFilterBy 设置过滤表达式,然后用Filter执行实际的过滤操作。满足表达式的行留下,否则被过滤掉 (过滤掉的数据 放在过滤缓冲区中。当过滤表达式为 "" 时,即 GetFilterBy().equals("") 时,Filter函数执行的结果就是将所有过滤缓冲区的 数据都移到主缓冲区中。其中, 过滤表达式 可以用字段名称来 引用字段的值,比如 " id>100 " 表示<字段id的值> >100 ,

    这些用字段名称所表示的值具有如下的特点:
  • 名字都要用 小写,不管理字段名称的大小写如何,在表达式中统一用小写名字
  • 1 它们都是对象,比如int 的字段的值在表达式中是个Integer 型的Java对象,而不是简单数据类型int . 而decimal, numeric,float 等数据库类型的字段的值在表达式中是个 Double型的Java对象,而不是简单数据类型double. 同理日期 型的字段在表达式中是个Data类型的Java对象

  • 当使用字段名称来引用字段的值时,不用担心它们为空,当数值型的字段为null时,它们在表达式中是个值为0的数值 对象。比如某个int型字段ID,它的某行数据为null,当用ID来引用它的值时,ID是个 Integer型的对象,且 id.intValue()==0 同样的,对于字段型的字段,如果值为null,那么它们在表达式中实际上是个 String("") 对象。 同样的,对于日期型的字段,如果值为null,那么它们在表达式中实际上是个 Date(0) 对象 ,它表示的是 1970.01.01 08:00:00

  • assembleRetrieve

    java.lang.String assembleRetrieve(java.lang.String col,
                                      java.lang.String Operator,
                                      java.lang.Object value)

    getCreateTableSyntax

    java.lang.String getCreateTableSyntax()
                                          throws java.lang.Exception
    抛出:
    java.lang.Exception

    getCreateTableSyntax

    java.lang.String getCreateTableSyntax(java.lang.String tableName,
                                          java.lang.String primaryKey)
                                          throws java.lang.Exception
    抛出:
    java.lang.Exception

    getCreateTableSyntax

    java.lang.String getCreateTableSyntax(java.lang.String tableName,
                                          java.lang.String primaryKey,
                                          boolean AllColumnIgnoreType)
                                          throws java.lang.Exception
    抛出:
    java.lang.Exception

    getCreateTableSyntax

    java.lang.String getCreateTableSyntax(boolean AllColumnIgnoreType)
                                          throws java.lang.Exception
    得到建表语句,

    参数:
    AllColumnIgnoreType - 是否忽略列的类型。为false 时,仅仅把类型为isColumn 的参与构造 否则所有的列都参与构造
    返回:
    抛出:
    java.lang.Exception

    find

    int find(java.lang.String expression,
             int startRow,
             int endRow)
    在指定的范围内查找满足条件的第一行

    参数:
    expression -
    startRow - 查找起始行(包括该行)
    endRow - 查找终止行(包括该行)
    返回:

    setAbsolute

    void setAbsolute(int row)
    跳过 row-1行,

    参数:
    row -

    ignoreTopRow

    void ignoreTopRow(int ir)
    跳过前面的 rc 行 , 通常本函数在Retrieve函数调用之前调用以跳过若干行。本函数等效于 SetAbsolute( ic+1);


    getAbsolute

    int getAbsolute()

    setOnceRetrieveCount

    void setOnceRetrieveCount(int rc)

    getOnceRetrieveCount

    int getOnceRetrieveCount()

    getDBRowCount

    int getDBRowCount()
    得到本DataStore能检索出最多的数据条数

    返回:

    getData

    java.util.ArrayList getData()

    getData

    java.util.ArrayList getData(int beginRow,
                                int rowCount)

    getSafeData

    java.util.ArrayList getSafeData()

    close

    void close()
    关闭检索. 如果使用了SetOnceRetrieveCount 设置一次检索的数据量, 在没有完全检索出所有数据时,DataStore始终保持了一个只读的向前的ResultSet 可以显式地用本函数将此结果集关闭


    charsetConvert

    void charsetConvert(java.lang.String sourceCharset,
                        java.lang.String toCharset)
    是对 setDBCharset 和 setCharset的联合调用

    参数:
    sourceCharset -
    toCharset -

    getDBCharset

    java.lang.String getDBCharset()
    数据库的字符集

    返回:

    setDBCharset

    void setDBCharset(java.lang.String dbCharset)

    getCharset

    java.lang.String getCharset()
    取数据时转换到字符集

    返回:

    setCharset

    void setCharset(java.lang.String charset)

    isCharsetAutoConvert

    boolean isCharsetAutoConvert()

    setCharsetAutoConvert

    void setCharsetAutoConvert(boolean auto)

    getRemoteFactoryURL

    java.lang.String getRemoteFactoryURL()
    当远程创建时,创建工厂的Home URL地址,例如 " http://localhost:8080" 这需要在webapp中的web.xml中增加 jun.db.impl.DataStoreRemoteFactory这个Servlet的映射

    返回:

    setRemoteFactoryURL

    void setRemoteFactoryURL(java.lang.String url)

    getDBPoolName

    java.lang.String getDBPoolName()
    得到本数据集远程连接数据库时使用的jndi名字

    返回:

    setDBPoolName

    void setDBPoolName(java.lang.String dbPool)
    设置 本数据集远程连接数据库时使用的jndi名字

    参数:
    dbPool -

    setAutoTrim

    void setAutoTrim(boolean autoTrim)
    设置在检索出字符串类型的数据后,是不是需要自动Trim,缺省是True 注意该设置需要在retrieve 之前先调用

    参数:
    autoTrim -

    isAutoTrim

    boolean isAutoTrim()
    在检索出字符串类型的数据后,是不是需要自动Trim,缺省是True

    返回:

    exportToImage

    boolean exportToImage(int row,
                          java.lang.String col,
                          java.lang.String fileName)
    把某个字段的内容导出成图片

    参数:
    row -
    col -
    fileName -
    返回:

    importImage

    boolean importImage(int row,
                        java.lang.String col,
                        java.lang.String fileName)
    把一个图片编码后放到一个Text字段中

    参数:
    row -
    col -
    fileName -
    返回:

    execute

    java.lang.String execute(java.lang.String sql)

    executeBatch

    void executeBatch(java.lang.String sql)

    executeBeforeUpdate

    void executeBeforeUpdate(java.lang.String sql)

    executeAfterUpdate

    void executeAfterUpdate(java.lang.String sql)

    test

    java.lang.String test(java.lang.Object obj)

    setAsNoDataIfOnlySuchColumnsHoldData

    void setAsNoDataIfOnlySuchColumnsHoldData(java.lang.String cols)

    getAsNoDataIfOnlySuchColumnsHoldData

    java.lang.String getAsNoDataIfOnlySuchColumnsHoldData()

    isCloseResultsetAfterRetrieveOnce

    boolean isCloseResultsetAfterRetrieveOnce()
    缺省是 true

    返回:

    setCloseResultsetAfterRetrieveOnce

    void setCloseResultsetAfterRetrieveOnce(boolean closeResultsetAfterRetrieveOnce)
    在 retrieveOnce后强制关掉结果集,禁止继续检索 当使用分页机制时,如果不关闭resultset ,是否会引起连接池问题不清楚,所以缺省是关闭结果集 如果需要多次retrieveOnceMore ,请将它设置成false

    参数:
    closeResultsetAfterRetrieveOnce -

    getColumnInfo

    java.util.HashMap getColumnInfo()

    setTag

    void setTag(java.lang.String name,
                java.lang.Object value)

    getTag

    java.lang.Object getTag(java.lang.String name)

    isNeedNotifyAggregateAndUnsureComputerInvalid

    boolean isNeedNotifyAggregateAndUnsureComputerInvalid()
    2008.06.19增加 当有聚合型计算列或不确定型计算列时,如果插入大量的行,可删除大量的行, 将导致性能极剧下降。所以可以使用 setNeedNotifyAggregateAndUnsureComputerInvalid(false)关闭这些计算 列的事件,最后使用setNeedNotifyAggregateAndUnsureComputerInvalid(true) 强制再触发一次这些计算列的改变事件

    返回:

    setNeedNotifyAggregateAndUnsureComputerInvalid

    void setNeedNotifyAggregateAndUnsureComputerInvalid(boolean needNotifyAggregateAndUnsureComputerInvalid)

    replaceSelect

    void replaceSelect(java.lang.String select)

    importUpdate

    boolean importUpdate()

    isBlobUnRetrieve

    boolean isBlobUnRetrieve()

    setBlobUnRetrieve

    void setBlobUnRetrieve(boolean unRetrieve)

    importBigTxtFileAndSave

    int importBigTxtFileAndSave(java.lang.String file,
                                int skipRows,
                                java.lang.String splitChar,
                                int onceSaveCount)

    parseInnerParameter

    java.lang.String parseInnerParameter(java.lang.String sql,
                                         boolean useDetault)

    isTheRowHoldNoDataExceptSuchColumns

    boolean isTheRowHoldNoDataExceptSuchColumns(int row,
                                                java.lang.String cols)
    判断某行是不是仅指定的cols字段中有数据,其它字段都没有数据

    参数:
    row -
    cols - 多个字段之间用|分隔
    返回:

    isSetValueWithTrigger

    boolean isSetValueWithTrigger()

    setSetValueWithTrigger

    void setSetValueWithTrigger(boolean mSetValueWithTrigger)

    getJSONRow

    java.lang.String getJSONRow(int row)

    getJSONRow

    java.lang.String getJSONRow(int row,
                                boolean forceConvertToString)

    isTheRowHoldNoDataExceptSuchColumns

    boolean isTheRowHoldNoDataExceptSuchColumns(int row)

    isNotModified

    boolean isNotModified(int row,
                          int col)

    isDataModified

    boolean isDataModified(int row,
                           int col)

    isNewModified

    boolean isNewModified(int row,
                          int col)

    isModified

    boolean isModified(int row,
                       int col)

    isNew

    boolean isNew(int row,
                  int col)

    isNotModified

    boolean isNotModified(int row,
                          java.lang.String col)

    isDataModified

    boolean isDataModified(int row,
                           java.lang.String col)

    isNewModified

    boolean isNewModified(int row,
                          java.lang.String col)

    isModified

    boolean isModified(int row,
                       java.lang.String col)

    isNew

    boolean isNew(int row,
                  java.lang.String col)

    isEdited

    boolean isEdited(int row,
                     int col)
    是不是被改动过,注意它不表示当前值与数据库中的值是否相等,仅仅表示有没有改动过数据。当它为true时,表示有做过数据修改 但可能改了之后,又改回原来的值。所以只要发生过一次数据修改,那么isEdited就返回true,而不管是不是又改回去了

    参数:
    row -
    col -
    返回:

    isEdited

    boolean isEdited(int row,
                     java.lang.String col)

    setGuardLineOnRetrieve

    void setGuardLineOnRetrieve(int gl)
    设置检索时的警戒线,检索数据条数超过此数值,会在日志里预警

    参数:
    gl -

    getGuardLineOnRetrieve

    int getGuardLineOnRetrieve()

    getAdditionalWhere

    java.lang.String getAdditionalWhere()
    得到最后一次检索时传入的where条件

    返回:

    isColNeedCheckNull

    boolean isColNeedCheckNull(java.lang.String col)
    字段是不是必须录入

    参数:
    col -
    返回:

    setTimeout

    void setTimeout(int t)

    getTimeout

    int getTimeout()