在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); // ifthereisnoconditionclause,pleaseinput""
object [] GetObjects( string where_str);
DataSetGetDataSet( string select_str);
}
{
bool ReviseAObject( string where_str, object target); // 使用数据库内容来更新当前对象
object GetAObject( string where_str); // ifthereisnoconditionclause,pleaseinput""
object [] GetObjects( string where_str);
DataSetGetDataSet( string select_str);
}
在1.3版本中IDBAccesserQuery接口增强如下:
public
interface
IDBAccesserQuery
{
bool ReviseAObject( string where_str, object target); // 使用数据库内容来更新当前对象
object GetAObject( string where_str); // ifthereisnoconditionclause,pleaseinput""
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); // ifthereisnoconditionclause,pleaseinput""
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。