mfc 获取数据库的元素,或者变量

mfc 获取数据库的元素,或者变量,第1张

如果你已经连接到数据库的话,获取变量的方法如下:

在头文件中定义一个变量:

_RecordsetPtr pRst

CPP文件中:

pRst.CreateInstance("ADODB.Recordset")

pRst->Open("select *from表名 where 字段名='"+u+"'",_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText)//u是变量名

u的类型是_bstr_t 的,凡是变量的都是_bstr_t型的,

这样搞定之后,if(!pRst->rsEOF)

{

_variant_t p=pRst->GetCollect("表中的字段名")

}

把值取出,GetCollect("xxx")这个函数的返回值都是_variant_t型的,根据你的需要可以进行转化

例如:

_bstr_t a=(_bstr_t) p(p是_variant_t)型的,CString b=(LPCTSTR)a(a是_bstr_t型的),

int c=(long)p(p是_variant_t)型的,_variant_t d=(_variant_t)(long) c(c是int型的)

如果你的数据没有连接的话:

步骤如下:

用ADO连接SQL数据库

步骤如下:

1,在头文件"StdAfx.h"中导入#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","rsEOF"),记住把这句话放到endif的后面,不然会报错,这样处理好之后,编译后又一个警告,可以忽略

2,在对话框的OnInitDialog()函数中写上"::CoInitialize(NULL)::AfxOleInit()” 在主程序的初始化函数中,它就可以写一次

3,在对话框类的头文件中,声明如下变量:_ConnectionPtr m_pConnection_RecordsetPtr pRst

连接数据库的代码如下:

try

{

hr=m_pConnection.CreateInstance("ADODB.Connection")

if(SUCCEEDED(hr))

{

hr=m_pConnection->Open("Provider=数据库的驱动器名称Integrated Security=SSPIPersist Security Info=FalseData Source=数据库服务器名Initial Catalog=连接的数据库名User ID=登陆数据库的名称Password=登陆数据库的密码","","",adModeUnknown)

}

}

catch(_com_error e)

{

AfxMessageBox(e.ErrorMessage())

}

”数据库的驱动器名称“在控制面板里,以大图标查看,可以看到一个"ODBC",双击打开,在”驱动程序“里面在最下面有两个”SQL Server"和“SQL Native Client"如果你是2000的SQL版本,就选”SQL Server"及“Provider=SQL Server"2005的"Provider=SQL Native Client"Data Source=? ,?的值可以是”localhost"也可以是你的数据库服务器的名称,连接数据库的时候可以看到,复制一下就可以了。

有远程直接方法数据库的方法。大中型数据库基本都是网络数据库,如常见的ORACLE / MSSQL / MYSQL等。

MFC编程,对这些数据库可以直接通过ADO进行查询和修改,常用的办法,就是用IP地址和实例(一般为默认)作为连接字符串中的SERVER即可。

对于网络型数据库(ACCESS、DBASE不在此列),你不需要做服务器端程序,只需要通过数据库支持的通讯协议和方法进行远程 *** 作即可。

你首先要创建一个连接数据库的对象,比如你用cdatabase连接数据库后,然后用crecordset对象去打开表,那你运行crecordset对象的open函数,其中select语句用下面的格式:

select count(sysobjects.name )from sysobjects.xtype ='U'

在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名;

然后调用movefirst;

然后调用crecordset的getfieldvalue函数既可以获取值;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10869400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存