c++与sqlserver数据库怎样连接

最好给一个小程序啊,谢谢啊

HRESULThr=sqlSp.CreateInstance(_uuidof(Connection));

if(FAILED(hr))

{

AfxMessageBox("_ConnectionPtr对象指针实例化失败!!!");

return;

}

else{

try{

_bstr_tstrConnect="Driver={sqlserver};server=192.168.1.29;uid=sa;pwd=ebank@123;database=baoshang;";

sqlSp->Open(strConnect,"","",adModeUnknown);

}

catch(_com_error&e)

{

AfxMessageBox(e.Description());

return;

}

_RecordsetPtrm_pRecordset;

if(FAILED(m_pRecordset.CreateInstance(_uuidof(Recordset))))

{

AfxMessageBox("记录集对象指针实例化失败!");

return;

}

try{

m_pRecordset->Open("select*fromdbo.TB_DICT_CONTTYPE",(IDispatch*)sqlSp,adOpenDynamic,adLockOptimistic,adCmdText);

}

catch(_com_error&e)

{

AfxMessageBox(e.Description());

return;

}

try{

m_pRecordset->MoveFirst();

while(!m_pRecordset->adoEOF)

{

CStringinsertTime=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("F_TYPE_ID"))->Value);

AfxMessageBox(insertTime);

m_pRecordset->MoveNext();

}

}

catch(_com_error&e)

{

AfxMessageBox(e.Description());

return;

}

}

扩展资料

连接数据库三支路

1、导入数据库命名空间:

usingSystem.Data.SqlClient;

2、创建数据库连接对象,并指定数据库连接字符串:

//创建数据库连接对象:SqlConnectionconn=newSqlConnection(str);

//数据库连接字符串:Stringstr="DataSource=.;InitialCatalog=test;IntegratedSecurity=True";

3、打开与数据库的连接:

Open.conn();

4、创建操作命令对象Command,并指定操作数据源以及操作命令:

//创建操作命令对象:SqlCommandcmd=newSqlCommand();

//操作数据源:cmd.Connection=conn;

//操作命令:cmd.CommandText="selectcount(*)fromuser_tablewhereuserName='"+uName+"'anduserPwd='"+uPwd+"'";

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-16
C++使用MFC库,主要有两种方法可以连接sql数据库
1.利用ADO连接:
#import "msado15.dll" no_namespace rename("EOF", "EndOfFile")
//必须import这个dll,这个文件通常放在C:\Program Files\Common Files\System\ado路径下.
_ConnectionPtr m_ptrConnection; //数据库连接对象
构造函数中添加如下语句
m_ptrConnection = NULL;
::CoInitialize(NULL);
//连接数据库的主要代码
BOOL DataVisitor::ConnectDataBase(_bstr_t connectionStr)
{
/*
Added by stone. If IDOConnection has not been set up,then create one.
*/
if(m_ptrConnection == NULL)
{
HRESULT hr = m_ptrConnection.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
{
return FALSE;
}
else
{
_bstr_t strConnect = connectionStr;
//"Provider=SQLOLEDB;Server=(local);Database=navigation; uid=sa; pwd=3277625;";

m_ptrConnection->CursorLocation = adUseClient;
m_ptrConnection->IsolationLevel = adXactReadCommitted;
try
{
m_ptrConnection->Open(strConnect,"","",adModeUnknown);
return TRUE;
}
catch (_com_error e)
{
// AfxMessageBox((char *)e.Description());
return FALSE;
}

}
}
return TRUE;
}

2. 利用ODBC连接
#include <afxdao.h>
CDaoDatabase *MyDataBase;

BOOL MyDB_OperSqL::Open_MyDatabase(CString connstr)
{
try
{
if (MyDataBase == NULL)
{
MyDataBase = new CDaoDatabase();
}
MyDataBase->Open(NULL,0,0,connstr);

}
catch( CDaoException* e )
{
CString message = _T("MyDB_OperSqL 数据库异常: ");
message += e->m_pErrorInfo->m_strDescription;
char info[400];
sprintf(info,message);
DispErrorMessage(info,__LINE__);
e->Delete( );
return FALSE;
}
catch (CMemoryException *e)
{
DispErrorMessage("MyDB_OperSqL 内存异常!",__LINE__);
e->Delete( );
return FALSE;
}
catch(...)
{
DispErrorMessage("MyDB_OperSqL 其它异常!",__LINE__);
return FALSE;
}
return TRUE;
}
这里的连接字符串connstr一般是如下内容
"ODBC;DRIVER={SQL Server};SERVER=(local);DATABASE=yourDataBase;UID=yourID;PWD=yourPassword"
第2个回答  推荐于2017-09-04
C++连接SQL数据库第一步 系统配置
1.设置SQLSERVER服务器为SQL登录方式,并且系统安全性中的sa用户要设置登录功能为“启用”,还有必须要有密码。
2.需要在ODBC中进行数据源配置,数据源选\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。
C++连接SQL数据库第二步 C++与SQL连接初始化
1.在你所建立的C++项目中的stdafx.h头文件中引入ADO
具体代码如下
#import “c:\Program Files\Common Files\System\ado\msado15.dll”
no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)
2.定义_ConnectionPtr变量后调用Connection对象的Open方法建立与服务器的连接。
数据类型_ConnectionPtr实际上是由类模板_com_ptr_t得到的一个具体的实例类。_ConnectionPtr类封装了Connection对象的Idispatch接口指针及其一些必要的操作。可以通过这个指针操纵Connection对象。
例如连接SQLServer数据库,代码如下:
//连接到MS SQL Server
//初始化指针
_ConnectionPtr pMyConnect = NULL;
HRESULT hr = pMyConnect.CreateInstance(__uuidof(Connection));
if (FAILED(hr))
return;
//初始化链接参数
_bstr_t strConnect = “Provider=SQLOLEDB;
Server=hch;
Database=mytest;
uid=sa; pwd=sa;”; //Database指你系统中的数据库
//执行连接
try
{
// Open方法连接字串必须四BSTR或者_bstr_t类型
pMyConnect->Open(strConnect, “”, “”, NULL);
}
catch(_com_error &e)
{
MessageBox(e.Description(), “警告”, MB_OK|MB_ICONINFORMATION);
}//发生链接错误

C++连接SQL数据库第三步 简单的数据连接
//定义_RecordsetPtr变量,调用它Recordset对象的Open,即可打开一个数据集
//初始化过程 以下是个实例
_RecordsetPtr pRecordset;
if (FAILED(pRecordset.CreateInstance(__uuidof(Recordset))))
{
return;
}
//执行操作
try
{
pRecordset->Open(_variant_t(”userinfo”),
_variant_t((IDispatch*)pMyConnect),
adOpenKeyset, adLockOptimistic, adCmdTable);
}
catch (_com_error &e)
{
MessageBox(”无法打开userinfo表\”, “系统提示”,
MB_OK|MB_ICONINFORMATION);
}

C++连接SQL数据库第四步 执行SQL语句
这里是关键,我认为只要你懂点SQL语句那么一切都会方便许多比用上面的方法简单,更有效率点。
首先
m_pConnection.CreateInstance(_uuidof(Connection));
//初始化Connection指针
m_pRecordset.CreateInstance(__uuidof(Recordset));
//初始化Recordset指针
CString strSql=”select * from tb_goods”;//具体执行的SQL语句
m_pRecordset=m_pConnection->Execute(_bstr_t(strSql),
NULL, adCmdText);//将查询数据导入m_pRecordset数据容器
至此 你的SQL语句已经执行完成了m_pRecordset内的数据就是你执行的结果。
取得记录:
while(!m_pRecordset->adoEOF)//遍历并读取name列的记录并输出
{
CString temp = (TCHAR *)(_bstr_t)m_pRecordset->GetFields()->GetItem
(”name”)->Value;
AfxMessageBox(temp);
pRecordset->MoveNext();
}

插入记录
//记得初始化指针再执行以下操作
CString strsql;
strsql.Format(”insert into tb_goods(no,name, price)
values(’%d’,'%s’, %d)”,m_intNo,m_strName,m_intPrice);
m_pRecordset=m_pConnection->
Execute(_bstr_t(strsql),NULL,adCmdText);

修改记录
CString strsql;
strsql.Format(”update tb_goods set name=’%s’ ,
price=%d where no=%d “,m_strName,m_intPrice,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText);

删除记录
CString strsql;
strsql.Format(”delete from tb_goodswhere no= ‘%d’ “,m_intNo);
m_pRecordset=m_pConnection->Execute(_bstr_t(strsql),NULL,adCmdText)

c++中怎么连接sqlserver
2.需要在ODBC中进行数据源配置,数据源选\\”SQL SERVER”,登录方式使用“使用输入用户登录ID和密码的SQL SERVER验证”,并填写登录名(sa)和密码,注意一点,密码不能为空,这就意味着你的sa用户必须得有密码。否则无法通过系统本身的安全策略。测试通过就完成了配置。C++连接SQL数据库第二步 C++与SQ...

C++Builder连接SQL server数据库
C++Builder连SQL Server一般通过ADO控件,最简单的是通过ADODataSet。关键点提示:1、学会建立程序、建立程序的窗体、学会在窗体上放控件。2、找到ADODataSet控件,它一般在dbgo控件分组(控件页)中。3、找到ADODataSet控件的属性设置中的“ConnectionString”,对它边上的“...”小按钮点一下,就会出来一...

Visual C++应用程序如何连接SQL Server数据库 急
Visual C 连接数据库 - 连接SQL Server 2000 使用DAO 看下面的代码:CDaoDatabase db;CString conn;conn="ODBC;Driver= SQLServer};Server=192.168.0.4;Database=mydb;uid=sa;pwd=";db.Open(NULL,FALSE,FALSE,conn);CString s=db.GetConnect();CDaoRecordset rs(&db);rs.Open(AFX_DAO_USE_D...

求问C++怎么连接SQL server啊
\/\/ TestADOSql.cpp : 定义控制台应用程序的入口点。\/\/ #include "stdafx.h"#include "iostream" #include "string" #include "vector" \/\/步骤1:添加对ADO的支持#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","adoEOF") using namespace ...

怎么在c++builder中用ado连接sqlserver数据库
先调用 ADOConnection->Open();打开数据库 然后动态修改SQL语句,其中sqlstr为AnsiString型,例如 sqlstr = "Select * from Table1";ADOQuery1->Close();ADOQuery1->SQL->Clear();ADOQuery1->SQL->Add(sqlstr);ADOQuery1->Open();其中最后一句ADOQuery1->Open();是对于SQL语句为SELECT型的,...

跪求Visual C++程序连接数据库的方法,十分火急!!!
"Data Source=C:\\BegASPNET\\Northwind.mdb"是指明数据源的位置,他的标准形式是"Data Source=MyDrive:MyPath\\MyFile.MDB". PS: 1."+="后面的"@"符号是防止将后面字符串中的"\\"解析为转义字符. 2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接: strConnection+="Data Source=...

codeblock怎样连接sqlserver
C++不像php那样智能,没有集成的wamp环境,因此,C++连接数据库也就没有那么方便。上网查了些资料,终于连接成功了,记录下过程 。1.在电脑上安装mysql 这一步网上有人说必须选择custmo模式,不过我安装时没有选择,也连接成功了。貌似没有那个必要。2.下载mysql头文件 这个 必须要有,下载好后,把...

c++如何能直接使用SQL语句
1.C++连接SQL数据库第二步 C++与SQL连接初始化 在你所建立的C++项目中的stdafx.h头文件中引入ADO 具体代码如下 import “c:\\Program Files\\Common Files\\System\\ado\\msado15.dll”no_namespace rename(”EOF”, “adoEOF”) rename(”BOF”, “adoBOF”)2.定义_ConnectionPtr变量后调用Connection...

如何在linux下用C 或者C++连接sqlserver
ListViewer listViewer;public static class Language { public String genre;public boolean isObjectOriented;public Language() { } public Language(String genre, boolean isObjectOriented) { this.genre = genre;this.isObjectOriented = isObjectOriented;} ...

C++连接mysql数据库的两种方法?
第一种方法是利用ADO连接,第二种方法是利用mysql自己的api函数进行连接。第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库。暂时只连接了mysql,sqlserver,oracle,access。对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说。第二种方法只能针对...

相似回答