sql2000中用text存储超过8000字节数据遇到的问题。

存储过程如下:SQLcodeCREATEPROCEDURENewsInsert@idchar(5),@titlechar(100),@contenttext,@urlch... 存储过程如下:
SQL code
CREATE PROCEDURE NewsInsert @id char(5), @title char(100), @content text,@url char(100) AS
Insert Into Table1 (idd, title, content, url) Values (@id, @title, '', @url)
DECLARE @ptrval binary(16)
SELECT @ptrval=TEXTPTR(content)
FROM Table1
WHERE idd=@@identity
writetext Table1.content @ptrval @content
GO

查询语句如下:
exec NewsInsert @id='1',@title='测试1', @content='asfdasdsadsasdasda',@url='http://'

错误如下:
服务器: 消息 7133,级别 16,状态 2,过程 NewsInsert,行 7
向 WriteText 函数传递了 NULL textptr(text、ntext 或 image 指针)。
请问错误出在哪里?
jy1_19:
你改成这的这样后,存储过程能正常插入数据了。
但我程序里确还是不能正常调用。主要代码如下:
conn = DriverManager.getConnection(url,user,password);
String sql = "{call NewsInsert(?,?,?,?)}";
cmd = conn.prepareCall(sql);
cmd.setString(1, String.valueOf(id));
cmd.setString(2, title);
cmd.setString(3, all); //这句传入一个超过8000字节的String.
cmd.setString(4, url);
if (cmd.executeUpdate() == 1)
System.out.println("添加成功");
执行了这句后出现错误如下:
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReturnValue(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
...
在程序里 cmd.executeUpdate() 这个语句一执行就出错。 因为我是循环插入数据。我查看数据库发现第一行数据是插入了的。后面全部都没插入。估计是cmd.executeUpdate() 执行后抛出异常。直接结束了。
请问下,这是什么问题啊?
展开
 我来答
jyl_19
2010-11-18 · TA获得超过1002个赞
知道小有建树答主
回答量:708
采纳率:0%
帮助的人:1053万
展开全部
DECLARE @ptrval binary(16)
SELECT @ptrval=TEXTPTR(content)
FROM Table1
WHERE idd=@@identity--------改为where idd=@id
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式