BCB得到Access表格的所有表名
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了BCB得到Access表格的所有表名,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1396字,纯文字阅读大概需要2分钟。
内容图文
![BCB得到Access表格的所有表名](/upload/InfoBanner/zyjiaocheng/564/a39341371c6448938e10986d1948407a.jpg)
之前我知道有两种方法可以获取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->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从外部导入表格,很可能会出现这个“粘贴错误”这个表名。
内容总结
以上是互联网集市为您收集整理的BCB得到Access表格的所有表名全部内容,希望文章能够帮你解决BCB得到Access表格的所有表名所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。