gpt4 book ai didi

c++ - Oracle SQL 删除位于数组/C 数组/数据结构中的值

转载 作者:太空宇宙 更新时间:2023-11-04 12:02:22 25 4
gpt4 key购买 nike

我有带 ID 的 CArray/CMap。
SQL表上有:ID、Value、StartTime、EndTime。
我收到 StartTime 和 EndTime,需要删除出现在该 CArray 上的所有 ID。
所以需要查询如:
“从表中删除 id 在 ( list[0], list[1], list[2]. ... list[n] ) 和 T1 和 T2 之间的时间”
我的问题是如何实现“in (..)”如何传输 CArray 上的 ID?

将 CDatabase.executeSQL(QUERY) 与 CommitTrans 和 CommitTrans 结合使用

谢谢

最佳答案

你能做的最简单的就是这个(前提是你有 CArray 并且它叫做 arId):

CString sql, item;
sql = _T("delete from table where id ");
if(arId.GetCount() == 1)
{
item.Format(_T(" = %d"), arId[0]);
sql += item;
}
else
{
for(int i = 0; i < arId.GetCount(); ++i)
{
if(i == 0) sql += _T("IN (");
item.Format(_T("%d"), arId[0]);
if(i == arId.GetCount()-1)
item += _T(")");
else
item += _T(", ");
sql += item;
}
}
CDatabase.executeSQL(sql);

对于 CMap,将 for(i = 0;...) 替换为 POSITION pos = mapId.GetStartPosition() 等

关于c++ - Oracle SQL 删除位于数组/C 数组/数据结构中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com