你是什么中的表,sql server 2000、oracle...?
解决方案 »
- indy发送、接收strings问题!
- edit的清空有什么区别
- DELPHI中,应用程序(.EXE)怎样使用(调用).BPL?3Q
- 关于数据库还原的问题!
- 各位大哥,请教:当我执行完一条sql语句后,在调用adoquery.first或adoquery.next方法时,出现“缺少更新或刷新的键列信息.”
- 有关fastreport的checkbox用法 在线等待 急
- 在线等待, websnap的数据库字段问题!
- 我管理不了我自己的贴子
- 咋办呀?存储过程出错,应用程序也得不到报错信息,居然还显示正常执行?
- 搞了一天也没解决,上来请教
- ado问题?多步操作产生错误,请检查每一步的状态值!
- Delphi的编程环境
设置你scripts所要包含的内容如:触发,约束,存储过程等...
然后就ok了
1.BDE
Database.GetTableNames();
Database.GetFieldNames();
Session.GetStoredProcNames();
2.ADO
ADOConnection.GetProcedureNames();
ADOConnection.GetProcedureNames();
ADOConnection.GetFieldNames();3.
使用TFieldList和TParamList的FieldDescs得到
字段和过程的参数定义信息.
谢了,但是我对存储过程没有要求,我希望得到的是字段一级的信息,就像我在上面描述的,如字段长度,有否索引,是否允许为空等。
to: mfc2001(拔剑茫然心四顾)
你说的是手动的过程,如果我有两个数据库,每个数据库有200多个表(还不包括视图),全是手动的话将是一声噩梦。我希望让程序替我找出来。
下面得到索引信息;TTable.GetIndexNames();
TTable.IndexDefs;TADOTable.GetIndexNames();
TADOTable.IndexDefs;
2. If you use the sql7.0 or high vision.Use the create script of the
datebase, it can create the whole system procedure and table details.
多谢多谢只是针对当前的数据库或数据表,还能取到其它信息吗?我也听说在sql server中有系统表,现在不考虑它,只是从当前表或当前的数据库来讨论,sql server有系统表,paradox dbase可没有系统表呀!我想等一下再结帖,看看能否从诸位高手那儿还能多学点什么!
谢了
用ADOX可以实现你的所有要求
TDatabase.GetTableNames()获取TableName
TDatabase.GetFieldNames()获取指定Table的的字段列表
然后可以用TTable.Field.Size获取指定字段的大小
......................DataType取数据类型
SQL Server有:
sp_databases ///数据库
sp_tables ///返回表
sp_Columns ///表的列信息,包含类型、大小等等
其它的请参看存储过程
它的功能assess和MS SQL server一般都支持
撇开adox,如果你有一个db扩展名的表,如何取得我在问题中要求的信息,当然要在程序中,不要告诉我打开表看一下!
明天结帖
包括(表名,字段名,字段类型,字段长度,是否为空,缺省值,是否主键(字段),是否ID(字段))SELECT b.name AS tablename, a.name AS fieldname,a.xtype, a.length, a.isnullable,
(SELECT c.text
FROM syscomments c
WHERE a.cdefault = c.id) AS 'DEFAULTSTR',
(SELECT column_name
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE k
WHERE EXISTS
(SELECT s.id
FROM sysobjects s
WHERE s.xtype = 'pk' AND s.name = k.constraint_name) AND
table_name = b.name AND column_name = a.name) AS keystr,
(SELECT c.name
FROM syscolumns c, sysobjects o
WHERE NOT c.autoval IS NULL AND o.id = c.id AND c.name = a.name AND
o.name = b.name) AS idstr
FROM syscolumns a, sysobjects b
WHERE a.id = b.id AND b.type = 'u' AND a.xtype = a.xusertype AND
b.name NOT BETWEEN 'sysmer' AND 'sysmerz' AND b.name NOT BETWEEN
'MSmerge_' AND 'MSmerge_z'