最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

BCB得到Access表格的所有表名

来源:懂视网 责编:小采 时间:2020-11-09 15:26:04
文档

BCB得到Access表格的所有表名

BCB得到Access表格的所有表名:之前我知道有两种方法可以获取Mdb文件的 所有 表名: 1、调用TADOConnection::GetTableNames 2、查询系统表MSysObjects 但是实际中均遇到了问题,第1种方法会 得到 Access里表连同查询的名字,而且没有办法区分;第二种方法MSysObjects默认是没有
推荐度:
导读BCB得到Access表格的所有表名:之前我知道有两种方法可以获取Mdb文件的 所有 表名: 1、调用TADOConnection::GetTableNames 2、查询系统表MSysObjects 但是实际中均遇到了问题,第1种方法会 得到 Access里表连同查询的名字,而且没有办法区分;第二种方法MSysObjects默认是没有

之前我知道有两种方法可以获取Mdb文件的 所有 表名: 1、调用TADOConnection::GetTableNames 2、查询系统表MSysObjects 但是实际中均遇到了问题,第1种方法会 得到 Access里表连同查询的名字,而且没有办法区分;第二种方法MSysObjects默认是没有读写的权限

之前我知道有两种方法可以获取Mdb文件的所有表名:

1、调用TADOConnection::GetTableNames

2、查询系统表MSysObjects


但是实际中均遇到了问题,第1种方法会得到Access里表格连同查询的名字,而且没有办法区分;第二种方法MSysObjects默认是没有读写的权限的,需要修改Access文件的设置才行,这样如果是自己的数据库文件还好,如果是其它同事的数据库,要求别人也按照自己的想法来做总感觉不是很妥当,而且可能数据库文件在客户中已经开始使用导致没办法修改。

鉴于以上原因,我找了第三种方法。请看代码:


void GetMdbAllTables(TADOConnection *Conn, TStrings *List)
{
List->Clear();
AnsiString sTableType;
auto_ptr query(new TADOQuery(NULL));
query->Connection = Conn;
TSchemaInfo Schema = siTables;
Conn->OpenSchema( Schema, EmptyParam, EmptyParam, (TADODataSet*)query.get());
for ( ; !query->Eof; query->Next() )
{
sTableType = query->FieldByName("TABLE_TYPE")->AsString;
if ( sTableType == "TABLE" )
{
if ( !query->FieldByName("TABLE_NAME")->AsString.Pos("粘贴错误") ) //见注1

{
List->Add( query->FieldByName("TABLE_NAME")->AsString );
}
}
}
}


注1:/如果Access从外部导入表格,很可能会出现这个“粘贴错误”这个表名。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

BCB得到Access表格的所有表名

BCB得到Access表格的所有表名:之前我知道有两种方法可以获取Mdb文件的 所有 表名: 1、调用TADOConnection::GetTableNames 2、查询系统表MSysObjects 但是实际中均遇到了问题,第1种方法会 得到 Access里表连同查询的名字,而且没有办法区分;第二种方法MSysObjects默认是没有
推荐度:
标签: 表格 知道 获取
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top