求助.一个访问sql数据库的问题

sinohappygirl 2004-06-24 06:39:15
刚刚接触vc编程.谢谢大家帮助.问题是这样的.我现在要在一个原有工程中.增加一个读写sql数据库的小模块.
具体是.作一个对话框.显示sql数据表中的字段内容,可以查看,(第一条.上一条,下一条.最后一条.)修改.删除,增加.但是对话框的字段来自两个表.而不是一个表.我该怎么作.最好用mfcodbc.或者最简单最好.不过要在原来的工程上增加内容.不可能新建工程,会有什么影响.
...全文
152 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdawn 2004-06-30
  • 打赏
  • 举报
回复
void CDlgCCProbeSet::OnOK()
{
m_DBt_probe.Close();
m_DBt_probeip.Close();
UpdateData(TRUE);

//使用inet_addr函数将点分十进制ip地址,转换为网络字节序.

nNetIP = inet_addr(m_strCCIP);
try
{
m_DBt_cc.Open();
m_DBt_smserver.Open();
m_DBt_timeserver.Open();

if(m_DBt_cc.CanAppend() && m_DBt_smserver.CanAppend() && m_DBt_timeserver.CanAppend())

{
m_DBt_cc.Edit();
m_DBt_smserver.Edit();
m_DBt_timeserver.Edit();
m_DBt_cc.m_dwCCAddr = nNetIP;
m_DBt_cc.m_szDacKey = m_strCCKey;
m_DBt_smserver.m_dwIPAddr = nNetIP;
m_DBt_timeserver.m_dwIPAddr = nNetIP;
m_DBt_cc.Update();
m_DBt_smserver.Update();
m_DBt_timeserver.Update();

}
else AfxMessageBox("数据库权限错误");

m_DBt_probe.Open();
if(!m_DBt_probe.IsBOF())
m_DBt_probe.MoveFirst();

//修改CC控制平台ip地址后,遍历probe数据表,将其中所有的dwIPAddr字段
//的值换成新的CC控制平台ip地址


while(!m_DBt_probe.IsEOF())
{
m_DBt_probe.Edit();
m_DBt_probe.m_dwCCAddr = nNetIP;
m_DBt_probe.Update();
m_DBt_probe.MoveNext();
}

m_DBt_cc.Close();
m_DBt_smserver.Close();
m_DBt_timeserver.Close();
m_DBt_probe.Close();


}
catch (CDBException * pe)
{
AfxMessageBox(pe->m_strError);
pe->Delete();
}


CDialog::OnOK();
}

//修改数据表prob中的相关设置

void CDlgCCProbeSet::OnButtonModify()
{
// TODO: Add your control notification handler code here
try
{
m_DBt_probe.Edit();
m_DBt_probeip.Edit();
UpdateData(TRUE);
m_DBt_probe.m_dwCCAddr = inet_addr(m_strCCIP);
m_DBt_probe.m_dwIPAddr = inet_addr(m_strProbeIP);
m_DBt_probe.m_szKey = m_strProbeKey;
m_DBt_probe.m_szName = m_strProbeName;
m_DBt_probe.m_nPort = 11020;
m_DBt_probeip.m_dwIPAddr = inet_addr(m_strProbeIP);
m_DBt_probeip.m_dwIPMask = inet_addr(m_strProbeMask);
m_DBt_probe.Update();
m_DBt_probeip.Update();
}
catch (CDBException *pe)
{
AfxMessageBox(pe->m_strError);
pe->Delete();
}

}

//增加新的probe探针
void CDlgCCProbeSet::OnButtonAdd()
{
// TODO: Add your control notification handler code here
try
{
m_DBt_probe.AddNew();
m_DBt_probeip.AddNew();
UpdateData(TRUE);
m_DBt_probe.m_dwCCAddr = inet_addr(m_strCCIP);
m_DBt_probe.m_dwIPAddr = inet_addr(m_strProbeIP);
m_DBt_probe.m_szKey = m_strProbeKey;
m_DBt_probe.m_szName = m_strProbeName;
m_DBt_probe.m_nPort = 11020;
m_DBt_probeip.m_dwIPAddr = inet_addr(m_strProbeIP);
m_DBt_probeip.m_dwIPMask = inet_addr(m_strProbeMask);

m_DBt_probe.Update();
m_DBt_probeip.Update();
m_DBt_probe.Requery();
m_DBt_probeip.Requery();
AfxMessageBox("探针添加完成!");
}
catch (CDBException *pe)
{
AfxMessageBox(pe->m_strError);
pe->Delete();
}

}

//删除probe探针
void CDlgCCProbeSet::OnButtonDelete()
{
// TODO: Add your control notification handler code here
try
{

m_DBt_probe.Delete();
m_DBt_probeip.Delete();
m_DBt_probe.Requery();
m_DBt_probeip.Requery();
RefreshData();
}
catch (CDBException *pe)
{
AfxMessageBox(pe->m_strError);
pe->Delete();
}

}

//对probe数据表进行管理管理
void CDlgCCProbeSet::OnButtonRecordf
THEMFS 2004-06-27
  • 打赏
  • 举报
回复
你的问题不是很明白啊!
sinohappygirl 2004-06-27
  • 打赏
  • 举报
回复
怎么没有人回呀.郁闷中....
jinxuliang 2004-06-27
  • 打赏
  • 举报
回复
select table1.filed1,table1.field2,....,table1.fieldn,table2.field1,table2.field2,...
from table1 inner join on table1.frogenkey=table2.forgenkey
order by table1.field1....
sohou 2004-06-27
  • 打赏
  • 举报
回复
用DATAGRID还简单些,呵呵
wwfhjg 2004-06-24
  • 打赏
  • 举报
回复
??
Kudeet 2004-06-24
  • 打赏
  • 举报
回复
如果要新增记录,对于没有关联到的两个表的字段怎么办?都空吗?插入记录只是部分字段?其他的呢?
hopen 2004-06-24
  • 打赏
  • 举报
回复
显示用关联查询
修改,删除,新增只能用一个表,一个表的操作
Kudeet 2004-06-24
  • 打赏
  • 举报
回复
用CListCtrl控件显示你的数据,
建立一个CRecordset记录集来返回你两个表的字段,从记录集里取出数据用CListCtrl显示

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧