代码文本搜索工具DBTextFinder介绍

在软件开发过程中,经常需要定位代码中特定字段的更新、选择、硬编码值使用或特定操作的位置。尽管数据库工具可以查看数据库对象的依赖关系,但这往往不足以快速找到精确的数据操作代码片段。

DBTextFinder是一个简单的工具,它可以帮助使用正则表达式在所有存储过程、函数、触发器、包和视图代码中进行精确搜索,或者在选定的子集中进行搜索。此外,还可以使用正则表达式在选定的一组表的所有文本字段中搜索给定的文本。

该应用程序提供了对MySQL、SQL Server和Oracle服务器的连接,并支持通过WCF服务进行远程连接。可以轻松地通过编写自己的连接器来扩展可用的DBMS列表,而无需更改应用程序代码。

这个工具被翻译成英语和西班牙语两种语言。项目是用C#编写的,使用了Visual Studio 2013。

应用程序界面

DBTextFinder是一个多文档界面(MDI)应用程序。搜索是异步进行的,因此可以同时启动一些搜索。

要连接到特定的数据库服务器,需要适当的连接器。连接器是一个DLL,它实现了在DBTFCommons共享类库中定义的接口。默认情况下,有三种完整的连接器,分别用于MySQL、SQL Server和Oracle数据库。

可以使用“选项”菜单中的“安装连接器”选项添加额外的连接器。只需要使用查找文件对话框选择DLL文件。可以使用“选项”菜单中的“管理连接器”选项来启用或禁用它们。

可以使用“选项”菜单中的“管理连接”选项创建或修改数据库连接。要创建新连接,请在下拉列表中选择适当的连接器,在“连接名称”文本框中写入连接名称,并提供连接数据。在“服务器”文本框中,需要提供数据库服务器地址,“目录”是SQL Server和MySQL中的数据库名称,或者是Oracle中的TNS服务名称。需要提供用户名和密码,或者在SQL Server中选择“Windows身份验证”。

要修改现有连接,需要在“连接名称”文本框下方的下拉列表中选择它们的名称。可以使用“测试连接”按钮在保存之前测试连接。然后,使用“保存”按钮将其存储在应用程序配置文件中。

现在,可以开始使用该工具。在“文件”菜单中选择“新建”选项,在搜索表单中,在左上角的下拉列表中选择连接名称。

在右侧,有一个树视图,可以在其中选择要包含在搜索中的数据库对象。还可以使用表单顶部的“在表中搜索”和“在过程搜索”复选框来过滤此视图。

一旦选择了数据库对象,可以在表单上方的文本框中编写搜索表达式。可以勾选“忽略大小写”复选框以执行不区分大小写的搜索。然后按“搜索”按钮。可以使用“取消”按钮取消操作。

例如,如果想找到在AdventureWorks示例数据库中Employee表的HireDate字段执行更新操作的位置,可以编写以下正则表达式

update\b(.|\n)*employee(.|\n)*hiredate

结果列表窗格中显示了两个结果:当选择其中一个时,可以在底部窗格中看到源代码和匹配项列表。如果选择其中一个匹配项,可以在源代码中看到相应的文本被选中。

可以选中一些匹配项,并使用上面的文本框中的“替换”按钮将它们替换为给定的文本。可以使用“删除”按钮删除整个过程或视图。如果想使用这两个选项,请小心,因为它们没有撤销过程。当然,在继续之前会显示警告消息。

关于在表中搜索,该应用程序不打算进行大量数据更新,因此它是逐行工作的,因为搜索是在每一行的所有文本列上执行的。在底部窗格中显示了选定记录的所有字段以及键值,但只能编辑匹配的字段。例如,在AdventureWorks中搜索“Research and Development”:

带有右侧“替换”复选框的字段上的文本可以在选中它们、编写新文本并按“替换”按钮后被替换。记录也可以使用“删除”按钮删除。与过程和视图的情况一样,请小心使用这些选项。

使用代码

解决方案中有多个项目:

  • DBTextFinder:主应用程序,如果只想编写新的数据库连接器,则不需要修改此项目。
  • DBTFCommons:包含应用程序使用的类型定义和接口。在开发新连接器时,需要将此类库添加到项目中。
  • DBTFMySqlConnector、DBTFOracleConnector和DBTFSqlServerConnection:MySQL、Oracle和SQL Server的连接器。可以使用此代码作为编写自己的连接器的示例。
  • DBTFWCFServiceSqlServer:连接到SQL Server数据库的WCF服务示例。
  • DBTFConsoleService:连接到SQL Server数据库的另一个WCF服务示例,实现为控制台应用程序。
  • DBTFWinServiceSqlServer:作为Windows服务实现的另一个WCF实现示例。
  • dbtfsetup:解决方案的安装项目。

数据类型和接口的详细解释会使本文变得非常冗长和乏味,因此,可以阅读以获取更多详细信息。

所有数据和接口都定义为可以在WCF服务的实现中使用,可以在中阅读更多关于这方面的信息。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485