In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-04-02 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)06/01 Report--
C _ blank + operates on the database through ADO
Example: C++ writes data to sql server through ADO call stored procedure
1. Import the dynamic library of ado provided by Microsoft in the .h header file
# pragma warning (disable:4146)
# import "C:\\ Program Files\\ Common Files\ System\\ ado\\ msado15.dll" named_guids rename ("EOF", "adoEOF"), rename ("BOF", "adoBOF")
# pragma warning (default:4146)
Using namespace ADODB
two。 Write a function call stored procedure
/ / Save database records
Void SaveDbTran (char * devID,char * traceNo,char * refNo,char * batchNo, char * bankCardNo, char * tranDate, char * tranTime,char * amt,char * hosCardNo,char * hosName,char * hosIDCardNo, char * msg)
{
/ / 2.1 create a database connection handle
_ ConnectionPtr pMyConnect
HRESULT hr
Try
{
/ / 2.1.1 build connection database string
Char * dbConStr = new char [400]
Strcpy (dbConStr, "Provider=SQLOLEDB;Server=sqlserver server address, 1433 database = database name; uid= login user; pwd= login password")
CoInitialize (NULL)
Sleep (300)
/ / 2.1.2 handle instantiation to achieve connection
Hr = pMyConnect.CreateInstance ("ADODB.Connection")
If (SUCCEEDED (hr))
{
Ct.SaveLog ("database connection object created successfully, waiting for connection to be opened", 0ddbConStr)
PMyConnect- > Open (_ bstr_t (dbConStr), ",", adModeUnknown)
}
Else
{
CoUninitialize ()
Return
}
}
Catch (_ com_error & err)
{
CoUninitialize ()
Return
}
/ / 2.2 build run command parameter handle
_ CommandPtr m_pCommand
_ RecordsetPtr m_pRecordset
Try
{
/ / 2.2.1 handle instantiation
M_pCommand.CreateInstance (_ _ uuidof (Command)); / / Command does not need to change
MSecretpCommand-> ActiveConnection = pMyConnect;//pMyConnect is the connection database handle
No need to change CommandType order-> CommandType = adCmdStoredProc;//adCmdStoredProc
MroompCommand-> CommandText = _ bstr_t ("p_d_tra"); / / p_d_tra is the stored procedure name
/ / 2.2.2 set to assign values to variable parameters
_ variant_t vv_dotype,vv_TranNo,vv_devID,vv_TranDate,vv_TranTime
_ variant_t vv_RetCode,vv_BusType,vv_CardNo,vv_IDCard,vv_Name
_ variant_t vv_Amt,vv_Notes,vv_SerID,vv_DesCont,vv_tranFlag
_ variant_t vv_bankCardNo,vv_bankGroupNo,vv_bankFlowNo,vv_DevName,vv_ExeCount
/ / value to variant
Vv_dotype = _ variant_t (_ bstr_t ("1"))
Vv_TranNo = _ variant_t (_ bstr_t (temp_traceNo))
Vv_devID = _ variant_t (_ bstr_t (devID))
Vv_TranDate = _ variant_t (_ bstr_t (datetime))
Vv_TranTime = _ variant_t (_ bstr_t (datetime))
Vv_RetCode = _ variant_t (_ bstr_t (""))
Vv_BusType = _ variant_t (_ bstr_t ("14"))
Vv_CardNo = _ variant_t (_ bstr_t (hosCardNo))
Vv_IDCard = _ variant_t (_ bstr_t (hosIDCardNo))
Vv_Name = _ variant_t (_ bstr_t (hosName))
Vv_Amt = _ variant_t (_ bstr_t (amt))
Vv_Notes = _ variant_t (_ bstr_t ("transaction succeeded"))
Vv_SerID = _ variant_t (_ bstr_t (""))
Vv_DesCont = _ variant_t (_ bstr_t (""))
Vv_tranFlag = _ variant_t (_ bstr_t ("0"))
Vv_bankCardNo = _ variant_t (_ bstr_t (temp_bankCardNo))
Vv_bankGroupNo=_variant_t (_ bstr_t (batchNo))
Vv_bankFlowNo = _ variant_t (_ bstr_t (refNo))
Vv_DevName = _ variant_t (_ bstr_t (""))
Vv_ExeCount = _ variant_t (ret_ExeCount)
/ / 2.2.3 create database stored procedure input parameters
_ ParameterPtr mp_dotype,mp_TranNo,mp_devID,mp_TranDate,mp_TranTime
_ ParameterPtr mp_RetCode,mp_BusType,mp_CardNo,mp_IDCard,mp_Name
_ ParameterPtr mp_Amt,mp_Notes,mp_SerID,mp_DesCont,mp_tranFlag
_ ParameterPtr mp_bankCardNo,mp_bankGroupNo,mp_bankFlowNo,mp_DevName,mp_ExeCount
/ / 2.2.3.1 instantiate database parameters
/ / create ParameterPtr instance
Mp_dotype.CreateInstance (_ _ uuidof (Parameter))
Mp_TranNo.CreateInstance (_ _ uuidof (Parameter))
Mp_devID.CreateInstance (_ _ uuidof (Parameter))
Mp_TranDate.CreateInstance (_ _ uuidof (Parameter))
Mp_TranTime.CreateInstance (_ _ uuidof (Parameter))
Mp_RetCode.CreateInstance (_ _ uuidof (Parameter))
Mp_BusType.CreateInstance (_ _ uuidof (Parameter))
Mp_CardNo.CreateInstance (_ _ uuidof (Parameter))
Mp_IDCard.CreateInstance (_ _ uuidof (Parameter))
Mp_Name.CreateInstance (_ _ uuidof (Parameter))
Mp_Amt.CreateInstance (_ _ uuidof (Parameter))
Mp_Notes.CreateInstance (_ _ uuidof (Parameter))
Mp_SerID.CreateInstance (_ _ uuidof (Parameter))
Mp_DesCont.CreateInstance (_ _ uuidof (Parameter))
Mp_tranFlag.CreateInstance (_ _ uuidof (Parameter))
Mp_bankCardNo.CreateInstance (_ _ uuidof (Parameter))
Mp_bankGroupNo.CreateInstance (_ _ uuidof (Parameter))
Mp_bankFlowNo.CreateInstance (_ _ uuidof (Parameter))
Mp_DevName.CreateInstance (_ _ uuidof (Parameter))
Mp_ExeCount.CreateInstance (_ _ uuidof (Parameter))
/ / 2.2.3.2 append the database parameter to the end of the parameter attribute of the command variable handle
/ / append parameterPtr set to _ CommandPtr parameters lists
/ / Database parameter = command variable handle-> create parameter method (_ bstr_t ("stored procedure parameter name"), stored procedure parameter data type, stored procedure parameter input and output type, default size, variable parameter value)
Mp_dotype=m_pCommand- > CreateParameter (_ bstr_t ("dotype"), adInteger,adParamInput,-1,vv_dotype); / / Integer type
MSecretpCommand-> Parameters- > Append (mp_dotype)
Mp_TranNo=m_pCommand- > CreateParameter (_ bstr_t ("TranNo"), adVarChar,adParamInput,32,vv_TranNo); / / string type
MSecretpCommand-> Parameters- > Append (mp_TranNo)
Mp_devID=m_pCommand- > CreateParameter (_ bstr_t ("devID"), adVarChar,adParamInput,20,vv_devID)
MSecretpCommand-> Parameters- > Append (mp_devID)
Mp_TranDate=m_pCommand- > CreateParameter (_ bstr_t ("TranDate"), adVarChar,adParamInput,25,vv_TranDate); / / time type
MSecretpCommand-> Parameters- > Append (mp_TranDate)
Mp_TranTime=m_pCommand- > CreateParameter (_ bstr_t ("TranTime"), adVarChar,adParamInput,25,vv_TranTime)
MSecretpCommand-> Parameters- > Append (mp_TranTime)
Mp_RetCode=m_pCommand- > CreateParameter (_ bstr_t ("RetCode"), adVarChar,adParamInput,20,vv_RetCode)
MSecretpCommand-> Parameters- > Append (mp_RetCode)
Mp_BusType=m_pCommand- > CreateParameter (_ bstr_t ("BusType"), adInteger,adParamInput,-1,vv_BusType)
MSecretpCommand-> Parameters- > Append (mp_BusType)
Mp_CardNo=m_pCommand- > CreateParameter (_ bstr_t ("CardNo"), adVarChar,adParamInput,20,vv_CardNo)
MSecretpCommand-> Parameters- > Append (mp_CardNo)
Mp_IDCard=m_pCommand- > CreateParameter (_ bstr_t ("IDCard"), adVarChar,adParamInput,20,vv_IDCard)
MSecretpCommand-> Parameters- > Append (mp_IDCard)
Mp_Name=m_pCommand- > CreateParameter (_ bstr_t ("Name"), adVarChar,adParamInput,10,vv_Name)
MSecretpCommand-> Parameters- > Append (mp_Name)
Mp_Amt=m_pCommand- > CreateParameter (_ bstr_t ("Amt"), adDecimal,adParamInput,10,vv_Amt); / / floating point type
Mp_Amt- > NumericScale = 2; / / set the number of decimal places
Mp_Amt- > Precision = 10; / / set integer digits
MSecretpCommand-> Parameters- > Append (mp_Amt)
Mp_Notes=m_pCommand- > CreateParameter (_ bstr_t ("Notes"), adVarChar,adParamInput,2000,vv_Notes)
MSecretpCommand-> Parameters- > Append (mp_Notes)
Mp_SerID=m_pCommand- > CreateParameter (_ bstr_t ("SerID"), adVarChar,adParamInput,20,vv_SerID)
MSecretpCommand-> Parameters- > Append (mp_SerID)
Mp_DesCont=m_pCommand- > CreateParameter (_ bstr_t ("DesCont"), adVarChar,adParamInput,2000,vv_DesCont)
MSecretpCommand-> Parameters- > Append (mp_DesCont)
Mp_tranFlag=m_pCommand- > CreateParameter (_ bstr_t ("tranFlag"), adInteger,adParamInput,-1,vv_tranFlag)
MSecretpCommand-> Parameters- > Append (mp_tranFlag)
Mp_bankCardNo=m_pCommand- > CreateParameter (_ bstr_t ("bankCardNo"), adVarChar,adParamInput,25,vv_bankCardNo)
MSecretpCommand-> Parameters- > Append (mp_bankCardNo)
Mp_bankGroupNo=m_pCommand- > CreateParameter (_ bstr_t ("bankGroupNo"), adVarChar,adParamInput,12,vv_bankGroupNo)
MSecretpCommand-> Parameters- > Append (mp_bankGroupNo)
Mp_bankFlowNo=m_pCommand- > CreateParameter (_ bstr_t ("bankFlowNo"), adVarChar,adParamInput,12,vv_bankFlowNo)
MSecretpCommand-> Parameters- > Append (mp_bankFlowNo)
Mp_DevName=m_pCommand- > CreateParameter (_ bstr_t ("DevName"), adVarChar,adParamInput,40,vv_DevName)
MSecretpCommand-> Parameters- > Append (mp_DevName)
Mp_ExeCount=m_pCommand- > CreateParameter (_ bstr_t ("ExeCount"), adInteger,adParamOutput,-1,vv_ExeCount); / / output type
MSecretpCommand-> Parameters- > Append (mp_ExeCount)
/ / 2.2.4 get the result by execution
_ variant_t vNull
VNull.vt = VT_ERROR
VNull.scode = DISP_E_PARAMNOTFOUND
/ / 2.2.4.1 execute database stored procedures
M_pRecordset = mSecretpCommand-> Execute (& vNull,&vNull,adCmdStoredProc); / / adCmdStoredProc do not change
/ / the result of executing SQL in m_pRecordset can be used to determine the success and the cause of error.
If (mp_ExeCount- > Value! = 0)
{
Ct.SaveLog ("failed to insert data", 0, ")
}
Else
{
Ct.SaveLog ("data inserted successfully", 0, ")
}
}
Catch (_ com_error & err)
{
If (pMyConnect- > State) pMyConnect- > Close ()
PMyConnect = NULL
CoUninitialize ()
}
/ / 2.2.5 close the connection and release resources
If (pMyConnect- > State) pMyConnect- > Close ()
PMyConnect = NULL
CoUninitialize (); / / remember to call whether it succeeds or not to release resources
Return
}
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 209
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.