CREATE PROCEDURE [dbo].[USP_STRESS_TEST]
@o_str varchar(max) output,
@o_wstr nvarchar(max) output
SELECT 'abc' as c_wstr, 'bcd' as c_str;
AS
BEGIN
SET NOCOUNT ON;
SET @o_str = 'abc';
SET @o_wstr = 'edf';
END
C ++
я могу получить значения по odbc, но если я использую select, я не смогу получить значения
CREATE PROCEDURE [dbo].[USP_STRESS_TEST]
@o_str varchar(max) output,
@o_wstr nvarchar(max) output
AS
BEGIN
SET NOCOUNT ON;
SET @o_str = 'abc';
SET @o_wstr = 'edf';
***SELECT 'abc' as c_wstr, 'bcd' as c_str;***
END
Я не знаю почему. выполнить успешно, но буфер пуст
char* temp = new char[MAX_SQL_CHAR_LEN];
memset(temp, 0, MAX_SQL_CHAR_LEN * sizeof(char));
SQLLEN cbValue = SQL_NTSL;
SQLRETURN result = ::SQLBindParameter(hstmt_, paramIdx_, SQL_PARAM_OUTPUT, SQL_C_CHAR, SQL_VARCHAR
, MAX_SQL_CHAR_LEN, 0, temp, MAX_SQL_CHAR_LEN * sizeof(char), &cbValue);
вот код с ++
Возврат данных с использованием наборов результатов и возврат данных с использованием выходного параметра
используя оба случая