从数据库模式中自动生成web表单的制作方法

文档序号:6455036阅读:468来源:国知局
专利名称:从数据库模式中自动生成web表单的制作方法
从数据库模式中自动生成WEB表单
背景
1.背景和相关技术
计算机系统和相关技术影响社会的许多方面。的确,计算机系统处理信息 的能力已改变人们生活和工作的方式。计算机系统现在通常执行在计算机系统 出现以前手动执行的许多任务(例如,文字处理、日程安排和数据库管理)。 最近,计算机系统被彼此耦合并被耦合到其它电子设备,以形成计算机系统和 其它电子设备可以在其上传送电子数据的有线和无线计算机网络。结果,许多 计算任务的执行分布在多个不同的计算机系统和/或多个不同的计算组件上。
在许多基于网络的应用程序中,数据访问、数据操纵和数据演示通过对诸 如数据库表等底层数据的用户接口来促进。为了标准化功能,用户接口能够以 基于web的格式来呈现以使得具有对web浏览器的访问的任何用户都能够与 底层数据交互。例如,数据可通过允许用户访问并操纵数据的一个或多个基于 web的表单来呈现。
为了创建基于web的表单,表单设计者通常手动设计数据层和演示层。 数据层响应于来自演示层的命令与底层数据交互(例如,向数据库发出查询) 并为演示层提供数据(例如,数据库查询的结果)。表单设计者还可将诸如过 滤、主细节、基于服务器的分页以及编辑、删除和插入命令等其他功能构建到 数据层中。例如,数据层可根据其他准则来过滤査询结果以便将合适的数据集 返回给演示层。
演示层提供用户与数据层之间的用户接口。演示层接受用户命令并将用户 命令(以适当的格式)转发给数据层。演示层还可接受来自数据层的数据并且 (以适当的格式)向用户呈现数据。因此,为了访问并操纵数据库中的数据, 用户可将web浏览器定向到合适的基于web的表单。
某些web表单开发平台利用部分自动化的技术来生成基于web的表单。 例如,至少一个平台支持自动显示、编辑、更新和删除功能。然而,这些平台 仍然需要手动活动以获得其他功能。例如,过滤、分页和排序通常即使使用这 些开发平台也需要人工干预。因此,即使在使用部分自动化的技术时,仍然可
7消耗相当多的资源以便手动添加附加功能。简要概述
本发明涉及用于从数据库模式中自动生成web表单的各方法、系统和计 算机程序产品。在某些实施例中,访问对于数据库的数据库映射。该数据库映 射从描述该数据库中所包含的数据的配置的模式中生成,该模式包括描述从该 数据库的第一表到第二表的外键关系。从该外键关系的存在可以推导出,从该
第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的关系并没 有在该模式中被明确描述。
对应于该数据库的网站根据该数据库映射自动生成。该网站被配置成提供
多个可导航链接的基于web的表单以便与该数据交互。第一基于web的表单 用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于 web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的 上下文中的第一表的视图。
在其他实施例中,访问对于数据库的数据库映射。该数据库映射从描述该 数据库中所包含的数据的配置的模式中生成。自动生成被配置成查询该数据库 中所包括的数据库表的动态查询。该动态查询可响应于用户发起的改变基于 web的表单中来自数据库表的记录的排列的命令来执行。该动态查询被配置成 请求来自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的记 录,以使得无需查询整张数据库表。
对应于该数据库的网站根据该数据库映射自动生成。该网站包括自动公式 化的动态査询以便允许用户自动改变基于web的表单中来自数据库表的记录 的排列。
用于诸如插入、删除和更新等其他类型的操作的动态查询也可被公式化并 包括在自动生成的web表单中。
在其他实施例中,来自数据库表的记录被转发到web浏览器以使得这些 记录可根据第一配置通过基于web的表单来呈现。从web浏览器接收到的用 户发起的消息指示通过基于web的表单的记录呈现将被改变为不同的第二配 置。响应于该用户发起的消息向数据库发出动态査询。该动态查询请求来自数 据库表的、将以其将要被呈现的次序用该不同的第二配置来呈现的记录,以使 得无需查询整张数据库表。动态查询在创建对应于数据库的网站时就已经被自所请求的记录以其将要被呈现的次序来接收,接收到的记录是响应于动态
査询接收的。所请求的记录以其将要被呈现的次序被转发到web浏览器以使得 所请求的记录可根据不同的第二配置通过基于web的表单来呈现。
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的一 些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨 在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本说明书 将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通 过在所附权利要求书中特别指出的手段和组合来实现和获得。本发明的这些和 其他特征将通过以下描述和所附权利要求书而变得更加完全明显,或可通过对 下文中所述的本发明的实践来获知。附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图 中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可 以理解这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限 制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中


图1示出了有助于从数据库模式中自动生成web表单的示例计算机体系 结构。
图2示出了用于生成web表单的示例方法的流程图。 图3示出了用于生成web表单的另一示例方法的流程图。 图4示出了有助于执行具有自动生成的链接的web表单的示例计算机体 系结构。
图5A—5E示出了 web表单的各示例。
图6示出了用于执行web表单的示例方法的流程图。详细描述
本发明涉及用于从数据库模式中自动生成Web表单的各方法、系统和计 算机程序产品。在某些实施例中,访问对于数据库的数据库映射。该数据库映 射从描述该数据库中所包含的数据的配置的模式中自动生成,该模式包括描述 从该数据库中的第一表到第二表的外键关系。从该外键关系的存在可以推导 出,从该第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的 关系并没有在该模式中被明确描述。
对应于该数据库的网站根据该数据库映射来自动生成。该网站被配置成提
供多个可导航链接的基于web的表单以便与该数据交互。第一基于web的表 单用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于 web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的 上下文中的第一表的视图。
在其他实施例中,访问对于数据库的数据库映射。该数据库映射从描述该 数据库中所包含的数据的配置的模式中生成。自动生成被配置成查询该数据库
中所包括的数据库表的动态查询。该动态査询可响应于用户发起的改变基于 web的表单中来自数据库表的记录的排列的命令来执行。该动态查询被配置成 请求来自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的记
录,以使得无需査询整张数据库表。
对应于该数据库的网站根据该数据库映射来自动生成。该网站包括自动公 式化的动态査询以便允许用户自动改变基于web的表单中来自数据库表的记 录的排列。
用于诸如插入、删除和更新等其他类型的操作的动态查询也可被包括在自 动生成的web表单中。
在其他实施例中,来自数据库表的记录被转发到web浏览器以使得这些 记录可根据第一配置通过基于web的表单来呈现。从web浏览器接收到的用 户发起的消息指示通过基于web的表单的记录呈现将被改变为不同的第二配 置。响应于该用户发起的消息向数据库发出动态查询。该动态查询请求来自数 据库表的、将以其将要被呈现的次序用该不同的第二配置来呈现的记录,以使 得无需查询整张数据库表。该动态查询在创建了对应于该数据库的网站时就被自动包括在该网站中。
所请求的记录以其将要被呈现的次序来接收,接收到的记录是响应于动态
査询接收的。所请求的记录以其将要被呈现的次序被转发到web浏览器以使得 所请求的记录可根据不同的第二配置通过基于web的表单来呈现。
本发明的各实施例可以包括含有计算机硬件的专用或通用计算机,这将在 以下做出进一步讨论。本发明的范围内的各实施例也包括用于承载或其上储存 有计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可 以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,计算机 可读介质可包括计算机可读存储介质,如RAM、 ROM、 EEPROM、 CD-ROM 或其它光盘存储、磁盘存储或其它磁存储设备、或可用于存储计算机可执行指 令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何 其它介质。
在本说明书和所附权利要求书中,"网络"被定义为允许在计算机系统和/ 或模块之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信 连接(硬连线、无线或硬连线或无线的组合)传输或提供给计算机时,该计算 机将该连接适当地视为计算机可读介质。因此,作为示例而非限制,计算机可 读介质可包括可用于承载或存储计算机可执行指令或数据结构形式的所需程 序代码装置并可由通用或专用计算机访问的网络或数据链路。
计算机可执行指令包括例如,使通用计算机、专用计算机、或专用处理设 备执行某一功能或某组功能的指令和数据。例如,计算机可执行指令可以是二 进制代码、诸如汇编语言等中间格式指令、或甚至源代码。尽管用结构特征和 /或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的 主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的 示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置 的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、 膝上型计算机、手持式设备、多处理器系统、基于微处理器的或可编程消费电 子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机等等。 本发明也可以在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行 任务的分布式系统环境中实践。在分布式系统环境中,程序模块可以位于本地 和远程存储器存储设备中。
图1示出了有助于创建具有自动生成的链接的web表单的示例计算机体 系结构100。计算机体系结构100包括数据库101、对象关系映射器106、编译 器108和网站生成器111。在某些实施例中,还包括数据库映射器171 (可能 替代对象关系映射器106和编译器108)。计算机体系结构100中的组件中的 每一个都可被连接到网络,诸如局域网("LAN")、广域网("WAN")、或甚 至因特网。因此,各个组件可相互之间,以及对连接至该网络的其他组件收发 数据。因此,各组件可以创建消息相关数据并通过网络交换消息相关数据(例 如,网际协议("IP")数据报和利用IP数据报的其他高层协议,诸如传输控制 协议("TCP")、远程桌面协议("RDP")、超文本传输协议("HTTP")、简 单邮件传输协议("SMTP")等)。
如图所示,数据库101包括数据102和模式103。数据102可包括一张或 多张表,诸如表151和表152。每张表都可配置有表示该表的不同字段的一个 或多个列。每张表都可包括一行或多行数据,其中每一行都包含对应于该表中 的每个相应的列的数据字段的值。
模式103定义数据102的结构并且可以用与数据库101兼容的形式语言来 描述。例如,模式103可定义数据库101的表以及数据库102的每张表中所包 括的数据字段(例如,整数、字符串、键等)。模式103还可定义数据102中 的字段和表之间的关系(例如,外键关系)。外键是一张表中标识不同表中的 记录的键字段。例如,模式103可定义从表151到表152的外键关系104。即, 表151中的键字段标识表152中的记录(通常由外键104K来表示)。
对象关系映射器106被配置成检查模式并将模式转换为代表性可编译代 码(例如,CW源代码)。例如,对象关系映射器106可请求、接收、及解析模 式103并将包括外键关系104的模式103转换为代表性可编译代码107。代表 性可编译代码107可包括表示根据模式103来定义的数据102的表和字段的类 和子类的源代码。可编译代码可以用表示包括外键关系104在内的模式103的 各部分的元数据例如,字段属性来注释。
14编译器108被配置成将可编译代码编译成可执行代码,诸如,动态链接库。
例如,编译器108可将可编译代码107编译成动态链接库109。在编译后,动 态链接库可保留相应的可编译代码中所包括的元数据注释。因此,可编译代码 107中所包括的任何元数据注释也可被包括在动态链接库109中。
一般而言,动态链接库(或其他可执行代码)中的元数据注释可通过反射 (reflection)来标识。因此,动态链接库109中的任何元数据注释都可通过反 射来标识。数据库映射110可从所标识的元数据注释中创建。数据库映射110 可包括对模式103中所包括的数据库101的描述,诸如,外键关系104。
在某些实施例中,利用数据库映射器(可能替代对象关系映射器106和编 译器108并可能消除使用反射的需要)。数据库映射器可被配置成直接读取模 式并将该模式转换为相应的数据库映射。例如,数据库映射器117可被配置成 读取模式103并将模式103转换为数据库映射110。
网站生成器111被配置成接收对于数据库的数据库映射并自动生成网站 以便与该数据库交互。例如,网站生成器111可接收数据库映射110并生成网 站112以便与数据库102交互。网站112可包括呈现数据的不同的排列以便与 数据库101交互的多个网页,诸如网页112a、 112b和112c。
一般而言,网站生成器111被配置成在网页中自动包括协助与数据库101 的高效且有意义的交互的各种链接。例如,网站生成器lll可自动包括使得动 态查询被发送至数据库101的网页链接。动态査询可用于请求来自表的、将以 其将要被呈现的次序呈现在基于web的表单中的记录,而不必査询整张表。将 动态查询与网页链接相关联有助于响应于用户发起的选择一链接的命令(例 如,当用户界面光标悬停在一链接上时"点击"鼠标按钮)执行动态査询。
例如,网页链接可被自动包括在网页中以便按照指定的列来对表的记录进 行排序。响应于用户发起的选择一软链接的命令,可自动向数据库101发出引 起对适当的记录的动态排序査询(例如,排序查询114)和/或执行其他适当的 数据库操作的适当的代码。可返回该适当的记录并且更改所呈现的记录的排列 以反映用户所请求的排序(例如,按照顾客标识符字段来排序)。
网页链接也可被自动包括在网页中以便在不同的记录页面之间来回移动 (分页)。响应于用户发起的选择一分页链接的命令,可以向数据库101自动发出对适当的记录的动态分页查询(例如,分页查询113)。可返回适当的记录 且更改所呈现的记录排列以反映用户所请求的分页(例如,从一组记录的第2
页移至第5页)。
以下伪代码表示所发出的对来自定单(Order)表的记录进行排序和/或分 页的动态查询的示例
public ICollection<Orders> GetOrders(string sortExpression, int startRowIndex, int maximumRows)
return db,Orders.SortAndPage(sortExpression, startRowIndex, maximumRows);
网站生成器111还被配置成从数据库映射中所包括的模式信息中推导出 数据库中的表之间的关系(即使在该关系并没有在该模式信息中明确定义时)。 由此,即使模式103并未明确定义(或以其他方式表示)关系,网站生成器111 也可推导出数据102中的表之间的关系。例如,外键关系104定义表151中的 一字段指向表152中的记录。从外键关系104中,网站生成器111可推导出从 表152到后面的表151的关系(推导出的关系153),即使没有其他外键(或 其他)关系在模式103中被明确定义。
网页链接也可被自动包括在网页中以便移至推导出的关系的上下文中的 不同的数据视图或数据排列。响应于用户发起的选择推导出的关系的上下文中 的链接的命令,可自动向数据库101发出引起对适当的记录的动态上下文查询 (例如,上下文査询117)和/或执行其他适当的数据库操作的适当的代码。可 返回适当的记录且更改所呈现的记录排列以反映用户所请求的上下文(例如, 从所有定单的视图切换到指定顾客的定单的视图)。
以下伪代码表示可用于査询来自顾客(Customer)表的行的上下文中的定 单表的动态查询的示例
public ICollectiorKOrders〉 GetOrdersByCustomer(int customerID)Database db = new Database();
return db. Customers. Where(x=>x,CustomerID ——
customerID).SelectMany(x=>x.Orders);
网页链接也可被自动包括在网页中以便插入、删除或修改数据。响应于用户发起的选择删除、修改或添加数据的链接的命令,可以自动向数据库ioi发出引起动态査询和/或执行其他适当的数据库操作的适当的代码。例如,网页可被配置成发出添加査询、修改査询和删除查询中的任一个。可返回和/或删除适当的记录且更改所呈现的记录的排列以反映用户操作(例如,删除、修改、添加记录等)。
以下伪代码表示用于从定单表删除一行的动态査询的示例public static void Delete(Order x)
Database db = new Database();
db.Orders,Remove(x);
db.SubmitChanges();
以下伪代码表示用于修改定单表中的一行的动态査询的示例public static void Update(Order original—x, Order x)
Database db = new Database();db,Orders.Attach(original一x);original一x.CustomerID = x.CustomerID;original一x.EmployeeID = x.EmployeeID;original—x.OrderDate = x.OrderDate;original—x.RequiredDate = x.RequiredDate;original—x.ShippedDate = x.ShippedDate;original—x. Ship Via = x. Ship Via;original—x.Freight = x.Freight;original—x.ShipName = x.ShipName;original_x. Ship Address = x.ShipAddress;original—x.ShipCity = x.ShipCity;original—x.ShipRegion = x.ShipRegion;original一x.ShipPostalCode = x.ShipPostalCode;original—x.ShipCountry = x.ShipCountry;db.SubmitChanges();
以下伪代码表示用于将一行添加到定单表的动态査询的示例-//该方法在表中插入一新记录。
//改变该方法以更改如何插入记录。
public static void Insert(Order x)
Database db = new Database();
db.Orders.Add(x);
db. SubmitChanges();
一个网页中的链接可被配置成使得另一网页中的动态査询被执行。例如,选择网页112b中的链接116可使得上下文118作为对上下文査询117的输入来提供。上下文查询117然后可发出上下文118中的请求记录。
各种不同查询的组合也可被包括在网页或链接的网页中。不同查询的组合可互操作以便例如响应于用户发起的命令来向数据库101查询适当的数据。
自动构建网站的发起可通过命令行工具来促进。例如,在提示Bl处用户可发出命令132。命令132包括构建模块的名称(例如,"buildsite")、所生成的网站将要存储的目录(例如,"/webpagedir")、正在构建的网站所对应的数
18据库("/database")以及可用于访问该网站的虚拟目录("7vdir)。计算机体系结构100中诸如因特网信息服务("IIS")等组件可将虚拟目录映射到URL。可任选数据库凭证也可被包括在命令132中。或者,可使用集成的安全性来缓解对命令132中所包括的凭证的需求。也可使用其他图形工具来发起对应于数据库的网站的构建。
图2示出了用于创建web表单的示例方法200的流程图。方法200将关于计算机体系结构100中的组件和数据来描述。
方法200包括访问对于数据库的数据库映射的动作,该数据库映射已经从描述该数据库中所包含的数据的配置的模式中生成,该模式包括描述从该数据库的第一表到第二表的外键关系(动作201)。例如,网站生成器lll可访问从描述数据库101的配置的模式103中生成并且描述从表151到表152的外键关系104的数据库映射110。
方法200包括从外键关系的存在推导出从该第二表到该第一表的关系也是相关的,即使从该第二表到该第一表的关系并没有在该模式中被明确描述的动作(动作202)。例如,网站生成器111可以从外键关系104推导出从表152到表151的关系也是相关的,即使从表152到表151的关系并没有在模式103中被明确描述。
可以自动公式化被配置成向数据库101査询推导出的关系153的上下文中的数据的上下文查询117。上下文査询117可响应于用户发起的改变基于web的表单中来自表151的记录的排列的命令来执行。上下文查询117可被配置成请求来自表151的、将以推导出的关系153的上下文呈现在基于web的表单中的记录。
方法200包括根据该数据库映射自动生成对应于该数据库的网站的动作(动作203)。该网站被配置成提供多个可导航链接的基于Web的表单以便与该数据交互。第一基于Web的表单用于与来自该第一表的数据交互。该第一基于web的表单配置有到第二基于web的表单的可导航链接,其利用推导出的关系来提供在来自该第二表的行的上下文中的第一表的视图。
例如,网站生成器111可根据数据库映射IIO来创建网站112。网站112包括可导航链接的网页112a、 112b、 112c等以便与数据102交互。网页112b可被更具体地配置为与表151交互并可包括到网页112c的链接。链接116利 用推导出的关系153来提供在来自表152的行的上下文中的表151的视图。例 如,可选择链接116以便从表151中的所有定单的视图转换到由表152中的行 来表示的指定顾客的所有定单的视图。(可响应于选择链接116向数据库101 发出适当的动态查询以检索对应于指定顾客的所有定单)。
图3示出了用于创建web表单的另一示例方法的流程图。图2示出了用 于创建web表单的示例方法200的流程图。方法300将关于计算机体系结构 100中的组件和数据来描述。
方法300包括访问对于数据库的数据库映射的动作,该数据库映射已经从 描述该数据库中所包含的数据的配置的模式中生成(动作301)。例如,网站 生成器111可访问从描述数据库101中所包含的数据的配置的模式103中生成 的数据库映射IIO。
方法300包括自动公式化被配置成查询数据库中所包括的数据库表的动 态查询的动作(动作302)。该动态査询可响应于用户发起的改变基于web的 表单中来自数据库表的记录的排列的命令来执行。该动态査询被配置成请求来 自数据库表的、将以其将要被呈现的次序呈现在基于web的表单中的特定记 录,以使得无需查询整张数据库表。
例如,网站生成器111可自动公式化分页査询113或排序査询114。分页 查询113和排序查询114中的任一个可响应于用户发起的改变基于web的表单 中来自表151的记录的排列的命令来执行。分页査询113或排序査询114可被 配置请求来自表151的、将以其将要被呈现的次序呈现在基于web的表单中的 特定记录,以使得无需査询整个表151。
方法300包括根据数据库映射自动生成对应于该数据库的网站的动作(动 作303)。该网站包括自动公式化的动态査询以便允许用户自动改变基于web 的表单中来自数据库表的记录的排列。例如,网站生成器lll可根据数据库映 射IIO来自动生成网站112。网页112a包括分页查询113,并且网页112b包 括排序査询114,这就允许用户自动改变基于web的表单中来自表151的记录 的排列。
图4示出了有助于执行具有自动生成的链接的web表单的示例计算机体系结构400。如图所示,计算机体系结构400包括数据库101、 web服务器401 和web浏览器402。 web浏览器402被配置成为用户提供用户界面以便与由 web服务器401提供的内容,包括自动生成的网站112交互。web浏览器402 可接收用户输入并响应于接收到的用户输入向web服务器401提交基于web 的命令。例如,web浏览器402可接收用户请求411并响应于用户请求411提 交URL403。 web浏览器401也可接收数据库记录和格式化信息,并且根据格 式化的信息来将数据库记录呈现在基于web的表单中。例如,web浏览器402 可接收包括记录406和格式化407的网页112e,并且可根据格式化407来将记 录406呈现在基于web的表单412中。
web服务器401被配置成从web浏览器接收基于web的命令并且响应于 接收到的基于web的命令标识并访问内容。例如,web服务器401可接收URL 403并且响应于URL 403访问数据102。(诸如IIS等组件可将URL 403映射 到数据102的位置)。web服务器401可执行网站112中所包括的动态査询以 便请求来自数据库101的记录。例如,web服务器401可执行分页査询113以 便请求来自表151的新一页的记录。web服务器401可从数据库101接收内容 并将该内容返回给web浏览器402。例如,web服务器401可接收记录406 (表 示来自表151的新一页的记录)。web服务器401可在网页112e (自动生成的 网站112中的另一页面)中包括记录406和格式化407。 web服务器401可将 网页112d发送到web浏览器402。
图5A—5E示出了 web表单500的各示例。图5A描绘了基于web的表单 的主菜单。图5A中的每个项目都可表示到数据库中的表的链接。例如,项目 501可表示到顾客表的链接,项目502可表示到定单表的链接,且项目503可 表示到产品表的链接。
选择图5A中的项目可使得来自链接的表的记录被呈现。例如,选择项目 502可使得web服务器401发出对来自定单表的记录的査询。图5B描绘了响 应于对项目502的选择所呈现的定单表的一部分。行502a、 502b、 502c、 502d、 和502e与定单表中的各行相对应。与每一行相关联的编辑和删除链接允许用 户修改或删除该行。列513表示可被选择以呈现相应定单的细节的不同排列的 查看细节链接。
21页511表示可用的定单的页数。对指定页(例如,第3页)的链接的选择
可使得对将出现在该页的记录的分页査询被发出。图5B中的各列包括可用于 对所呈现的行进行排序的链接。例如,可使用链接531、 532、 533、 534、 535 和536来分别按照产品名称、产品ID、定单ID、顾客ID、单位价格和已送货 单位对定单表进行排序。选择(例如,点击)链接可使得各行在指定列的上下 文中以升序排序。再次选择(例如,再次点击)该链接可使得各行在指定列的 上下文中以降序排序。例如,选择链接532可使得各行按照产品ID值以升序 排序。再次选择链接532使得各行按照产品ID值以降序排序。选择指定列的 链接(例如,产品ID列的链接532)可使得对所排序的记录的集合发出根据 由用户的动作指定的排序准则的动态排序査询。
当选择一行的编辑链接时。可呈现该行的值的可编辑字段。例如,选择行 502a的编辑链接可使得图5C被呈现。所呈现的可编辑字段可包括该字段的当 前值。当一字段表示外键关系时,可提供可用外键值的下拉列表。例如,产品 ID (来自产品表)的可用值可被呈现在下拉列表521中,定单ID (来自定单 表)的可用值可被呈现在下拉列表522中,顾客ID (来自顾客表)的可用值 可被呈现在下拉列表523中。
可以在可编辑字段中选择和/或更改值。如果要实现所输入的编辑,则可 选择(例如,点击)更新链接。如果不要选择所输入的编辑,则可选择(例如, 点击)取消链接。
在列中,值也可以是链接。这些链接可表示到具有到另一表的外键关系的 其他表的链接。例如,在产品ID列中,所呈现的值也可包括到产品表的链接。 用户可选择(例如,点击) 一链接以便被带到所选项目的更详细的信息。例如, 可选择行502b中的顾客ID列中的链接以查看关于对应于顾客ID值8的顾客 的更详细的信息。图5D是对应于顾客ID值8的顾客的更详细的信息的示例。
如图所示,图5D呈现了包括公司名、地址、邮编等更详细的信息。图5D 还包括链接512。选择链接512可使得对顾客ID值8的上下文(XYZ公司) 中的定单表发出动态查询。该动态査询的结果可被呈现在另一基于web的表单 中。例如,图5E描绘了顾客ID值8的上下文中的定单的表。g卩,行502f、 502b、 502g和502h表示对应于顾客ID值8的定单。图6示出了用于执行web表单的示例方法600的流程图。方法600将关 于计算机体系结构400和web表单500中的组件和数据来描述。
方法600包括将来自数据库表的记录转发到web浏览器以使得记录可根 据第一配置通过基于web的表单来呈现的动作(动作601)。例如,web服务 器401可转发来自表151的记录以使得记录可通过图5B中的web表单被呈现 在web浏览器402处。
方法600包括从web浏览器接收指示通过基于web的表单的记录呈现将 被改变为不同的第二配置的用户发起的消息的动作(动作602)。例如,web 服务器401可以从web浏览器402接收URL 403。 URL 403指示通过图5B中 的web表单的记录呈现将被改变为不同的第二配置。
方法600包括响应于用户发起的消息向数据库发出动态査询的动作(动作 603)。该动态査询请求来自数据库表的、将以其将要被呈现的次序用不同的 第二配置来呈现的记录,以使得无需查询整张数据库表。该动态数据库査询在 创建网站112时就被自动包括在网站112中。该动态査询也可与不同的数据库 表之间的推导出的关系相关联。
例如,web服务器401可以向数据库101发出查询404。査询404可以是 分页査询、排序查询、上下文査询、或网站生成器111自动将其包括在网站112 中的任何其他类型的动态查询。査询404可查询数据库101中的指定记录而不 査询整张表。这些记录可以是关于来自当前表的不同页记录、关于来自当前表 的记录的已排序页、或关于来自另一张表的行的上下文中的来自当前表的记 录。
方法600包括以其将要被呈现的次序接收响应于该动态查询的所请求的 记录的动作(动作604)。例如,web服务器401可接收表示对査询404的响 应的记录406。
方法600包括将所请求的记录以其将要被呈现的次序转发到web浏览器 以使得所请求的记录可根据不同的第二配置通过基于web的表单来呈现的动 作(动作605)。例如,web服务器401可将包括记录406和格式化407的网 页112e发送至web浏览器402。网页112e可表示来自当前表的记录的不同页、 来自当前表的已排序记录、来自另一张表(例如,图5D中的表)的行的上下
23文中的来自当前表的记录等。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所述实施例
在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附 权利要求书而非前述描述指示。落入权利要求书的等效技术方案的含义和范围 内的所有改变应被权利要求书的范围涵盖。
权利要求
1. 一种在计算机系统处的用于生成基于web的用户界面以便与数据库交互的方法,所述方法包括访问对于数据库的数据库映射的动作,所述数据库映射已经从描述所述数据库中所包含的数据的配置的模式中生成,所述模式包括描述从所述数据库的第一表到第二表的外键关系;从所述外键关系的存在推导出从所述第二表到所述第一表的关系也是相关,即使从所述第二表到所述第一表的关系并没有在所述模式中被明确描述的动作;以及根据所述数据库映射自动生成对应于所述数据库的网站的动作,所述网站被配置成提供多个可导航链接的基于Web的表单以便与所述数据交互,包括用于与来自所述第一表的数据交互的第一基于Web的表单,所述第一基于web的表单配置有到第二基于web的表单的可导航链接,所述可导航链接利用推导出的关系来提供在来自所述第二表的行的上下文中的所述第一表的视图。
2.如权利要求1所述的方法,其特征在于,所述访问数据库映射的动 作包括访问通过动态链接库上的反射来创建的数据库映射的动作。
3. 如权利要求l所述的方法,其特征在于,所述从所述外键关系的存 在推导出从所述第二表到所述第一表的关系也是相关的动作包括推导出由所 述第一表中外键表示的所述第二表中的字段的值可被包括在所述第一表中的 多个行中的动作。
4. 如权利要求l所述的方法,其特征在于,还包括 自动公式化用于向所述数据库査询在所述第二表的行的上下文中的所述第一表的记录的动作。
5. 如权利要求4所述的方法,其特征在于,所述根据所述数据库映射 自动生成对应于所述数据库的网站的动作包括将所述动态査询包括在所述自 动生成的网站中的动作。
6. 如权利要求1所述的方法,其特征在于,所述根据所述数据库映射 自动生成对应于所述数据库的网站的动作包括自动生成包括用于动态査询的 链接的网站的动作,所述动态查询用于执行对来自所述第一表的记录的排序和 对来自所述第一表的记录的分页中的至少一个。
7. —种在计算机系统处的用于生成基于web的用户界面以便与数据 库交互的方法,所述方法包括访问对于数据库的数据库映射的动作,所述数据库映射已经从描述 所述数据库中所包含的数据的配置的模式中生成;自动公式化被配置成査询所述数据库中所包括的数据库表的动态 查询的动作,所述动态査询可响应于用户发起的、改变基于web的表单中来自 所述数据库表的记录的排列的命令来执行,所述动态査询被配置成请求来自所 述数据库表的、将以其将要被呈现的次序呈现在所述基于web的表单中的记 录,以使得无需査询整张数据库表;以及根据所述数据库映射自动生成对应于所述数据库的网站的动作,所 述网站包括自动公式化的动态查询以便允许用户自动改变所述基于web的表 单中来自所述数据库表的记录的排列。
8. 如权利要求7所述的方法,其特征在于,所述访问数据库映射的动 作包括访问通过动态链接库上的反射来创建的数据库映射的动作。
9. 如权利要求7所述的方法,其特征在于,所述自动公式化被配置成 査询数据库表的动态査询的动作包括公式化用于对所述数据库表中的记录进 行排序、删除、添加和修改中的一个或多个的动态査询的动作。
10. 如权利要求9所述的方法,其特征在于,所述公式化用于对所述数 据库表中的记录进行排序的动态查询的动作包括公式化可以在基于所述记录的字段中的一个的值以升序和降序对所述数据库表的记录进行排序之间切换 的动态査询的动作。
11. 如权利要求7所述的方法,其特征在于,所述自动公式化被配置成 査询数据库表的动态査询的动作包括公式化用于对所述数据库表中的记录进 行分页的动态査询的动作。
12. 如权利要求7所述的方法,其特征在于,所述根据所述数据库映射 自动生成对应于所述数据库的网站的动作包括包含可被选择以执行査询的用 户可选择链接的动作,所述查询选自分页查询、添加查询、删除查询和修改査 询。
13. 如权利要求7所述的方法,其特征在于,所述根据所述数据库映射 自动生成对应于所述数据库的网站的动作包括包含可被选择以执行排序査询 的用户可选择链接的动作。
14. 如权利要求7所述的方法,其特征在于,所述根据所述数据库映射 自动生成对应于所述数据库的网站的动作包括包含可被选择以执行对在来自 第二表的行的上下文中的来自第一表的记录的查询的用户可选择链接的动作。
15. —种在计算机系统处的用于提供来自数据库的、将通过基于web的表单来呈现的数据的方法,所述方法包括将来自数据库表的记录转发到web浏览器以使得所述记录可根据第一 配置通过基于web的表单来呈现的动作;从所述web浏览器接收指示通过所述基于web的表单的记录呈现将被改变为不同的第二配置的用户发起的消息的动作;响应于所述用户发起的消息向所述数据库发出动态查询的动作,所 述动态查询请求来自所述数据库表的、将以其将要被呈现的次序用所述不同的 第二配置来呈现的记录,以使得无需査询整张数据库表,所述动态査询在创建对应于所述数据库的网站时就已经被自动包括在所述网站中;以其将要被呈现的次序接收响应于所述动态查询的所请求的记录的动作;以及将所请求的记录以其将要被呈现的次序转发到所述web浏览器,以 使得所请求的记录可根据所述不同的第二配置通过所述基于web的表单来呈 现的动作。
16. 如权利要求15所述的方法,其特征在于,所述从所述web浏览器 接收用户发起的消息的动作包括接收指示表中的记录将基于所述记录的字段 的值来进行排序的消息的动作。
17. 如权利要求15所述的方法,其特征在于,所述从所述web浏览器 接收用户发起的消息的动作包括接收指示新一页的记录将要被呈现的消息的 动作。
18. 如权利要求15所述的方法,其特征在于,所述从所述web浏览器 接收用户发起的消息的动作包括接收指示来自所述第一表的记录将在来自第 二表的行的上下文中被呈现的消息的动作。
19. 如权利要求15所述的方法,其特征在于,所述以其将要被呈现的次序接收所请求的记录的动作包括接收已排序的记录的动作。
20.如权利要求15所述的方法,其特征在于,所述发出动态査询的动 作包括发出选自分页查询、排序査询、添加査询、删除査询和修改查询的查询 的动作。
全文摘要
本发明涉及用于创建具有自动生成的链接的web表单的各方法、系统和计算机程序产品。访问对于数据库的数据库映射。自动公式化用于查询数据库的一个或多个动态查询。动态查询被包括在根据数据库映射自动生成的对应于数据库的网站中。还包括用户选择的链接以执行动态查询。对链接的选择使相应的动态查询执行。数据库中的各表之间的关系即使在该关系没有在描述数据库的模式中被明确描述时也可被推导出。动态查询可以是排序、分页、添加、删除和修改查询中的任一个。
文档编号G06F17/30GK101460950SQ200780020776
公开日2009年6月17日 申请日期2007年4月26日 优先权日2006年6月5日
发明者A·萨纳布里阿, B·D·米林顿, B·M·戈德法布, K·阿拉姆, M·E·吉布斯, P·M·保勒斯, S·D·格思里, S·S·尼约吉 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1