高分:有没有人使用ADOStoredProc出现问题?高手请进,怀疑是delphi的bug. (100分)

  • 主题发起人 主题发起人 alcor
  • 开始时间 开始时间
A

alcor

Unregistered / Unconfirmed
GUEST, unregistred user!
目前出现这样的问题,
写三层结构,使用ado连接,
错误出现在使用ADOStoredProc时,存储过程写在后台(使用sql server)
存储过程主要是完成向数据库中插入记录,在后台已经验证绝对没有问题
客户端调用,赋参数,
如果参数值为数字或者字母,则没有问题
如果是汉字,则只能随机的取前面几个,不能完全读取。
目前所作的测试工作有,后台测试存储过程,验证数据库,不使用存储过程进行
写操作,都没有问题。
 
可能是在存储过程中定义的参数长度不够
 
什么意思?
 
肯定不是长度不够,我已经在后台测试过了,而且如果不够那为什么英文和数字不成问题
 
请注意我已经测试过很多遍了
不可能犯一些低级错误
 
检查一下你在前台和后台里定义的参数类型是不是一致!
祝你好运·
 
是一致的
 
把存储过程贴出来看看
 
你的ADOStoredProc的参数的size设的是多少?
当然你的datatype设的对不对?
 
全部的存储过程是这样的,表是有关联的,我已经在后台验证过了
create proc CreatePerson
@UserID varchar(32), @name varchar(64), @password varchar(64),
@email varchar(128), @address varchar(128), @desc varchar(64),
@PersonID int output
as
if(LTRIM(@Userid)='') return
BEGIN TRANSACTION sp_CreatePerson
declare @sysid int
insert into PDMSYSOBJECT(CREATER,LASTMODIFIER,SYSOBJECTTYPEID)
values(current_user ,current_user,12)
if(@@rowcount=0)
begin
select @Personid=0
ROLLBACK TRANSACTION sp_CreatePerson
return
end
else
begin
select @sysid=@@IDENTITY
insert Person(SYSOBJECTID,UserId,NAME,Password,Email,address,DESCRIPTION)
values(@sysid,@UserID,@name,@Password,@email,@address,@desc)
if(@@rowcount=0)
begin
select @Personid=0
ROLLBACK TRANSACTION sp_Createperson
return
end
else
COMMIT TRANSACTION sp_Createperson
end
 
参数的size 是从存储过程的来的,如上面的存储过程
有的32,64,128
datatype是ftstring
只有valuetype为null,有影响吗?
 
把所有参数类型为varchar的改为nvarchar试一试。
 
为什么?有什么理由吗?
我可以试一下
 
qdgyh:不行,还是一样的错误
 
还是随机从开头读取几个
 
看过了,无能为力
 
在此先谢过所有阅读过此帖的各位大虾。

但是我的心情开始越来越糟糕,难道这是不治之症?
 
那么问什么在后台测试存储过程的时候没有问题?
还有为什么提示键的信息量不够
 
你试过了?
可是128也应该是可以的,现在显示不能超过5个汉字,难道是长度?
那为什么英文就可以?
 
后退
顶部