如何用 DataMapper 映射 oralce 中的 BLOB 字段到属性。
开发环境:.Net framework 1.1,VS 2003+C#,DataMapper 1.2.1,Oracle9.2,OleDb1.1
SqlMap.config:
<database>
<provider name="${provider}"/>
<dataSource name="XXXX" connectionString="${connectionString}"/>
</database>
providers.config
<providers>
<clear/>
<provider
name="OleDb1.1"
enabled="true"
assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
connectionClass="System.Data.OleDb.OleDbConnection"
commandClass="System.Data.OleDb.OleDbCommand"
parameterClass="System.Data.OleDb.OleDbParameter"
parameterDbTypeClass="System.Data.OleDb.OleDbType"
parameterDbTypeProperty="OleDbType"
dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
usePositionalParameters = "true"
useParameterPrefixInSql = "false"
useParameterPrefixInParameter = "false"
parameterPrefix = ""
/>
<providers>
properties.config
<settings>
<add key="provider" value="OleDb1.1" />
<add key="connectionString" value="Provider=MSDAORA.1;Password=...;User ID=...;Data Source=XXXX;Persist
Security Info=True" />
</settings>
数据库联接没有问题,存取普通的数据类型无问题,但是存取 BLOB 是出现“数据类型不被支持错误”!!!!
代码如下:
public class BlobClass
{
private byte[] _blob = null;
public byte[] Blob
{
get
{
return _blob;
}
set
{
_blob = value;
}
}
}
.....
public BlobClass GetBlobClass(int p)
{
return (BlobClass)Mapper().QueryForObject("selectBlobClass", p);
}
BlobHelper.xml:
<resultMap id="rBlobClass" class="BlobClass">
<result property="Blob" column="BlobField"/>
</resultMap>
<statements>
<select id="selectBlobClass" parameterClass="int" resultMap="rBlobClass">
select BlobField
from BlobTable
WHERE BlobID = #value#
</select>
</statements>
怀疑是不是OleDb1.1不支持Blob?