1

我想使用现有的 Delphi 代码来编写 SQL Server 存储过程。

过去我使用扩展存储过程,不知何故由 Delphi 编译的 dll 由 SQL Server 扩展存储过程包装。

扩展存储过程现在已被弃用,所以不知何故我想知道是否有解决方案,即使在“技巧域”中,比如一些包装普通 dll 的示例 CLR 代码或类似的东西。

只是给你一个例子:

我通过加密在数据库中插入了一些文档,我想创建一种基于 SQL Server 函数/过程的 API 用于插入或读取文档,以便其他访问 sql server 的人可以调用这些函数。

当然,另一种解决方案是使用 web 服务,但我想先尝试 SQL Server 方式。

注意:我不想使用 Delphi Prism,我的代码是用于 XE2。

4

2 回答 2

5

不安全的 SQLCLR 程序集可以p 调用本机 dll。更好的方法是将本机 DLL 服务公开为 COM 接口并使用SQLCLR 中的COM 互操作,或者甚至通过OLE 自动化过程直接从 SQL 调用 COM API 。一个更好的方法是将 Delphi 代码重写为 CLR 代码并直接调用它作为 SQLCLR 过程。最好的方法是使用 SQL Server的本机加密功能

于 2012-08-10T07:59:22.610 回答
0

更不用说 SQL Server 中的 CLR 保证了对性能的深刻影响。保持标准的 CRUD 运算符,你应该没问题。另一种方法是使用文件系统作为您的加密机制。如果您只是想防止随意访问文档,这是一个不错的方法。否则,可能是时候重新考虑您的访问协议了。

SQL Server 中的 CLR 是一个方便的坏主意。如果有的话,请谨慎使用。

于 2012-08-10T15:34:10.757 回答