说明:
服务器软件环境: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 ,发生在---出错处代码---