在使用Castle ActiveRecord 进行软件开发的过程中,为了达到数据库移植,有些地方需要注意,否则,程序可能会嘎然而止,这些问题却不可能预知,因此应在以下几个地方注意:
1、数据长度必须准确定义,如果不能确定,宁可长也不必短。
现象:在SqlServer下,如果字段长度比实际数据的长度小,数据库会自动截断,但在Postgresql中则抛了异常。
2、Binary(二进制)数据类型的选择。
现象:如果对一个字段定义了“BinaryBlob” 数据类型,在SqlServer中一切正常,但在Postgresql中数据保存后,再读取到内存中,长度已是原数据的两倍长度。原因现在没有查清。
解决办法: 将字段定义成"StringClob"数据类型,在使用时进行转换,可屏蔽不同数据库的差异。