自动截断指定的字符串到字段的长度?

将dbexpress驱动程序从10迁移到11时遇到了问题。 我有以下代码在SQL Server中执行更新语句:
sql.add('UPDATE mytable SET myfield=:AFIELD');
ParamByName('AFIELD').AsString := 'Some random string that is too long for the field';
Open;
它将引发SQL错误异常并停止执行。 字符串或二进制数据将被截断 这是因为myfield中的字符串比表字段长度长,myfield是Varchar(10) 以前,代码工作正常,字符串进入字段会自动截断为10个字符。 我想知道您是否可以提供有关配置连接以使自动截断工作的任何提示。或者任何解决方法。谢谢你!~~~     
已邀请:
您可以发出命令
SET ANSI_WARNINGS OFF
。 但这并不值得推荐,因为它有功能 在SQL Server中需要ANSI_WARNINGS打开。 所以最好自己截断数据,即
ParamByName('AFIELD').AsString := Copy(VeryLongString, 1, 10);
    

要回复问题请先登录注册