首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++代码中包孕嵌入SQL语句,要实现的话,除了VS、数据库这两个软件外,还需要编译SQL语句的软件吗

2012-11-03 
C++代码中包含嵌入SQL语句,要实现的话,除了VS、数据库这两个软件外,还需要编译SQL语句的软件吗?C++代码中包

C++代码中包含嵌入SQL语句,要实现的话,除了VS、数据库这两个软件外,还需要编译SQL语句的软件吗?
C++代码中包含嵌入SQL语句,要实现的话,除了VS、数据库这两个软件外,还需要编译SQL语句的软件吗?
还是有vs、数据库这两个就可以了?

[解决办法]
ado或者其它的接口
或者有数据库的api
sql语句就是一个字符串
[解决办法]
JAVA嵌套 oracle,linux c 牵头oracle ,以及 c++嵌套oracle ,第一个 网上搜下 很简单 ,第二个 要用到 proc ,第三个 我只有 嵌套 sql的 

//修改资料
bool CDataBaseSink::OnRequestModifyIndividual(WORD wRequestID, DWORD dwContextID, VOID * pData, WORD wDataSize)
{
//参数验证
ASSERT(wDataSize == sizeof(DBR_GP_ModifyIndividual));
if ( wDataSize != sizeof(DBR_GP_ModifyIndividual)) return false;

//类型转换
DBR_GP_ModifyIndividual *pModifyIndividual = (DBR_GP_ModifyIndividual*)pData;

//执行存储过程
LONG lReturnValue = -1;
try
{
lReturnValue = SPModifyIndividual(pModifyIndividual->dwUserID, pModifyIndividual->szNickname, pModifyIndividual->nGender,
pModifyIndividual->nAge, pModifyIndividual->szAddress, pModifyIndividual->szUnderWrite, pModifyIndividual->szPassword);
}
catch (IDataBaseException * pIException)
{
//错误信息
LPCTSTR pszDescribe=pIException->GetExceptionDescribe();
CTraceService::TraceString(pszDescribe,TraceLevel_Exception);
}

//成功判断
if ( lReturnValue == 0 )
{
DBR_GP_ModifyIndividualResult ModifyIndividualResult;
ZeroMemory(&ModifyIndividualResult, sizeof(ModifyIndividualResult));
lstrcpyn(ModifyIndividualResult.szDescribeMsg, TEXT("资料修改成功!"), sizeof(ModifyIndividualResult.szDescribeMsg));
ModifyIndividualResult.bOperateSuccess = true;

m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_MODIFY_RESULT,dwContextID,
&ModifyIndividualResult,sizeof(ModifyIndividualResult));
}
else
{
DBR_GP_ModifyIndividualResult ModifyIndividualResult;
ZeroMemory(&ModifyIndividualResult, sizeof(ModifyIndividualResult));
lstrcpyn(ModifyIndividualResult.szDescribeMsg, TEXT("由于数据库操作异常,修改失败!"), sizeof(ModifyIndividualResult.szDescribeMsg));
ModifyIndividualResult.bOperateSuccess = false;

m_pIDataBaseEngineEvent->OnEventDataBaseResult(DBR_GP_MODIFY_RESULT,dwContextID,
&ModifyIndividualResult,sizeof(ModifyIndividualResult));
}
return true;
}

//帐号存储过程
LONG CDataBaseSink::SPLogonByAccounts(LPCTSTR pszAccounts, LPCTSTR pszPassword, DWORD dwClientIP, LPCTSTR pszComputerID)
{
//校验参数
ASSERT(pszAccounts!=NULL);
ASSERT(pszPassword!=NULL);

//转化地址
TCHAR szClientIP[16]=TEXT("");
BYTE * pClientIP=(BYTE *)&dwClientIP;
_snprintf(szClientIP,sizeof(szClientIP),TEXT("%d.%d.%d.%d"),pClientIP[0],pClientIP[1],pClientIP[2],pClientIP[3]);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@strAccounts"),pszAccounts);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pszPassword);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientIP);
m_AccountsDBAide.AddParameter(TEXT("@strMachineSerial"),pszComputerID);

return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_EfficacyAccounts"),true);
}

//更新存储过程
LONG CDataBaseSink::SPRegisterAccounts(LPCTSTR pszAccounts, LPCTSTR pszPassword, LPCTSTR pszSpreader, WORD wFaceID, BYTE cbGender, DWORD dwClientIP, LPCTSTR pszComputerID)
{
//校验参数
ASSERT(pszAccounts!=NULL);
ASSERT(pszPassword!=NULL);

//转化地址
TCHAR szClientIP[16]=TEXT("");
BYTE * pClientIP=(BYTE *)&dwClientIP;
_snprintf(szClientIP,sizeof(szClientIP),TEXT("%d.%d.%d.%d"),pClientIP[0],pClientIP[1],pClientIP[2],pClientIP[3]);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@strAccounts"),pszAccounts);


m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pszPassword);
m_AccountsDBAide.AddParameter(TEXT("@strSpreader"),pszSpreader);
m_AccountsDBAide.AddParameter(TEXT("@nFaceID"),wFaceID);
m_AccountsDBAide.AddParameter(TEXT("@cbGender"),cbGender);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientIP);
m_AccountsDBAide.AddParameter(TEXT("@strMachineSerial"),pszComputerID);

return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_RegisterAccounts"),true);
}

//I D 存储过程
LONG CDataBaseSink::SPLogonByUserID(DWORD dwGameID, LPCTSTR pszPassword, DWORD dwClientIP, LPCTSTR pszComputerID)
{
//校验参数
ASSERT(dwGameID!=0L);
ASSERT(pszPassword!=NULL);

//转化地址
TCHAR szClientIP[16]=TEXT("");
BYTE * pClientIP=(BYTE *)&dwClientIP;
_snprintf(szClientIP,sizeof(szClientIP),TEXT("%d.%d.%d.%d"),pClientIP[0],pClientIP[1],pClientIP[2],pClientIP[3]);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwGameID"),dwGameID);
m_AccountsDBAide.AddParameter(TEXT("@strPassword"),pszPassword);
m_AccountsDBAide.AddParameter(TEXT("@strClientIP"),szClientIP);
m_AccountsDBAide.AddParameter(TEXT("@strMachineSerial"),pszComputerID);

return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_GP_EfficacyGameID"),true);
}
 
单文强 11:31:53 


//上传存储过程
LONG CDataBaseSink::SPUploadFace(DWORD dwUserID, BYTE *bFaceData, DWORD dwFaceDataSize)
{
//校验参数
ASSERT(dwUserID!=0L);
ASSERT(dwFaceDataSize!=0L);
ASSERT(bFaceData!=NULL);

//校验参数
ASSERT(dwUserID!=0L);
ASSERT(dwFaceDataSize!=0L);
ASSERT(bFaceData!=NULL);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),dwUserID);

VARIANT varChunk;
SAFEARRAY *psa=NULL;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].cElements = dwFaceDataSize;
rgsabound[0].lLbound = 0;
psa = SafeArrayCreate(VT_UI1,1,rgsabound);
for (long index =0; index < long(dwFaceDataSize); index++ )
{
SafeArrayPutElement(psa,&index,&bFaceData[index]);
}
varChunk.vt = VT_ARRAY|VT_UI1;
varChunk.parray = psa;

IDataBase * pIDataBase=m_AccountsDBModule.GetInterface();
pIDataBase->AddParameter(TEXT("@imgCustomFaceImage"),adLongVarBinary,adParamInput,dwFaceDataSize,_variant_t(varChunk));

LONG lReturnValue=m_AccountsDBAide.ExecuteProcess(TEXT("GSP_CF_InsertCustomFace"),false);

//释放资源
SafeArrayDestroy(psa);

return lReturnValue;
}

//加载存储过程
LONG CDataBaseSink::SPDownloadFace(DWORD dwUserID)
{
//校验参数
ASSERT(dwUserID!=0L);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),dwUserID);


return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_CF_LoadCustomFace"),true);
}

//删除存储过程
LONG CDataBaseSink::SPDeleteCustomFace(DWORD dwUserID)
{
//校验参数
ASSERT(dwUserID!=0L);

//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),dwUserID);

return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_CF_DeleteCustomFace"),true);
}

//修改存储过程
LONG CDataBaseSink::SPModifyIndividual(DWORD dwUserID, TCHAR szNickname[NAME_LEN], int nGender, int nAge, TCHAR szAddress[64], TCHAR szUnderWrite[32], TCHAR szPassword[32])
{
//执行存储过程
m_AccountsDBAide.ResetParameter();
m_AccountsDBAide.AddParameter(TEXT("@dwUserID"),dwUserID);
m_AccountsDBAide.AddParameter(TEXT("@strLogonPass"),szPassword);
m_AccountsDBAide.AddParameter(TEXT("@strNickName"),szNickname);
m_AccountsDBAide.AddParameter(TEXT("@nGender"),nGender);


m_AccountsDBAide.AddParameter(TEXT("@nAge"),nAge);
m_AccountsDBAide.AddParameter(TEXT("@strAddress"),szAddress);
m_AccountsDBAide.AddParameter(TEXT("@strUnderWrite"),szUnderWrite);

return m_AccountsDBAide.ExecuteProcess(TEXT("GSP_CF_ModifyIndividual"),false);


[解决办法]
除了编译器和数据库以外,还需要数据库提供的接口sdk,比如sqlite提供的接口函数。
或者数据库符合某种标准(比如ODBC),则可用这种标准的接口访问,比如vc下的ODBC方式

热点排行
Bad Request.