在delphi中建立一"library IDSAC;",同时添加一个DataModule(DM1),在其上添加ADOConnection1、ADOQ,ADOConnection1主要是连接一Sql Server服务器,测试中用本地SQL,Dll创建完成后,在SQL server 中执行相应的操作,出现“未能找到存储过程”。详见程序清单
1、delphi部分
function IDSC(a,b:integer):integer;stdcall;
begin
try
CoInitialize(nil);
DM1 :=DM1.create(application);
dm1.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=test;Data Source=.;Use Procedure for Prepare=1;Auto Translate=True;';
dm1.ADOConnection1.Connected:=TRUE;
dm1.ADOQ.SQL.Text:='insert into test(a,b) values('+inttostr(a)+','+inttostr(b)+')';//a、b列为integer类型
dm1.ADOQ.ExecSQL;
result := 1;
except
result :=0;
end;
freeandnil(DM1);
end;exports
IDSC name 'ids';
2、Sql Server查询分析器部分exec sp_addextendedproc 'IDSAC','c:\test\IDSAC.dll'EXEC IDSC 1,2出现如下错误:
服务器: 消息 2812,级别 16,状态 62,行 1
未能找到存储过程 'IDSC'。
1、delphi部分
function IDSC(a,b:integer):integer;stdcall;
begin
try
CoInitialize(nil);
DM1 :=DM1.create(application);
dm1.ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=test;Data Source=.;Use Procedure for Prepare=1;Auto Translate=True;';
dm1.ADOConnection1.Connected:=TRUE;
dm1.ADOQ.SQL.Text:='insert into test(a,b) values('+inttostr(a)+','+inttostr(b)+')';//a、b列为integer类型
dm1.ADOQ.ExecSQL;
result := 1;
except
result :=0;
end;
freeandnil(DM1);
end;exports
IDSC name 'ids';
2、Sql Server查询分析器部分exec sp_addextendedproc 'IDSAC','c:\test\IDSAC.dll'EXEC IDSC 1,2出现如下错误:
服务器: 消息 2812,级别 16,状态 62,行 1
未能找到存储过程 'IDSC'。
不是任何dll都可以的吧