65.9K
CodeProject 正在变化。 阅读更多。
Home

多数据库文本搜索工具

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.27/5 (4投票s)

2017年12月21日

CPOL

5分钟阅读

viewsIcon

9990

downloadIcon

367

用于使用正则表达式搜索过程、视图和表中文本的数据库工具

引言

有时,我们需要知道在代码的哪个位置正在更新或选择某个字段,或者使用硬编码的值或字符串,或者执行某个操作等等。虽然数据库工具允许我们了解数据库对象之间的依赖关系,但这可能不足以快速找到我们正在进行确切数据处理或操作的确切代码片段。

DBTextFinder 是一款简单的工具,可帮助您使用正则表达式在所有存储过程、函数、触发器、程序包和视图代码(或其中选定的子集)中执行精确搜索。

此外,您还可以使用正则表达式搜索所选表中的所有文本字段中的给定文本。

该应用程序支持连接到 MySQLSQL ServerOracle 服务器,并通过 WCF 服务支持远程连接。您可以通过编写自己的连接器轻松扩展可用 DBMS 的列表,而无需更改应用程序代码。

此工具已翻译成两种语言:英语和西班牙语。

该项目使用 Visual Studio 2013 以 C# 编写。

应用程序界面

DBTextFinder 是一个 MDI 应用程序。搜索是异步进行的,因此您可以同时启动多个搜索。

为了连接到给定的数据库服务器,您需要正确的连接器。连接器是实现 DBTFCommons 共享类库中定义的接口的 DLL。默认情况下,有三个完整的连接器,分别用于 MySQLSQL ServerOracle 数据库。

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

The Manage Connectors Option

您可以使用“选项”菜单中的“管理连接器”选项创建或修改数据库连接。

Create or modify a database connection

要创建新连接,请从下拉列表中选择正确的连接器,在“连接名称”文本框中输入连接名称,然后提供连接数据。在“服务器”文本框中,您需要提供数据库服务器地址,Catalog 用于 SQL ServerMySQL 中的数据库名称,或 Oracle 中的 TNS 服务名称。您需要提供用户名和密码,或者在 SQL Server 中选择“Windows 身份验证”。

Create new connection

要修改现有连接,您需要选择“连接名称”文本框下方的下拉列表中的连接名称。

您可以在保存之前使用“测试连接”按钮测试连接。然后,使用“保存”按钮将其存储在应用程序配置文件中。

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

The search form

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

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

例如,假设您想在 AdventureWorks 示例数据库的 Employee 表的 HireDate 字段中查找执行更新操作的位置。您可以编写以下正则表达式:update\b(.|\n)*employee(.|\n)*hiredate。结果列表窗格中显示两个结果。

Search results panel

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

Source code panel

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

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

Search in tables

如果选中右侧带有“替换”复选框的字段旁边的文本,输入新文本,然后按“替换”按钮,则可以替换字段中的文本。也可以使用“删除”按钮删除记录。与过程和视图中的相同选项一样,请注意使用这些选项。

Using the Code

解决方案中有各种项目

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

对数据类型和接口的详细解释会使本文冗长乏味,因此,您可以阅读这篇文章以查找更多详细信息。

所有数据和接口都定义为可以在 WCF 服务实现中使用,您可以阅读这篇文章以了解更多信息。

以上就是全部内容。感谢您的阅读!!!

历史

  • 2017 年 12 月 21 日:初始版本
© . All rights reserved.