说明:
服务器软件环境:SQL Server 2005 ,windows 2003 企业版+Sp2,IIS
WebService 作为 ISAPI的方式发布到服务器的IIS目录(存在于虚拟目录中)。
--------------------------------------------------------------------使用 delphi 7.0开发的WebService 在 windows 2003操作系统发布时,在WebService接口中访问数据库时,查询包含中文字段的数据表时,打开数据表时出现乱码,源码如下:
1)远程服务器WebService接口实现代码: procedure TFirstWS.CreateDM; //创建普通数据模块
begin
dmServer_Login:=TDMServer_Login.Create(nil);
end;procedure TFirstWS.FreeDM;//释放通数据模块
begin
dmServer_Login.Free;
end;//TDMServer_Login的简单说明。
//普通数据模块,用户在服务器端连接本机数据库
TdmServer_Login = class(TDataModule)
adc: TADOConnection;
aq_Query: TADOQuery;function TFirstWS.LoginVerify(sType, sID, sPWD: String): String;
var
iNo : Integer;
iID : Integer;
i:integer;
sSQL:String;
begin CreateDM;
if sType='1' then
begin
try
with dmServer_Login.aq_Query do
begin
-----------------------出错处代码---------------------------
Close;
SQL.Text:='Select 用户编码,用户名称 from TableA '; //如果查询中文字段的数据表,就出错
Open;
-----------------------出错处代码--------------------------- if RecordCount>0 then
Result:='0'
Else
Result:='-1';
Close;
end;
finally
FreeDM;
end;
end;2)远程客户端调用WebService接口
var P:IFirstWS;begin
try
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := True; HTTPRIO1.WSDLLocation:=http://localhost:8088/pServer_Login.dll/wsdl/IFirstWS
HTTPRIO1.Service:='IFirstWSservice';
self.HTTPRIO1.Port:='IFirstWSPort';
P:=(self.HTTPRIO1 as IFirstWS);
--调用接口
S:=p.LoginVerify('1',edtAccount.Text,edtPWD.Text); //调用时抛出异常ERemotable ,发生在---出错处代码---
服务器软件环境:SQL Server 2005 ,windows 2003 企业版+Sp2,IIS
WebService 作为 ISAPI的方式发布到服务器的IIS目录(存在于虚拟目录中)。
--------------------------------------------------------------------使用 delphi 7.0开发的WebService 在 windows 2003操作系统发布时,在WebService接口中访问数据库时,查询包含中文字段的数据表时,打开数据表时出现乱码,源码如下:
1)远程服务器WebService接口实现代码: procedure TFirstWS.CreateDM; //创建普通数据模块
begin
dmServer_Login:=TDMServer_Login.Create(nil);
end;procedure TFirstWS.FreeDM;//释放通数据模块
begin
dmServer_Login.Free;
end;//TDMServer_Login的简单说明。
//普通数据模块,用户在服务器端连接本机数据库
TdmServer_Login = class(TDataModule)
adc: TADOConnection;
aq_Query: TADOQuery;function TFirstWS.LoginVerify(sType, sID, sPWD: String): String;
var
iNo : Integer;
iID : Integer;
i:integer;
sSQL:String;
begin CreateDM;
if sType='1' then
begin
try
with dmServer_Login.aq_Query do
begin
-----------------------出错处代码---------------------------
Close;
SQL.Text:='Select 用户编码,用户名称 from TableA '; //如果查询中文字段的数据表,就出错
Open;
-----------------------出错处代码--------------------------- if RecordCount>0 then
Result:='0'
Else
Result:='-1';
Close;
end;
finally
FreeDM;
end;
end;2)远程客户端调用WebService接口
var P:IFirstWS;begin
try
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := True; HTTPRIO1.WSDLLocation:=http://localhost:8088/pServer_Login.dll/wsdl/IFirstWS
HTTPRIO1.Service:='IFirstWSservice';
self.HTTPRIO1.Port:='IFirstWSPort';
P:=(self.HTTPRIO1 as IFirstWS);
--调用接口
S:=p.LoginVerify('1',edtAccount.Text,edtPWD.Text); //调用时抛出异常ERemotable ,发生在---出错处代码---
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货