一般来说,开发工具及相应的代码均假设数据库定义在运行时是不会变更的,因此,那个窗全不会自动跟着改变的。
如要改变,只能自行编程解决。当没有在设计或运行时特意指定字段时,DBGRID可以动态显示变化的字段(相应的TAble或Query等元件需Close&Open)BTW:
从来都不推荐这种用法,当然,如果你实在没有替代方案,那也只能如此了。
因为更改数据库结构是一件很费时,很可怕的工作,特别是当数据库中已有很多数据的时候。
你可以使用子表来实现,也可以使用Oracle的嵌入表或数组类型来实现。
如要改变,只能自行编程解决。当没有在设计或运行时特意指定字段时,DBGRID可以动态显示变化的字段(相应的TAble或Query等元件需Close&Open)BTW:
从来都不推荐这种用法,当然,如果你实在没有替代方案,那也只能如此了。
因为更改数据库结构是一件很费时,很可怕的工作,特别是当数据库中已有很多数据的时候。
你可以使用子表来实现,也可以使用Oracle的嵌入表或数组类型来实现。
明白了,我见过这样的例子,但是我不喜欢预设字段,何况SQL7似乎只允许300个字段。我一个朋友也是这么做的,只是动态布局实在实在是太可怕了,他后来使用了DevelopExpress公司的Inspector控件来动态显示(就象Delphi的Inspector),可以用吗?
不可以的话,就只好自已另做一个。反正搞开发总是不得不自已做些控件的。后来那个朋友走掉后,我就把他的设计改成主从表形式,放弃预设字段,简单多了。也许不一定适合您的设计,只是提一下而已。
由于担心新加字段会导致布局改变,那么,干脆把最复杂的情况给考虑进去,就是假设选用所有的字段时的窗体的布局。
然后,对于不用的字段,可将相关的元件禁止录入,或隐藏起来。
如果隐藏起来会造成窗体有大量的空位,那么最好将这些元件用Panel或其它控件做容器包含起来,然后将Panel等容器设置为Align=top,这样,隐藏后,后面的容器就是自动向上靠拢。当然,一个窗口同时显示的元件不要太多,否则,你的系统将会极不稳定,容易死机,因为系统资源容易耗尽。
看来换来通用性,要付出很大代价的。