| 
 
   
   
 
 | 
| 
 
|  好久没有来了 |  
| 
 
| 好久没有写博客,今天有空随便写一下,下面是我自己搞的一个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 » 
 |  
 |  |