|
好久没有来了 |
好久没有写博客,今天有空随便写一下,下面是我自己搞的一个VC下联接ORACLE一段代码。第一次写的,对以后肯定是有些帮助的,所以拿上来,以后可以看一看。
DWORD WINAPI ProcessOracle(LPVOID lpParameter){ while(TRUE) { bThreadStart = TRUE; CoInitialize(NULL); _ConnectionPtr pConn(__uuidof(Connection)); _RecordsetPtr pRecord(__uuidof(Recordset)); pConn->ConnectionString = "Provider=OraOLEDB.Oracle.1;Password=appuser;Persist Security Info=True;User ID=appuser;Data Source=TESTDB"; pConn->Open("","","",adConnectUnspecified);// pRecord = pConn->Execute("select * from yyr_mbinside_feectrl",NULL,adCmdText); while (!pRecord->rsEOF) { ITEM_KEY *key = new ITEM_KEY(); ITEM_KEYVALUE keyValue ; //先KEY值 key->m_Coid = (char*)(_bstr_t)pRecord->Fields->GetItem((_variant_t)"COID") ->Value; key->m_Operator = (char*)(_bstr_t)pRecord->Fields->GetItem((_variant_t)"OPERATOR") ->Value; key->m_Province = (char*)(_bstr_t)pRecord->Fields->GetItem((_variant_t)"PROVINCE") ->Value; //再得到KEYVALUE值 keyValue.m_Daylimit = (char*)(_bstr_t)pRecord->Fields->GetItem((_variant_t)"daylimit") ->Value; keyValue.m_Monthlimit = (char*)(_bstr_t)pRecord->Fields->GetItem((_variant_t)"monthlimit") ->Value; //入栈 item.insert(PROCESS_PER_ITEM::value_type(*key,keyValue)); //把申请的内存块进入LIST中,以后好KISS掉 listItem.push_back(key); pRecord->MoveNext(); //DELETE_POINT(key); } /*char *pc = new char[40]; memset(pc,0,40);sprintf(pc,"%d",item.size());::MessageBox(NULL,pc,"SIZE OF ITEM",MB_OK); break;*/ bThreadStart = FALSE; ::Sleep(1000 * 60 * 10); //先放掉已申请的内存 LIST_ITEM::iterator it; for(it=listItem.begin();it!=listItem.end();++it) { DELETE_POINT(*it); } //全部关闭掉,并且清空MAP列表 pRecord->Close(); pConn->Close(); pRecord.Release(); pConn.Release(); item.clear(); CoUninitialize(); } return 1;} | |
|
回复:好久没有来了 |
fjsh(游客)发表评论于2009/4/8 11:33:53 |
<a href="http://reducer.vwwv.gd.cn/?cat=68">齿轮箱</a> | |
|
» 1 »
|
|
|