Aimd's Blog

  博客园 :: 首页 :: 新随笔 ::  :: 订阅 订阅 :: 管理 ::
  29 随笔 :: 0 文章 :: 79 评论 :: 0 Trackbacks
一:卸载之后重新安装,系统检测会通不过,提示"性能监视器计数器"错误,而不能重新安装。解决方法:
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 阅读(384) 评论(1)  编辑 收藏 所属分类: DataBase

评论

#1楼  2008-04-16 20:54 vom [未注册用户]
SQL server 2005 不能重新安装解决及ADO连接事例代码
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
博客园首页

新闻频道

社区

小组

博问

网摘

闪存

  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
成果网帮您增加网站收入


相关链接: