vc ado 连接sql server2005有关问题
vc ado 连接sql server2005问题
#include "stdafx.h"
#include <string>
#include <iostream>
#include <cstdlib>
#include "atlstr.h"
using namespace std;
class fado
{
public:
_ConnectionPtr mcon;
_RecordsetPtr mrst;
public:
fado(){}
virtual ~fado(){}
void oninitadoc();
_RecordsetPtr& getrst(_bstr_t bstrsql);
BOOL exesql(_bstr_t bstrsql);
void exitcon();
};
void fado::oninitadoc()
{
::CoInitialize(NULL);
try
{
mcon.CreateInstance("ADODB.Connection");
_bstr_t strcon="Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=Gavin;Initial Catalog=userman;Data Source=GAVIN\\SQLEXPRESS";
mcon->Open(strcon,"","",adModeUnknown);
}
catch(_com_error &e)
{
cout<<e.Description();
//MessageBox(e.Description());
}
}
_RecordsetPtr& fado::getrst(_bstr_t bstrsql)
{
try
{
if(mcon==NULL)
oninitadoc();
mrst.CreateInstance(__uuidof(Recordset));
mrst->Open(bstrsql,mcon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
cout<<e.Description()<<endl;
//AfxMessageBox(e.Description());
}
return mrst;
}
BOOL fado::exesql(_bstr_t bstrsql)
{
_variant_t RecordsAffected;
try
{
if(mcon==NULL)
oninitadoc();
mcon->Execute(bstrsql,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
cout<<e.Description()<<endl;
//AfxMessageBox(e.Description());
return false;
}
}
void fado::exitcon()
{
if(mrst!=NULL)
mrst->Close();
mcon->Close();
::CoUninitialize();
}
class cusers
{
private:
int uid;
CString uname;
CString upwd;
public:
cusers(void);
~cusers(void);
int guid();
void setuid(int vuid);
CString guname();
void setuname(CString vuname);
CString gupwd();
void setupwd(CString vupwd);
void sqlinsert();
void sqlupdate(CString cuid);
void sqldelete(CString cuid);
void getdata(CString cuid);
};
cusers::cusers()
{
uid=0;
uname="";
upwd="";
}
cusers::~cusers(void)
{
}
int cusers::guid()
{
return uid;
}
void cusers::setuid(int vuid)
{
uid=vuid;
}
void cusers::sqlinsert()
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="INSERT INTO users (uname,upwd) VALUES (uname,upwd)";
fa.exesql(vsql);
fa.exitcon();
}
void cusers::getdata(CString cuid)
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="SELECT * FROM users WHERE uid="+cuid;
_RecordsetPtr mrst;
mrst=fa.getrst(vsql);
//cout<<cuid;
if(mrst->adoEOF==1)
cusers();
else
{
//int uid=atoi(cuid);
uname=(LPCTSTR)(_bstr_t)mrst->GetCollect("uname");
upwd=(LPCTSTR)(_bstr_t)mrst->GetCollect("upwd");
}
fa.exitcon();
}
程序为
int main()
{
try{
cusers cu;
cu.sqlinsert();
//cu.getdata("10");
}
catch (_com_error &e)
{
cout<<e.Description()<<endl;
}
getchar();
return 0;
}
程序中的问题语句是
void cusers::sqlinsert()
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="INSERT INTO users (uname,upwd) VALUES (uname,upwd)";
#include "stdafx.h"
#include <string>
#include <iostream>
#include <cstdlib>
#include "atlstr.h"
using namespace std;
class fado
{
public:
_ConnectionPtr mcon;
_RecordsetPtr mrst;
public:
fado(){}
virtual ~fado(){}
void oninitadoc();
_RecordsetPtr& getrst(_bstr_t bstrsql);
BOOL exesql(_bstr_t bstrsql);
void exitcon();
};
void fado::oninitadoc()
{
::CoInitialize(NULL);
try
{
mcon.CreateInstance("ADODB.Connection");
_bstr_t strcon="Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=Gavin;Initial Catalog=userman;Data Source=GAVIN\\SQLEXPRESS";
mcon->Open(strcon,"","",adModeUnknown);
}
catch(_com_error &e)
{
cout<<e.Description();
//MessageBox(e.Description());
}
}
_RecordsetPtr& fado::getrst(_bstr_t bstrsql)
{
try
{
if(mcon==NULL)
oninitadoc();
mrst.CreateInstance(__uuidof(Recordset));
mrst->Open(bstrsql,mcon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
cout<<e.Description()<<endl;
//AfxMessageBox(e.Description());
}
return mrst;
}
BOOL fado::exesql(_bstr_t bstrsql)
{
_variant_t RecordsAffected;
try
{
if(mcon==NULL)
oninitadoc();
mcon->Execute(bstrsql,NULL,adCmdText);
return true;
}
catch(_com_error e)
{
cout<<e.Description()<<endl;
//AfxMessageBox(e.Description());
return false;
}
}
void fado::exitcon()
{
if(mrst!=NULL)
mrst->Close();
mcon->Close();
::CoUninitialize();
}
class cusers
{
private:
int uid;
CString uname;
CString upwd;
public:
cusers(void);
~cusers(void);
int guid();
void setuid(int vuid);
CString guname();
void setuname(CString vuname);
CString gupwd();
void setupwd(CString vupwd);
void sqlinsert();
void sqlupdate(CString cuid);
void sqldelete(CString cuid);
void getdata(CString cuid);
};
cusers::cusers()
{
uid=0;
uname="";
upwd="";
}
cusers::~cusers(void)
{
}
int cusers::guid()
{
return uid;
}
void cusers::setuid(int vuid)
{
uid=vuid;
}
void cusers::sqlinsert()
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="INSERT INTO users (uname,upwd) VALUES (uname,upwd)";
fa.exesql(vsql);
fa.exitcon();
}
void cusers::getdata(CString cuid)
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="SELECT * FROM users WHERE uid="+cuid;
_RecordsetPtr mrst;
mrst=fa.getrst(vsql);
//cout<<cuid;
if(mrst->adoEOF==1)
cusers();
else
{
//int uid=atoi(cuid);
uname=(LPCTSTR)(_bstr_t)mrst->GetCollect("uname");
upwd=(LPCTSTR)(_bstr_t)mrst->GetCollect("upwd");
}
fa.exitcon();
}
程序为
int main()
{
try{
cusers cu;
cu.sqlinsert();
//cu.getdata("10");
}
catch (_com_error &e)
{
cout<<e.Description()<<endl;
}
getchar();
return 0;
}
程序中的问题语句是
void cusers::sqlinsert()
{
fado fa;
fa.oninitadoc();
_bstr_t vsql;
vsql="INSERT INTO users (uname,upwd) VALUES (uname,upwd)";