如何用程序判断表中有没有索引?是何种索引?

青草根儿 2012-11-19 02:58:29
1、如何用程序判断表中有没有索引?是何种索引?
2、用use打开数据库,其中property字段为memo字段,如何查看这个字段中的真实内容。
use customer.dbc
browse
...全文
267 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2012-11-19
  • 打赏
  • 举报
回复
应该数据库都有系统信息表吧
十豆三 2012-11-19
  • 打赏
  • 举报
回复
关于 Property 字段的真实内容,没有查到相关此字段的说明。 不过可以肯定是,Objecttype 字段类型不同,而 Property 字段的转换方法不同。 当 Objecttype 为 Relation 时,这样转换:
m.nStart = 1
m.cITag = ""
m.cTable = ""
m.cRTag = ""
lcStr=""
Do While m.nStart <= Len(Property)
	nSize = CToBin(Substr(property,m.nStart,4),'4rs')
	m.nKey = CToBin(Substr(Property, m.nStart + 6, 1),'1rs')
	lcStr=lcStr+Transform(nSize)+Transform(CToBin(Substr(property,m.nStart + 4,2),'2rs'))+Transform(m.nKey)+Substr(Property, m.nStart + 7, m.nSize - 8)
	Do Case
		Case m.nKey = 13
			m.cITag = Substr(Property, m.nStart + 7, m.nSize - 8)
		Case m.nKey = 18
			m.cTable = Substr(Property, m.nStart + 7, m.nSize - 8)
		Case m.nKey = 19
			m.cRTag = Substr(Property, m.nStart + 7, m.nSize - 8)
	Endcase
	m.nStart = m.nStart + m.nSize
Enddo
?lcStr
?m.cTable
?m.cITag
?m.cRTag
十豆三 2012-11-19
  • 打赏
  • 举报
回复
1、参考 vfp 自带帮助文件中的Tagcount()、 Key() 或 Sys(14,..) 函数,下面是 Key() 函数中的例子
Close Databases
Open Database (Home(2) + 'Data\testdata')
Use Customer     && Open customer table
Clear
For nCount = 1 To Tagcount( )
	If !Empty(Tag(nCount))  && Checks for tags in the index
		? Tag(nCount) + ' '  && Display tag name
		?? Key(nCount)  && Display index expression
	Else
		Exit  && Exit the loop when no more tags are found
	Endif
Endfor
WWWWA 2012-11-19
  • 打赏
  • 举报
回复
1、参考: CDX、MDX()、NDX()、KEY() 函数 2、移动到此字段,CTRL+PGDN即可。

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧