Use stored procedures in VC (Favorites)

xiaoxiao2021-03-06  40

Looked a lot of books of VC databases, which is rarely designed to operate with VC and store procedures. It is still found on the Internet. The result is still very small, collecting some code snippet for reference.

Code snippet 1:

_VARIANT_T_VVALUE;

_VARIANT_T RECORDSAFFECTED;

Variant VtretVal;

VtretVal.vt = vt_i2;

_COMMANDPTR PCMD = NULL;

_ParameterPtr pprm = null;

_VARIANT_T VTEMPTY (DISP_E_PARAMNOTFOUND, VT_ERROR);

_VARIANT_T VTEMPTY2 (DISP_E_PARAMNOTFOUND, VT_ERROR);

CSTRING TEMPSQL;

PCMD.CREATEINSTANCE (__UUIDOF (Command));

Pprm.createInstance (__UUIDOF (parameter);

PCMD -> ActiveConnection = PCONN;

PCMD -> CommandType = AdcmdStoredProc;

PCMD -> COMMANDTEXT = _BSTR_T (L "sp_addumpdevice");

PPRM = PCMD -> CreateParameter (_BSTR_T ("Retval"), Adinteger, AdParamreturnValue, Sizeof (int), vtretval);

PCMD -> Parameters -> Append (pprm);

IF (strcmp (SBLX, "0") == 0)

{

PPRM = PCMD -> CreateParameter (_BSTR_T ("SBLX"), ADCHAR, ADPARAMINPUT, 4, "Disk");

PPRM -> Value = "Disk";

}

Else

{

PPRM = PCMD -> CreateParameter (_BSTR_T ("SBLX"), Adchar, Adparaminput, 4, "TAPE");

PPRM -> value = "tape";

}

PCMD -> Parameters -> Append (pprm);

PPRM = PCMD -> CreateParameter (_BSTR_T ("SBMC"), Advarchar, Adparaminput, 20, _BSTR_T (SBMC));

PPRM -> Value = _BSTR_T (SBMC);

PCMD -> Parameters -> Append (pprm);

PPRM = PCMD -> CreateParameter (_BSTR_T ("BFLJ"), Advarchar, Adparaminput, 50, _BSTR_T (BFLJ));

PPRM -> Value = _BSTR_T (BFLJ);

PCMD -> Parameters -> Append (pprm);

PCMD -> EXECUTE (& VTempty, & vTempty2, Adexecutenorecords);

Code pieces 2:

m_pparam = m_pcommand-> createparameter ("id", adINteger, adParaminput, -1, (_ variant_t) "10"); // Set various properties to parameters

m_pcommand-> parameters-> append (m_pparam); // Add to the parameter set attribute of the Command object

M_pparam1 = m_pcommand-> createparameter ("name", Advarchar, Adparaminput, 20, (_ variant_t) "Songwenfeng");

m_pcommand-> parameters-> append (m_pparam1);

M_pparam2 = m_pcommand-> CreateParameter ("sdate", advarchar, adpaaminput, 32, (_ variant_t) "2004-6-8");

m_pcommand-> parameters-> append (m_pparam2);

Code snippet 3:

_Parameterptr Para [3];

_Commandptr PCMD;

PCMD.CREATEINSTANCE ("AdoDb.command");

Para [0] .createInstance ("AdoDb.Parameter");

Para [1] .createInstance ("AdoDb.Parameter");

Para [2] .createInstance ("AdoDb.Parameter");

PCMD-> ActiveConnection = m_pconn;

PCMD-> CommandText = "Store Procedure Name"

Para [0] = PCMD-> CreateParameter ("", Adbstr, Adparaminput,

Sizeof (char [50]), vvar); // string type input parameters

PCMD-> Parameters-> Append (Para [0]);

Para [1] = PCMD-> CreateParameter ("", Adinteger, Adparaminput,

SizeOf (int), OlevariantVar; // Integer input parameters

PCMD-> Parameters-> Append (Para [1]);

Para [2] = PCMD-> CreateParameter ("", Adbstr, Adparamoutput,

SizeOf (char [50]), ""); // string type output parameters

PCMD-> Parameters-> Append (Para [2]);

PCMD-> EXECUTE (NULL, NULL, ADCMDSTOREDPROC);

Code segment 4:

Use VC , SQL Server.

Suppose a table: name sex agn.

Now I want to find how many men, how many women.

If you are not using a stored procedure, you must a comparison.

Now I want to ask: How to write this stored procedure, how to call this stored procedure in the VC, how to get the result of the stored procedure.

-------------------------------------------------- -------------

_Commandptr CMMD;

_Parameterptr Param;

HRESULT HR = cmmd.createInstance (__ uuidof (command)); if (Failed (HR))

{AFXMESSAGEBOX ("NewnetDatabase () Failed to create _Commandptr object");

Return "Create Object Fails";

}

CMMD-> ActiveConnection = m_pconnection; // Need to use ADO connection

Cmmd-> commandtype = adcmdstoredProc;

CMMD-> Commandtext = _BSTR_T ("pkg_shenrole.addroleinfo"); // This is the stored procedure name

PARAM = Cmmd-> CreateParameter ("", Adbigint, Adparaminput, Sizeof (long); Nroleid

Cmmd-> Parameters-> append (param);

转载请注明原文地址:https://www.9cbs.com/read-75221.html

New Post(0)