因为做的是XML数据库,但是必须能够兼容SQL,故当用户按照一定的要求,输入SQL语句后,XML数据库,会将SQL语句传入MYSQL或ORACLE等SQL数据库,当返回查询结果后,我们会在执行引擎层面,将结果以及SQL语句中的参数进行封装,形成一个XML片段,并将该片段返回出来,其中涉及到SQL语句中参数的提取问题,才疏学浅,只想到了一种办法,并且其中还存在着一个问题,暂时没有想到解决方法,由于急用,只能将就。
<1> 利用string相关函数去除参数中的所有引号(XML文档对于数据的引号有要求,不能双引号或者单引号嵌套,简单起见,直接去除,不会影响用户的使用)
void drop_stringquotation(std::string &Argument)
{
const char singlequote = '\'';// In execSQL querystate , the string of sql must use the singlequote rather than doublequote
size_t searchCursor = 0;
while(searchCursor <= Argument.size())
{
searchCursor = Argument.find(singlequote,searchCursor);
if(searchCursor >= 0 && searchCursor <= Argument.size())
{
Argument.erase(searchCursor,1);
}
else
{
break;
}
}
}
<2>利用string相关函数及<algorithm>中Count函数识别SQL语句中的参数间的逗号,从而将参数提取出来

本文探讨了在XML数据库中如何处理类SQL语句,通过去除参数中的引号并识别逗号来提取参数。面对XML文档对数据引号的要求,采取直接去除引号的方法以简化处理,但这种方法存在未解决的问题,尽管如此,它仍能用于临时解决方案。
最低0.47元/天 解锁文章
1417

被折叠的 条评论
为什么被折叠?



