如何在 Informix SQL 中创建屏幕表单?
Posted
技术标签:
【中文标题】如何在 Informix SQL 中创建屏幕表单?【英文标题】:How to create screen form in Informix SQL? 【发布时间】:2011-09-29 02:21:26 【问题描述】:我是 Informix-SQL 的新手。我正在尝试在 Informix 中创建表单。我提到了some resources online
这就是我目前访问我的数据库的方式dbaccess database_name
。我看不到用于创建表单的“表单”菜单。我是一个绝对的初学者。如果有人能指导我正确的方向(我应该运行的正确命令和我可以参考的文档),我将不胜感激。提前致谢。
【问题讨论】:
【参考方案1】:DB-Access 程序不是 ISQL。事实上,DB-Access 与 ISQL 相比的主要区别在于 DB-Access 不支持报表或表单。
要创建表单,您需要 Informix SQL 的开发版本,并且您可以运行 isql
程序(选择 Forms 选项,然后选择 Generate,然后按照提示进行操作),或者运行 sformbld
程序创建默认表单的选项:
sformbld -d formname database table1 ...
无论哪种方式,您通常最终都会大量编辑表单源文件(.per
扩展名,用于运行它的 Perform(又名 sperform
)程序)。使用您选择的纯文本编辑器(vim
、emacs
、pico
等 - 任何适用于 C 代码的内容也适用于 ISQL。
isql
和sformbld
有什么区别?
$ ls -il isql sformbld sperform saceprep sacego
212302 -rwxr-xr-x 5 informix informix 844005 2010-09-17 11:24 isql
212302 -rwxr-xr-x 5 informix informix 844005 2010-09-17 11:24 sacego
212302 -rwxr-xr-x 5 informix informix 844005 2010-09-17 11:24 saceprep
212302 -rwxr-xr-x 5 informix informix 844005 2010-09-17 11:24 sformbld
212302 -rwxr-xr-x 5 informix informix 844005 2010-09-17 11:24 sperform
$
同一可执行文件的不同名称。但是,可执行文件的行为取决于调用它的名称。当以sformbld
调用时,它会编译表单;使用-d
选项,它会生成一个表单,然后编译它。当以sperform
调用时,它会运行一个表单。当以saceprep
调用时,它会编译一个ACE 报告;当以sacego
调用时,它会运行一个报告。 (“s
”前缀表示 ACE 和 Perform(和 FormBuild)的 SQL 版本;当它于 1985 年首次发布时,还有一个名为 Informix 3.30 的非 SQL 产品,这些程序是套件的一部分。)
当以isql
调用时,该程序充当交互式菜单 IDE,用于创建和运行表单和报告 - 除非使用选项调用以使其运行表单或编译报告等。
isql -fc form # Compile form
isql -fr form # Run form
isql -rc report # Compile report
isql -rr report # Run report
isql dbase [-|script] # Runs SQL script, rather like DB-Access does
(实际上,在 90 年代初的一个晚上——或者可能是 80 年代末的一个晚上——DB-Access 是通过从 ISQL 中剥离不需要的代码而创建的。因此,DB-Access 的行为类似于 ISQL,而不是反之亦然。 )
【讨论】:
反应真快。你知道sformbld和isql有什么区别吗? 你知道我怎样才能对用户隐藏 .sql 脚本,而 isql -qr script.sql 仍然可以执行它们吗?...我尝试在 .sql 文件上设置 hidden 属性,但 isql 被炸毁了出来。 不 - 我不认为有办法做到这一点 - 更不是在 Windows 平台上。在 Unix 上,您可以使用 SUID 程序玩愚蠢的游戏,并将.sql
文件重定向为标准输入等,但这也可能不是您想要的结果。
@JonathanLeffler:在您对 DB-Access 的回答中进行了有趣的编辑,但我在 ISQL 4.10(1991 年)中没有看到任何 DB-Access。我在想,因为无法隐藏 .sql 脚本在 isql 中,也许使用符号链接(win-vista/7 支持它们),可以做到吗?
DB-Access 主要与服务器一起分发,而不是与 ISQL 一起分发。和 IIRC,它首先与 OnLine 5.00 和 SE 5.00 一起发布。在最新版本的 CSDK 中,我相信它现在也可用。以上是关于如何在 Informix SQL 中创建屏幕表单?的主要内容,如果未能解决你的问题,请参考以下文章