详解:
超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键
候选键(candidate key):不含有多余属性的超键称为候选键
根据定义来说讲也就是说我们没有C列的值也可以唯一的标识一条数据实体。
具体的解说:
选择A的话(第二列数据实例A1B1与第四列数据实例相同)不符合定义所以错误
选择C的话(第一列数据实例A1C1D1与第三列数据实例相同)不符合定义所以错误
选择D的话(第二列数据实例A2B1C1与第四列数据实例相同)不符合定义所以错误
希望能帮到你!
应该是基于CRecordView才行,这样系统会自动生成一个相应的***Set类,里面有你数据源中的所有字段和变量,同时View类里会有个自动生成的m_pSet指针,是Set类里的,这个指针直接可以 *** 作数据库。比如我要把数据库的数据全部显示到一个报表,就是这样:m_pSet->MoveFirst()
m_list.DeleteAllItems()//m_list是报表关联的Control型变量
do
{
CString s,s1,s2
s.Format("%d",i+1)
s1.Format("%ld",m_pSet->m_stuId)
s2.Format("%ld",m_pSet->m_stuFamilyNum)//这4条是变量类型的转换
m_list.InsertItem(i,s)//i是一个全局变量,初始值为0,用来计数的
m_list.SetItemText(i,1,s1)
m_list.SetItemText(i,2,m_pSet->m_stuName)
m_list.SetItemText(i,3,m_pSet->m_stuSex)
m_list.SetItemText(i,4,m_pSet->m_stuProfession)
m_list.SetItemText(i,5,m_pSet->m_stuClass)
m_list.SetItemText(i,6,m_pSet->m_stuHobby)
m_list.SetItemText(i,7,m_pSet->m_stuAddress)
m_list.SetItemText(i,8,s2)//向报表插入数据库的数据,也就是读取数据库
i++// i 递增
m_pSet->MoveNext()//指针后移
} while(!m_pSet->IsEOF())
m_pSet->Close()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)