白细胞和红细胞的作用:SQL SERVER中,ntext类型对应的存储过程参数在ASP中使用哪种类型呢?

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 23:46:06
通过存储过程向数据库中添加记录时,ntext类型字段采用哪种类型的参数传递呢?我现在使用的是adWChar,长度102400,可以传进去,可是这样的传法有问题吗?用这个类型存储以后,这个字段的值读取出来以后的长度比提交的数据要长很多,在结尾的地方多了一些空白字符,如换行符之类的。

还有就是所有字符串类字段,varchar,ntext。。在接受参数插入新记录以后,原有的单引号'被处理成了两个单引号了,与Conn.Execute("Insert tb values ('这是引号''')")不同,通过ADO添加数据后,这个是一个单引号,而通过存储过程以后,这个成了两个引号。这个是为什么呢?
adWChar对应的值是130.

-----------------------

我发现这个我不能回复,。。有点不方便。

回: tjoy7d
你所说的String类型指哪一种啊?不用设置长度的吗?我怎么找不到你说的这个呢?对应常量值是多少呢?

还有就是第二个问题我的处理是只要通过存储过程添加数据的varchar,ntext,text等字符串类型的数据都不作单引号处理,这样就得到了我想要的效果,但是如果我在ASP中直接通过ADO执行SQL语句的话,我就会对单引号进行处理,这两个结果是一样的,只是我不懂为什么通过存储过程添加记录的时候处理了单引号反而会不是我想要的结果,会出现两个单引号,而不是一个单引号。

你用adWChar传到ntext去当然有问题了,ntext是自适应的一个大型的字符字段,现在你固定为102400传进去,内容后面肯定是一大堆空白。
建议你在ASP中直接就用String类型传好了。

第二个问题,很明显是你的存储过程中处理过单引号,这个是必须的,因为在执行插入的过程中:
insert into table(name) values('tjoy7d'),如果不处理的话,会截断SQL语句,导致出错,因而你的存储过程中进行了转换。