在1.2以前的版本中没有考虑到对BLOB的优化,如果一个表中含有BLOB字段,IDBAccesser.GetObjects方法返回的对象中将会直接把Blob读到对应的字段中,这可以通过IDBAccesser的基接口IDBAccesserQuery看出来:
在1.3版本中IDBAccesserQuery接口增强如下:
通过调用IDBAccesser.GetObjectsWithoutBlob()方法可以在从数据库中读取对象的时候先不加载BLOB字段,只有在必要的时候才调用IDBAccesser.FillBlobData()方法来填充某对象的BLOB字段。
这样即兼顾了效率,又不失灵活性。
想使用1.3版本的朋友,请留下email。
public
interface
IDBAccesserQuery
{
bool ReviseAObject(string where_str ,object target ) ;//使用数据库内容来更新当前对象
object GetAObject(string where_str) ;//if there is no condition clause ,please input ""
object[] GetObjects(string where_str) ;
DataSet GetDataSet(string select_str) ;
}
{
bool ReviseAObject(string where_str ,object target ) ;//使用数据库内容来更新当前对象
object GetAObject(string where_str) ;//if there is no condition clause ,please input ""
object[] GetObjects(string where_str) ;
DataSet GetDataSet(string select_str) ;
}
在1.3版本中IDBAccesserQuery接口增强如下:
public
interface
IDBAccesserQuery
{
bool ReviseAObject(string where_str ,object target ) ;//使用数据库内容来更新当前对象
object GetAObject(string where_str) ;//if there is no condition clause ,please input ""
object[] GetObjects(string where_str) ;
object[] GetObjectsWithoutBlob(string where_str) ; //获取的对象中凡是Blob字段都未填充
bool FillBlobData(object obj) ; //填充某个对象的所有Blob字段
DataSet GetDataSet(string select_str) ;
}
{
bool ReviseAObject(string where_str ,object target ) ;//使用数据库内容来更新当前对象
object GetAObject(string where_str) ;//if there is no condition clause ,please input ""
object[] GetObjects(string where_str) ;
object[] GetObjectsWithoutBlob(string where_str) ; //获取的对象中凡是Blob字段都未填充
bool FillBlobData(object obj) ; //填充某个对象的所有Blob字段
DataSet GetDataSet(string select_str) ;
}
通过调用IDBAccesser.GetObjectsWithoutBlob()方法可以在从数据库中读取对象的时候先不加载BLOB字段,只有在必要的时候才调用IDBAccesser.FillBlobData()方法来填充某对象的BLOB字段。
这样即兼顾了效率,又不失灵活性。
想使用1.3版本的朋友,请留下email。