Delphi DLL
library SqlDll;
uses
System.SysUtils,
System.Classes;
{$R *.res}
function SqlQuery(_a, _b: Integer): Integer; stdcall; export;
begin
Result := _a + _b;
end;
exports
SqlQuery;
begin
end.
SQL Server
DROP ASSEMBLY CalculateDelphi
GO
CREATE ASSEMBLY CalculateDelphi
FROM 'C:\SqlDLL\SqlDll.dll'
WITH PERMISSION_SET = unsafe
GO
错误
MSG 6544,第16级,状态1,第153行创建组装组件 “ CalculateDelphi”失败,因为程序集“ CalculateDelphi”为 格式不正确或不是纯.NET程序集。不可验证的PE标头/本地存根。
答案 0 :(得分:1)
错误消息不言自明:
'CalculateDelphi'失败,因为程序集'CalculateDelphi'格式错误或不是纯.NET程序集。
SQL Server需要一个.NET程序集,但您没有给它一个.NET程序集,而是给了它一个纯C风格的DLL,而SQL Server不像其他一些数据库那样支持导入。
Delphi无法再生成.NET程序集,当在Delphi 8之后删除Delphi.NET时,它失去了该功能。
对于您要执行的操作,必须使用具有.NET功能的编译器(例如Visual Studio,RemObjects Oxygene等)进行以下操作:
创建一个内部调用DLL的.NET程序集包装。
移植DLL代码以直接将其作为自己的.NET程序集进行编译。