select count(sysobjects.name )from sysobjects.xtype ='U'
在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名;
然后调用movefirst;
然后调用crecordset的getfieldvalue函数既可以获取值;
1.提取单条记录/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL)
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0Data Source=*.mdb"
//_bstr_t varSource="Data Source=myServerAddressInitial Catalog=myDataBaseUser Id=myUsernamePassword=myPassword"
_ConnectionPtr m_pConnection(_uuidof(Connection))
m_pConnection->Open(varSource,"","",adModeUnknow)
_RecordsetPtr m_pSet(_uuid(Recordset))
try {
m_pSet->Open(%%1,m_pConnection.GetInterfacePtr()
adOpenDynamic,adLockPessimistic,adCmdText)
}
catch(_com_error *e){
{
AfxMessageBox(e->ErrorMessage())
return
}
_variant_t var
CString %%2=""
long fldc=m_pSet->GetFields()->GetCount()
long i=0
try {
m_pSet->MoveFirst()
if(!m_pSet->adoEOF)
{
for(i=0i<fldci++)
{
var=m_pSet->GetCollect((long)i)
var.ChangeType(VT_BSTR)
%%2+=var.bstrVal
%%2+=" "
}
//m_pSet->MoveNext()
}
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage())
delete e
}
//m_pSet->MoveFirst()
CoUninitialize(NULL)
3.显示表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL)
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0Data Source=*.mdb"
//_bstr_t varSource="Data Source=myServerAddressInitial Catalog=myDataBaseUser Id=myUsernamePassword=myPassword"
_ConnectionPtr m_pConnection(_uuidof(Connection))
m_pConnection->Open(varSource,"","",adModeUnknow)
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset))
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText)
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage())
}
if(SUCCESSED(hr))
{
//表打开成功
}
FieldsPtr p_fields=m_pSet->Fields
FieldPtr p_field
_variant_t var_index
LPCSTR field_name
int index=0
_bstr_t bstr_field_name
int countfields=p_fields->GetCount()
CString *Column=new CString[countfields]
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1)//IDC_LIST_TABLEDATA
VERIFY(pList)
pList->DeleteAllItems()
for(index=0index<countfieldsindex++)
{
var_index.vt=VT_I4
var_index.IVal=index
p_field=p_fields->Item[var_index]
bstr_field_name=p_field->GetName()
field_name=(LPCSTR)bstr_field_name
Column[index]=field_name
int ColumnWidth=Column[index].GetLength()*15
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth)
}
int i=0
_bstr_t vCol
//pList->SetTextBkColor(RGB(122,200,122))
//pList->SetTextColor(RGB(0,0,200))
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i))
for(int j=0j<countfieldsj++)
{
vCol=m_pSet->GetCollect((long)j)
pList->SetItemText(i,j,vCol)
}
m_pSet->MoveNext()
i++
}
CoUninitialize(NULL)
4. *** 作表格
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
CoInitialize(NULL)
_bstr_t varSource="Provider=Microsoft.Jet.OLEDB.4.0Data Source=*.mdb"
//_bstr_t varSource="Data Source=myServerAddressInitial Catalog=myDataBaseUser Id=myUsernamePassword=myPassword"
_ConnectionPtr m_pConnection(_uuidof(Connection))
m_pConnection->Open(varSource,"","",adModeUnknow)
//打开属性为默认(adModeRead(只读),adModeWrite(可写),adModeReadWrite(可读写)等)
_RecordsetPtr m_pSet(_uuid(Recordset))
try {
HRESULT hr=m_pSet->Open(%%1,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText)
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage())
}
if(SUCCESSED(hr))
{
//表打开成功
}
FieldsPtr p_fields=m_pSet->Fields
FieldPtr p_field
_variant_t var_index
LPCSTR field_name
int index=0
_bstr_t bstr_field_name
int countfields=p_fields->GetCount()
CString *Column=new CString[countfields]
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1)//IDC_LIST_TABLEDATA
VERIFY(pList)
pList->DeleteAllItems()
for(index=0index<countfieldsindex++)
{
var_index.vt=VT_I4
var_index.IVal=index
p_field=p_fields->Item[var_index]
bstr_field_name=p_field->GetName()
field_name=(LPCSTR)bstr_field_name
Column[index]=field_name
int ColumnWidth=Column[index].GetLength()*15
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth)
}
int i=0
_bstr_t vCol
//pList->SetTextBkColor(RGB(122,200,122))
//pList->SetTextColor(RGB(0,0,200))
while(!m_pSet->adoEOF)
{
pList->Insert(i,atoi(i))
for(int j=0j<countfieldsj++)
{
vCol=m_pSet->GetCollect((long)j)
pList->SetItemText(i,j,vCol)
}
m_pSet->MoveNext()
i++
}
CoUninitialize(NULL)
5.数值范围查询
/*
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")
*/
try
{
//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection")
//设置连接字符串
CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)}\
uid=pwd=DBQ=shujuku.mdb"
//使用Open方法连接数据库
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown)
}
catch(_com_error e)
{
AfxMessageBox(e.Description())
}
}
try {
int min = %%1
int max = %%2
CString sql
sql.Format("select count(*) as pro_count from ProPrice where price between %d and %d",min,max)
HRESULT hr=m_pSet->Open(sql,m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockPessimistic,adCmdText)
}
catch(_com_error *e){
AfxMessageBox(e->ErrorMessage())
}
if(SUCCESSED(hr))
{
//表打开成功
}
FieldsPtr p_fields=m_pSet->Fields
FieldPtr p_field
_variant_t var_index
LPCSTR field_name
int index=0
_bstr_t bstr_field_name
int countfields=p_fields->GetCount()
CString *Column=new CString[countfields]
CListCtrl *pList=(CListCtrl*)GetDlgItem(%%1)//IDC_LIST_TABLEDATA
VERIFY(pList)
pList->DeleteAllItems()
for(index=0index<countfieldsindex++)
{
var_index.vt=VT_I4
var_index.IVal=index
p_field=p_fields->Item[var_index]
bstr_field_name=p_field->GetName()
field_name=(LPCSTR)bstr_field_name
Column[index]=field_name
int ColumnWidth=Column[index].GetLength()*15
pList->InsertColumn(index,field_name,LVCFMT_CENTER,ColumnWidth)
}
int CountLines(char *filename) { ifstream ReadFileint n=0char line[512]ReadFile.open(filename,ios::in)//ios::in 表示以只读的方式读取文件 if(ReadFile.fail())//文件打开失败:返回0 { return 0} else//文件存在 { while(!ReadFile.eof()) { ReadFile.getline(line,512,'\n')n++} return n}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)