C/Visual C - CRecordset

 
Vista:

CRecordset

Publicado por fernando.gomez (61 intervenciones) el 11/03/2003 00:37:55
Buenas,

alguien sabe como ejecuto un stored procedure desde C++?

Bueno, aqui he lo que he intentado.

Creo un CRecordset, pasando al constructor mi CDatabase abierta. Despues, declaro una variable CString para emplear el metodo ::Format(). En ese format, escribo mi query.

Segun yo, solo meto a esa variable este query:

declare @outvar nchar(20)
exec cim_getnext_seqno N'MSD0', N'NMLBLFIL', @outvar output
select @outvar as SEQNO

, en donde cim_getnext_seqno es el nombre de mi stored procedure, los primeros dos parametros son de entrada y tengo una variable de salida. Esto lo hago con un ADODB.Recordset desde VB y ya, pero aqui me esta regresando una asercion cuando abro mi recordset, justo en:

obRecordset.Open(AFX_DB_USE_DEFAULT_TYPE, csSql.GetBuffer(0));

Segun la documentacion de MSDN de octubre del 2000, tengo que pasar en mi query, para un SP que no tiene variables, algo asi:

csSql.Format(_T("{call cim_getnext_seqno}"));

pero no se que hacer cuando necesito entrar variables y, peor aun, cuando necesito pasar una direccion de una variable (es decir, pasar una variable SQL por referencia).

El MSDN no menciona mucho en estos casos, dice que para tu output es algo con ?, pero no especifica nada mas.

Por ultimo, menciono que me conecto por ODBC, y que mi tipo de base de datos es MS SQL Server 2000.

Un saludo, espero me puedan ayudar. Gracias de antemano,

Fernando A. Gomez F.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder