我正在开发一个自定义组件,我想添加一个已发布的属性,它将是一个TQuery数组(它应该在对象检查器中可见)。主要功能是将组件放在表单上,然后直观地选择同一表单或任何其他项目表单上的查询。
可行吗?从我所见到的,你只能以编程方式使用这样的数组属性......
首先,谢谢你的回答Alex!
第二,聊天是我必须修改其他人创建的旧应用程序,所以我想尽可能少地纠缠它(实际上有一个第二个应用程序,我需要“修复”,我被告知是两次作为大)。现在有关详细信息:该应用程序有各种数据库操作的15个表单。你可以想象每个表单有2-3个TQuery对象。问题是用户必须使用db进行身份验证才能执行查询,因此他知道db user& pwd这是一个安全流程。
为了避免这种情况,引入了一个中间系统。一个连接&使用它进行身份验证并请求必要的db数据:user,pwd和database name。我的工作是使用这个系统并自动登录数据库。访问此中间系统所需的凭据不被视为安全流程,因此我将从一个依赖于部署环境的内容中读取它们:测试,预生产,生产。
所以我在我的表单上放置了一个TDatabase组件,将其LoginPrompt属性设置为FALSE。然而,棘手的部分是在执行之前将每个TQuery调整为每个环境的不同数据库名称。
不知道如果我清楚自己,但这是我设法提出的最简单的解释感谢, ģ
答案 0 :(得分:2)
为了让生活变得尽可能简单,你可能不得不咧嘴一笑:
在运行时,通过TDatabase组件进行登录,然后所有组件将自动使用这些设置(因为它们都连接到您的TDatabase实例)。
答案 1 :(得分:0)
是的,可以完成,但您必须使用自己的输入表单编写自己的Property editor来管理数组中的数据。有很多信息可以在网上找到。是的,您可以创建一个组件来检查其父级的控件,允许您访问它们 但它是否实用?为什么在设计时需要一组TQuery组件?也许你需要先重新考虑你的设计,所以你绝对确定你需要这个功能。 (此外,使用数据模块包含查询有什么问题?)
答案 2 :(得分:0)
好的,您已经为项目添加了一个TDatabase。现在,使用一些随机名称填充TDatabase的“DatabaseName”属性。项目中的每个TQuery组件也都有一个“DatabaseName”属性,并在这些属性中填入相同的名称!现在您的数据库及其所有查询将被连接,您可以使用TDatabase对象来访问它们。