Aimd's Blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: 订阅 订阅 :: 管理 ::
一:卸载之后重新安装,系统检测会通不过,提示"性能监视器计数器"错误,而不能重新安装。解决方法:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]

"Last Counter"=dword:00000ed4 (5277)

"Last Help"=dword:00000ed5 (5278)

“Last Counter”值必须与以下注册表项中“Perflib\004”的“Counter”项的最大值(最后一项的值)匹配,并且上一步的“Last Help”值必须与以下注册表项中“Perflib\004”的“Help”项的最大值匹配。

也就是说,把Last Counter 和counter,Last Help和help改成一样大的就可以了。

二:使用ado连接数据库。

1:确保能用工具连接上数据库的前提下继续看2。

2:事例代码,其中前几个函数是自定义的,关键代码在connection->open附近。

#include"stdio.h"  

#import   
"C:\Program Files\Common Files\System\ado\msado15.dll"   no_namespace   rename("EOF","rsEOF")  
   
#define RsITEM(rs,x) rs->Fields->Item[_variant_t(x)]->Value
#define UC (char *)

int ReadIntCol(_RecordsetPtr   pRst,char * colName)
{
    
char* buff=new char[256];
    sprintf(buff,
"%s",UC _bstr_t(RsITEM(pRst,colName)));
    
int result= atoi(buff);
    delete buff;
    
return result;
}

double ReadFloatCol(_RecordsetPtr   pRst,char * colName)
{
    
char* buff=new char[256];
    sprintf(buff,
"%s",UC _bstr_t(RsITEM(pRst,colName)));
    
double result= atof(buff);
    delete buff;
    
return result;
}

void ReadStringCol(_RecordsetPtr   pRst,char * colName, char * result)
{
    sprintf(result,
"%s",UC _bstr_t(RsITEM(pRst,colName)));
}

 
int main()
 {  
     
double a[3][3];
     
for(int i=0;i<3;i++)
         
for(int j=0;j<3;j++)
             a[i][j]
=0;
     CoInitialize(NULL);  
     _ConnectionPtr   pConn(__uuidof(Connection));  
     _RecordsetPtr   pRst(__uuidof(Recordset));  
     pConn
->ConnectionString = L"Driver={SQL Server};Server={10.60.56.229,1433};"
         L
"Trusted_Connection=no;"
         L
"Database=test;Uid=wkp;Pwd=wkp;";
     pConn
->Open("","","",-1);  
     HRESULT   hTRes;  
     hTRes   
= pRst.CreateInstance("ADODB.Recordset");      
     
if   (SUCCEEDED(hTRes))  
     {  
         
//repeat begin
         pRst->Open("select   *   from   distance",(_variant_t)((IDispatch   *)pConn), adOpenDynamic,adLockPessimistic,adCmdText);  
         
while(!pRst->rsEOF)  
         {   
             
int begin=ReadIntCol(pRst,"begin");
             
int end=ReadIntCol(pRst,"end");
             
double value=ReadFloatCol(pRst,"value");
             a[begin][end]
=value;
             
/*char * pUsername=new char[256];             
             ReadStringCol(pRst,"username",pUsername);
*/
             
/*printf("id= %d username= %s  password= %s \n", id,pUsername,pPassword);
             delete pUsername;
             delete pPassword;
*/
             pRst
->MoveNext();
         }  
         pRst
->Close(); 
         
//repeat end
     }

     
//below to insert value to db
    /* int nnnn=17;
     char res[512];
     sprintf(res,"insert into lidan values(%d)",nnnn);
     pConn->Execute(res, NULL, adCmdText);
*/

     pConn
->Close();  
     pRst.Release();  
     pConn.Release();  
     CoUninitialize();  

     
     
return 0;
 }



posted on 2007-08-23 16:18  Aimd  阅读(1099)  评论(1编辑  收藏  举报