110,535
社区成员
发帖
与我相关
我的任务
分享
unit Unit1;
interface
uses
SysUtils,IniFiles,DB, ADODB,ActiveX;
function SFCInitialize:Integer;
function SFCClose:Integer;
function getfileString(AMsg:PChar):Integer; Cdecl; export;
function getADOString(AMsg:PChar):Integer; Cdecl; export;
implementation
var
ADOConn:TADOConnection;
ADOtmp:TADOQuery;
function SFCInitialize:Integer;
begin
ADOConn := TADOConnection.Create(nil);
ADOConn.LoginPrompt := false;
ADOConn.ConnectionString := 'Provider=OraOLEDB.Oracle.1;Password=ws;Persist Security Info=True;User ID=ws;Data Source=oraDB';
//ADOConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test\DB.mdb;Persist Security Info=False';
ADOtmp := TADOQuery.Create(nil);
ADOtmp.Connection := ADOConn;
Result := 1;
end;
function SFCClose:Integer;
begin
ADOtmp.Close;
ADOConn.Close;
ADOConn.Free;
Result := 1;
end;
function getfileString(AMsg:PChar):Integer;
var
tmpstr :string;
IniErrorCode:TIniFile;
begin
IniErrorCode := TIniFile.Create('C:\Test\' + 'ini\ErrCodeInfo.ini');
tmpstr := IniErrorCode.ReadString('ErrorList','Test','');
StrPCopy(AMsg,tmpstr);
IniErrorCode.Free;
Result := 1;
end;
function getADOString(AMsg:PChar):Integer;
var
strSQL,tmpstr:string;
begin
ADOtmp.Close;
strSQL:='select fname from tbluser where fid =:fid ';
ADOtmp.SQL.Text:=strSQL;
ADOtmp.Parameters.ParseSQL(ADOtmp.SQL.Text,True);
ADOtmp.Parameters.ParamByName('fid').Value:= '86403985';
ADOtmp.Open;
tmpstr := ADOtmp.FieldByName('fname').AsString;
StrPCopy(AMsg,tmpstr);
ADOtmp.Close;
end;
initialization
CoInitialize(nil);
SFCInitialize;
finalization
SFCClose;
CoUnInitialize;
end.
Dll代码。两个function。
一个是验证读取Ini资料夹内的ini文件是否正常。
一个是验证数据库连线的!
[WebMethod]
public string getiniString()
{
byte[] Msg = new byte[50];
string tmp = string.Empty;
int i = clsCallDll.getfileString(Msg);
if (i == 1)
{
tmp = System.Text.Encoding.Default.GetString(Msg);
}
else
{
tmp = "error";
}
return tmp;
}
[WebMethod]
public string getADOString()
{
byte[] Msg = new byte[50];
string tmp = string.Empty;
int i = clsCallDll.getADOString(Msg);
tmp = System.Text.Encoding.Default.GetString(Msg);
return tmp;
}
C# webservice部分代码!
有兴趣的可以研究下,也许问题很简单,但我却没找到。
郁闷了这么久还是没调试成功。
所有还是不这样玩了!自己写webservice直接处理数据,不调用dll处理数据了!
但还是觉得遗憾,理论上很好实现的东西在实际操作中却这么难!?
可能还是自己基础功不够扎实吧!
有研究出来或需要完整调试代码的大侠可以给我发个消息!
谢谢!先结贴吧!
在此谢谢楼上的各位大侠!