在头文件类中先定义这些变量,方便在操作数据库的成员函数中使用。
_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=www.gsm-guard.net.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
{
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,见如下连接
对应VS2010连接数据库时,发现没有oleDbCommand或oleDbConnection控件。
解决方法:
??????? 工具-》选择工具项 找到所需控件。选中点击OK即可。
?? ??? 若仍然没有看到所需控件。则 工具-》选择工具项 点击重置按钮。重置控件后,再重新找到所需控件,点击确定。
????? 注意:所需控件有可能不是添加到数据控件中,请自己看看所有控件是否以添加成功。
在头文件类中先定义这些变量,方便在操作数据库的成员函数中使用。
_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=www.gsm-guard.net.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 { 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://www.gsm-guard.net/u012702039/article/details/18661091 相关推荐
如何设置服装关键词排名
如何设置服装关键词排名
如何突破表格关键词排名的关键词
Java笔记--java逐行写
sqlserver直接附加数据
Linux 使用top命令查看
正品北京5032立式铣床(北京
如何测试rs232串口(如何测
谷歌nexus4,请输入搜索内
炒股新手需要了解哪些买卖技巧?
币安合约推出QTUM永续合约
高性能MySQL
PHP中常见的错误类型及其解决
如何使用PHP获取当月第几周(
7 个实用的 PHP 内置函数
设计公司网站优化方案怎么写
医院的网站怎么优化
如何修改文件格式后缀名,手机如
vs2013只能安装c【vs只
vs2022TODO高亮【vs
32768晶振产生1hz脉冲(
视频
阿里云centos7.2自行安
Centos7上使用yum安装