简体   繁体   English

带VB6的SQL Server和ADO数据类型-从存储过程为VARCHAR(MAX)OUTPUT参数设置什么大小?

[英]SQL Server & ADO Data Types with VB6 - What Size to set for VARCHAR(MAX) OUTPUT parameter from a stored procedure?

Calling a stored procedure from VB6. 从VB6调用存储过程。

lcmdADOCommand.Parameters.Append lcmdADOCommand.CreateParameter("@p_user_id", adVarChar, adParamInput, 8, lobjFPSysUtilsSBO.ExtractUserFromToken(strSessionTokenVal))
          lcmdADOCommand.Parameters.Append lcmdADOCommand.CreateParameter("@p_source_data_XML", adVarChar, adParamInput, -1, strXML_Warranty_RSRef)
          lcmdADOCommand.Parameters.Append lcmdADOCommand.CreateParameter("@p_unlock_object_flag", adBoolean, adParamInput, , blnUnlockObjectVal)
          lcmdADOCommand.Parameters.Append lcmdADOCommand.CreateParameter("@p_return_data_flag", adBoolean, adParamInput, , True)

      Set lobjADOParam = lcmdADOCommand.CreateParameter("@p_output_record_XML", adVarChar, adParamOutput, -1, strXML_RecordList_RSRef)
      lobjADOParam.Size = 8000
      lcmdADOCommand.Parameters.Append lobjADOParam

With the last output parameter ... if I don't set the size to 8000 I get a runtime error 使用最后一个输出参数...如果未将大小设置为8000,则会出现运行时错误

"Parameter object is improperly defined. Inconsistent or incomplete information was provided". “参数对象定义不正确。提供的信息不一致或不完整”。

What is the maximum size I can use here in VB6 for an output of VARCHAR(MAX)? 我在VB6中可以为VARCHAR(MAX)输出使用的最大大小是多少? Setting the size to -1 on the input is fine but not on an Output Parameter 在输入上将大小设置为-1很好,但在输出参数上则不行

Use -1 for size of adLongVarChar or adLongVarWChar parameters, not adVarChar as in your snippet (missing a Long in the enum entry name). 对于adLongVarCharadLongVarWChar参数的大小,请使用-1 ,而不要像您的代码片段中那样使用adVarChar (在枚举项名称中缺少Long )。

Btw, it doesn't matter if direction in adParamInput or adParamOutput as your Q suggests, ie suggesting a problem w/ direction managed to only slow down finding answers here. 顺便说一句,在adParamInputadParamOutput方向adParamOutput如您的Q所建议的那样adParamOutput ,即,建议一个带有方向的问题设法减慢了在此处找到答案的速度。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从VB.NET应用程序调用SQL Server存储过程。 输出参数恢复为空白 - Calling SQL Server stored procedure from VB.NET application. Output parameter is coming back blank SQL Server-使用存储过程更新Varchar(max)列 - SQL Server - updating Varchar(max) column using stored procedure 分页脚本中的存储过程和输出参数(SQL Server 2008) - Stored Procedure and output parameter from paging script (SQL Server 2008) 使用SQL Server的输出参数调用Oracle存储过程 - Calling Oracle stored procedure with output parameter from SQL Server SQL Server存储过程不适用于varchar第二个参数 - SQL Server stored procedure not work with varchar second parameter 具有varchar参数的SQL Server存储过程返回错误结果 - SQL Server Stored Procedure with varchar parameter returns wrong results VB6 记录集和 SQL 存储过程 - VB6 recordset and SQL stored procedure 使用VB6中的ADO将大量数据从ms访问表(带有2.3 mimion记录)复制到sql 2000服务器 - Copy large amount of data from ms access table (with 2.3 mimion recs) to sql 2000 server using ADO in VB6 如何从 SQL 存储过程返回输出 varchar 值 - How to return output varchar value from SQL stored procedure SQL Server存储过程-将数据类型varchar转换为datetime时出错 - SQL Server stored procedure - error converting data type varchar to datetime
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM