| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:[求助]如何取得数据库中的个表名?
只看楼主 加入收藏
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
结帖率:72.73%
收藏
 问题点数:0 回复次数:2 
[求助]如何取得数据库中的个表名?

各位高手,在ADO中,如何实现对一个数据库中各表名的遍历?(即如何取得一个数据库中各个表名称)

搜索更多相关主题的帖子: 数据库 
2007-01-26 21:44
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
收藏
得分:0 
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "uDBPrint.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMainContent *frmMainContent;
//---------------------------------------------------------------------------
__fastcall TfrmMainContent::TfrmMainContent(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainContent::btnExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainContent::hlpAboutClick(TObject *Sender)
{
ShowMessage("没有任何异常处理,大家先将就着用.");
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainContent::filExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainContent::filOpenClick(TObject *Sender)
{
OpenDialog1->Execute();

//connDataBase
ADOConnection1->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+OpenDialog1->FileName+";Persist Security Info=False";
ADOConnection1->LoginPrompt =false;
ADOConnection1->Connected=true;

MemoData->Lines->Clear();
MemoData->Lines->Add("database:"+OpenDialog1->FileName);

ADOConnection1->GetTableNames(ListBox1->Items, false);
//ShowMessage(IntToStr(ListBox1->Items->Count));

MemoData->Lines->Add("");
MemoData->Lines->Add("tables");
for(int index=0;index<ListBox1->Items->Count;index++)
MemoData->Lines->Add(ListBox1->Items->Strings[index]);

for(int index=0;index<ListBox1->Items->Count;index++){
ADOTable1->TableName=ListBox1->Items->Strings[index];
ADOTable1->Open();

MemoData->Lines->Add("");
MemoData->Lines->Add(ADOTable1->TableName+" Fields");

for(int index2=0;index2<ADOTable1->FieldCount;index2++){
MemoData->Lines->Add(ADOTable1->Fields->Fields[index2]->FieldName+" "
+ADOTable1->Fields->Fields[index2]->DataType+" "
+ADOTable1->Fields->Fields[index2]->Size);
}
ADOTable1->Close();
}
ADOConnection1->Close();
ADOConnection1->ConnectionString="";
}

//---------------------------------------------------------------------------



void __fastcall TfrmMainContent::ActionSaveToTextFileExecute(
TObject *Sender)
{
SaveDialog1->Execute();
MemoData->Lines->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------



表的定义被包含在TableDef集合中,调用GetTableDef

CListBox m_TableList;//在CFormView或对话框上添加的列表框
CFileDialog dlg(TRUE, "Open a Database File", "*.mdb");
if (dlg.DoModal() == IDOK && dlg.GetFileExt() == "mdb")
{
m_TableList.ResetContent();//清空列表框
CDaoDatabase db;
db.Open(dlg.GetPathName());
CDaoTableDefInfo info;
int nTables = db.GetTableDefCount();//总表数
for (int i = 0; i < nTables; i++)
{
db.GetTableDefInfo(i, info);//得到表的信息(结构体)
m_TableList.AddString(info.m_strName);//将表名添加到列表框
}
m_TableList.SetCurSel(0);//设置列表框的焦点为第一条选择
db.Close();
}

在C中可以```
VB就有點難叻```


佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-01-27 12:12
redice
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:902
专家分:0
注 册:2006-12-11
收藏
得分:0 
不管咋样,谢谢了!

鲲鹏数据 - 专业Web数据采集服务提供者
http://www.
2007-01-27 14:19
快速回复:[求助]如何取得数据库中的个表名?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038756 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved