社区
数据库及相关技术
帖子详情
取得数据库的字段名。
frankho
2001-10-09 04:39:59
我想取得数据库的字段名。
...全文
61
4
打赏
收藏
取得数据库的字段名。
我想取得数据库的字段名。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
frankho
2001-10-09
打赏
举报
回复
谢谢大家了:)
你们的回答都不错,每人都有分。
bitfan
2001-10-09
打赏
举报
回复
很容易嘛。我以前做过一个小工具,只要指明Access或SQLServer数据库的登录字串,就可以自动提取这一数据库的所有表和字段名生成一棵树,并得到所有字段的大小和类别等信息,然后可以直接打印。
现在给你我封装的一个类,用它你可以直接得到数据库的有关信息,不过ADO数据库连接字串可得你自己生成。
调用其方法后,访问对应属性得到需要的信息。
如果你感兴趣,可以邮给你工程源代码。
//-------------------------------------------------------
头文件:
class GetDatabaseInfo : public TObject
{
public:
bool __fastcall OpenDatabase(String strConn);
__fastcall GetDatabaseInfo();
__fastcall ~GetDatabaseInfo();
__property TStringList * pTableNames = { read=FpTableNames, write=FpTableNames }; //连接对象
bool __fastcall GetTableNames();
__property TStringList * pFieldNames = { read=FpFieldNames, write=FpFieldNames };
void __fastcall GetFieldNames(String TableName);
TField * __fastcall GetFieldObj(String TableName,String FieldName);
private:
TADOConnection * ADOConn;
TStringList * FpFieldNames;
TStringList * FpTableNames;
TADODataSet * pDataSet;
bool __fastcall OpenTable(String TableName);
};
//------------------------------------------------------
cpp文件
#include <vcl.h>
#pragma hdrstop
#include "GetDatabaseInfoUnit.h"
bool __fastcall GetDatabaseInfo::OpenDatabase(String strConn)
{
//按strConn连接字串打开数据库
try
{
ADOConn->ConnectionString =strConn;
ADOConn->LoginPrompt =false;
ADOConn->Open();
}
catch(Exception &E)
{
ShowMessage(E.Message);
return false;
}
return true;
}
//---------------------------------------------------------------------------
#pragma package(smart_init)
__fastcall GetDatabaseInfo::GetDatabaseInfo()
{
//在类的构造函数中生成有关的数据库对象
try
{
ADOConn=new TADOConnection(Application);
pDataSet=new TADODataSet(Application);
pDataSet->Connection =ADOConn;
pTableNames=new TStringList;
pFieldNames=new TStringList;
}
catch(Exception &E)
{
ShowMessage(E.Message);
ADOConn=NULL;
}
}
__fastcall GetDatabaseInfo::~GetDatabaseInfo()
{
//销毁对象
if(ADOConn!=NULL)
{
ADOConn->Close();
delete ADOConn;
}
if(pDataSet!=NULL)
{
pDataSet->Close();
delete pDataSet;
}
if(FpTableNames!=NULL)
{
delete FpTableNames;
}
if(FpFieldNames!=NULL)
delete FpFieldNames;
}
bool __fastcall GetDatabaseInfo::GetTableNames()
{
//读取数据库中的所有表名
try
{
ADOConn->GetTableNames(pTableNames,false);
}
catch(...)
{
return false;
}
return true;
}
void __fastcall GetDatabaseInfo::GetFieldNames(String TableName)
{
if(OpenTable(TableName))
{
pDataSet->GetFieldNames(FpFieldNames);
pDataSet->Close ();
}
}
TField * __fastcall GetDatabaseInfo::GetFieldObj(String TableName,String FieldName)
{
//获取字段信息
if(OpenTable(TableName))
{
return pDataSet->FieldByName(FieldName);
}
else
return NULL;
}
bool __fastcall GetDatabaseInfo::OpenTable(String TableName)
{
//打开表
String SQL="Select * from [" +TableName+ "]";
pDataSet->Close();
pDataSet->CommandText =SQL;
try{
//TExecuteOptions opt;
//opt<< eoAsyncExecute ;
//pDataSet->Requery(opt);
pDataSet->Open();
}
catch(...)
{
return false;
}
return true;
}
wjzhuang
2001-10-09
打赏
举报
回复
TField::DisplayName字段名称
TField::DataType字段数据类型
TField::DataSize 字段在内存中占有的字节数
TDataSet::FieldCount返回数据集中的字段数
如:
void __fastcall TForm1::Button1Click(..)
{
String info("表中的字段有:");
for(int i=0;i<=Table1->FieldCount;i++)
{
info = info + Table1->Fields->Fields[i]->FieldName ",";
}
ShowMessage(info);
}
rh
2001-10-09
打赏
举报
回复
for(int i=0;i<Table->FieldCount;i++)
TView->Items->AddChild(Node, Table->Fields->Fields[i]->FieldName);
数据库
字段名
称与Java实体类属性名称
取得
不一样的情况
将无法获得
数据库
中的create_time 和 update_time。
数据库
中的create_time 和 update_time。Dept类中的createTime 和 updateTime。
将
数据库
字段转换为excel表格
将
数据库
字段转换为excel表格 以前写个一个使用了map做为数据的封装,总觉得效率低,后来换了个新思路,使用jdbc+list的方式. 因为
数据库
的数据是规范的,有顺序的,所以使用list完全没有问题. 将excel写入
数据库
请看:...
python从
数据库
取数据 显示
字段名
_获取Python
数据库
结果中字段的表名(PostgreSQL)...
我试图从
数据库
(Python,Postgres)中获取结果集中字段的表名。在PHP中有一个函数可以获取字段的表名,我使用了它,它工作正常,所以我知道它可以(在PHP中)完成。我在Python中寻找类似的函数。在PHP中的pg_field_...
java增加
数据库
字段_
数据库
字段的显示以及增加
字段图形很简单,只要实现
字段名
以及一个能表示字段的图标即可,所以我们将它继承自Label: public class ColumnFigure extends Label { private Column model; private boolean selected; private boolean ...
【MyBatis】解决
数据库
字段名
称与Java实体类属性名称不一致问题
有时候在项目中会遇到
数据库
字段名
称与实体类属性名称
取得
不一样的情况,如下:
数据库
里的数据为: 此时,如果我们查询该表的某条数据,ProjectMapper.xml代码为 <select id="...
数据库及相关技术
1,178
社区成员
18,939
社区内容
发帖
与我相关
我的任务
数据库及相关技术
C++ Builder 数据库及相关技术
复制链接
扫一扫
分享
社区描述
C++ Builder 数据库及相关技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章