需求是根据地址查找一些变量,现在地址是中文 比如 strcount = “江苏,安徽,北京”
把这个变量加入sql里无法请求到数据,在SqlServer里直接写可以获得数据,这是为什么呢?
CInternetSession mySession;
CHttpFile* myHttpFile = NULL;
CString myData;
CString message;
UINT CodePage = 65001;//CP_UTF8:65001 CP_ACP:0
CString url = "http://" + ip + ":" + port + "/appapi.aspx?str=select * from [lock] where adress in (" + strcount + ") ";
//AfxMessageBox(url);
mySession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 1000);
myHttpFile = (CHttpFile*)mySession.OpenURL(url.GetBuffer(), 1, INTERNET_FLAG_TRANSFER_ASCII | INTERNET_FLAG_RELOAD, NULL, 0);
while (myHttpFile->ReadString(myData))
{
int nBufferSize = MultiByteToWideChar(CodePage, 0, (LPCSTR)myData, -1, NULL, 0);
wchar_t *pBuffer = new wchar_t[nBufferSize + 1];
memset(pBuffer, 0, (nBufferSize + 1)*sizeof(wchar_t));
MultiByteToWideChar(CodePage, 0, (LPCSTR)myData, -1, pBuffer, nBufferSize*sizeof(wchar_t));
message += pBuffer;
delete pBuffer;
}
//AfxMessageBox(message);
你需要先对strcount
处理一下,变成3个SQL字符串:"'江苏','安徽,'北京'"
注意下你的标点,你用的是全角的逗号,没有括号,这样就不能被sql识别