1、物理结构
(由控制文件、数据文件、重做日志文件、参数文件、归档文件、口令文件组成)
一个数据库中的数据存储在磁盘上物理文件,被使用时,调入内存。
其中控制文件、数据文件、重做日志文件、跟踪文件及警告日志(trace files,alert files)属于数据库文件
参数文件(parameter file)口令文件(password file)是非数据库文件
1.1数据文件:
存储数据的文件.数据文件典型地代表了根据他们使用的磁盘空间和数量所决定的一个Oracle数据库的容积。
由于性能原因,每一种类型的数据放在相应的一个或一系列文件中,将这些文件放在不同的磁盘中。
````
你用命令语句试下。举个例子,数据库装在192.168.0.2上,SQL登陆用户sa
密码pas
需要导出test_n库的table_n表
导出内容放在d:\A.xls
这个excel文件中
EXEC
master..xp_cmdshell
'bcp
"use
test_n
select
*
from
table_n"
queryout
D:\A.xls
-c
-S"192.168.0.2"
-U"sa"
-P"pas"'
这个用文字说的话你不易懂,我也在学,最近找了个不错的教程,给我个邮箱,我发给你。先给你个例子实现增删改查的。
我之前做的程序:
void COicqView::OnDel()
{
// TODO: Add your control notification handler code here
if(AfxMessageBox( "真的要删除 "+m_pSet->m_column1+ "吗? ",MB_OKCANCEL)==IDCANCEL)return
if(m_pSet->IsEOF())
{
AfxMessageBox( "没有号码可删除? ")
return
}
m_pSet->Delete()
if(m_pSet->IsEOF())
m_pSet->MoveLast()
else m_pSet->MoveNext()
m_pSet->Requery()
UpdateData(false)
AfxMessageBox( "已经删除了该号码 ")
OnShowall()
}
void COicqView::OnAlldel()
{
// TODO: Add your control notification handler code here
if(AfxMessageBox( "真的要删除全部号码吗? ",MB_OKCANCEL)==IDCANCEL)return
int i=0
CString str
if(m_pSet->IsEOF())
{
AfxMessageBox( "没有号码可删除? ")
return
}
m_pSet->MoveFirst()
while(!m_pSet->IsEOF())
{
m_pSet->Delete()
m_pSet->MoveNext()
m_pSet->Requery()
UpdateData(false)
i++
}
str.Format( "已经删除了%d条号码 ",i)
AfxMessageBox(str)
OnShowall()
}
void COicqView::OnAdd()
{
// TODO: Add your control notification handler code here
CAddDialog dlg
if(dlg.DoModal()==IDOK)
{
if(dlg.m_addnum.IsEmpty()||dlg.m_addpsw.IsEmpty())
{
AfxMessageBox( "号码或密码为空,不能添加! ")
return
}
m_pSet->AddNew()
m_pSet->m_column1 = dlg.m_addnum
m_pSet->m_column2 = dlg.m_addpsw
m_pSet->Update()
m_pSet->Requery()
AfxMessageBox( "已经添加 "+dlg.m_addnum+ "密码为 "+dlg.m_addpsw)
UpdateData(false)
}
OnShowall()
}
void COicqView::OnShowall()
{
// TODO: Add your control notification handler code here
m_list.DeleteAllItems()
while(m_list.DeleteColumn(0))
m_pSet->Requery()
if(m_pSet->IsEOF())
{
AfxMessageBox( "由于在数据库底或者数据库没有数据 ")
return
}
m_pSet->MoveFirst()
m_list.InsertColumn(0, "号码 ",LVCFMT_LEFT,84)
m_list.InsertColumn(1, "密码 ",LVCFMT_LEFT,84)
int i=0
while(!m_pSet->IsEOF())
{
int j=0
j=m_list.InsertItem(i,m_pSet->m_column1)
m_list.SetItemText(j,1,m_pSet->m_column2)
i++
m_pSet->MoveNext()
}
m_pSet->MoveFirst()
UpdateData(false)
}
void COicqView::OnXiugai()
{
// TODO: Add your control notification handler code here
CAddDialog dlg
if(dlg.DoModal()==IDOK)
{
if(dlg.m_addnum.IsEmpty()||dlg.m_addpsw.IsEmpty())
{
AfxMessageBox( "号码或密码为空,不能修改! ")
return
}
m_pSet->Edit()
m_pSet->m_column1 = dlg.m_addnum
m_pSet->m_column2 = dlg.m_addpsw
m_pSet->Update()
m_pSet->Requery()
AfxMessageBox( "已经修改 "+dlg.m_addnum+ "密码为 "+dlg.m_addpsw)
UpdateData(false)
OnShowall()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)