vs2010MFCActiveX控件,连接ORACLE数据库,并显示表名,字段名,并把表格在DataGrid显示
来源:互联网 发布:马克斯cms怎么安装 编辑:程序博客网 时间:2024/05/16 12:17
在头文件类中先定义这些变量,方便在操作数据库的成员函数中使用。
_ConnectionPtr pConn;//连接指针_RecordsetPtr pRst;//记录集指针_CommandPtr pCmd;//_bstr_t mStrSQL;//查询语句_bstr_t mStrSQL1;//查询语句CString strColName;//字段名字HRESULT hr;//查询结果判断Fields* fields;//HRESULT hr1;Fields* fields1;CDataGrid m_dbGrid;//定义一个DataGrid对象long ColCount;//字段个数
连接数据库,pConn->ConnectionString的值可以用UDL文件测试连接下看能不能连上,然后用文本文件打开,把连接字符串粘上即可。
CoInitialize(NULL);//初始化COM运行环境pConn = NULL;pRst = NULL;pCmd = NULL;try{pConn.CreateInstance(__uuidof(Connection));pConn->ConnectionString ="Provider=OraOLEDB.Oracle.1;Password=photo;Persist Security Info=True;User ID=photo;Data Source=PHOTO";pConn->Open("","","",adConnectUnspecified);}catch(...){MessageBox(_T("连接数据库失败,请重连"),_T("警告"),0);}
显示表名在combo中,sql语句:SELECT TABLE_NAME FROM USER_ALL_TABLES;是查询所有用户表的,
SELECT TABLE_NAME FROM ALL_ALL_TABLES;是查询包括系统表在内的所有表
try{pRst1.CreateInstance("ADODB.Recordset");//创建pRst1对象pRst1->CursorLocation=adUseClient;mStrSQL1 = "SELECT TABLE_NAME FROM USER_ALL_TABLES";pRst1->Open(mStrSQL1,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); while(!pRst1->rsEOF)//当记录集pRst1后面还有值{CString str = pRst1->GetCollect("TABLE_NAME");//表名m_combo1.AddString(str);pRst1->MoveNext();}}catch(...){MessageBox(_T("显示表名失败"),_T("警告"),0);}
显示字段在combo中
try{pRst.CreateInstance(__uuidof(Recordset));pRst.CreateInstance("ADODB.Recordset");//创建pRst对象pRst->CursorLocation=adUseClient; //游标的位置出现.不加这句会出现The rowset is not bookmarkable运行错误mStrSQL = "select *from YW_RYXXB"; pRst->Open(mStrSQL,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); hr = pRst->get_Fields (&fields); //得到记录集的字段集和 if(SUCCEEDED(hr)) { ColCount = pRst->Fields->Count;//得到的字段个数}for(j=0;j<ColCount;j++){CString strName=(char*)_bstr_t(pRst->Fields->Item[j]->Name);//字段名m_Combo7.AddString(strName);m_Combo8.AddString(strName);m_Combo9.AddString(strName);m_Combo10.AddString(strName);m_Combo11.AddString(strName);m_Combo12.AddString(strName);}if(SUCCEEDED(hr)){fields->Release();}}catch(...){MessageBox(_T("连接字段失败"),_T("警告"),0);}
把连接的表显示在DataGrid中
m_dbGrid1.SetRefDataSource(NULL); m_dbGrid1.SetRefDataSource((LPUNKNOWN)pRst);m_dbGrid1.Refresh();
在ActiveX中如何使用DataGrid,见如下连接
http://blog.csdn.net/u012702039/article/details/18661091
0 0
- vs2010MFCActiveX控件,连接ORACLE数据库,并显示表名,字段名,并把表格在DataGrid显示
- 查询并逐行显示数据库表中的所有字段名
- oracle数据库获取表的列名以及列名的注释,并按表中字段原来的顺序显示
- 不知道数据库字段名 怎么显示
- 如何用c#连接到oracle数据库并用DataGrid把表中字段显示出来
- Delphi中统一显示表格字段名的高效方法
- MySQL显示连接的数据库名
- 显示数据库所有表名,字段名,数据类型的sql语句 - 广州网站建设
- powerdesigner 在连接线上显示关系名
- powerdesigner 在连接线上显示关系名
- datagrid连接数据库并显示及更新
- 显示表中的所有字段名
- 链接数据库并把表格显示出来
- MySQL,SQLSERVER,ORACLE获取数据库表名及字段名
- 读取数据库中xml类型文件,并把每个节点名当做列名用gridview显示出来
- ASP 显示数据库中表名、字段名、字段内容(只知道数据库文件路径和文件名)
- postgresql数据库表格名、字段名有特殊字符
- 从数据库读取表名和字段,返回json串,显示为树结构
- 软件人员评估体系
- jstat命令用法
- Selenium2.0 WebDriver入门指南
- 新人学习java导论
- CSS解读之换行属性
- vs2010MFCActiveX控件,连接ORACLE数据库,并显示表名,字段名,并把表格在DataGrid显示
- Record Audio(录音)
- 机器学习基本算
- pentaho 5.0.1 迁移到mysql 数据库
- Linux 容器的建立和简单管理
- 批量Append
- 如何在十天内掌握线性代数
- 越狱后 第三方助手显示未越狱如何解决
- aspx前台页面取后台值