M
marknew
Unregistered / Unconfirmed
GUEST, unregistred user!
为什么MTS/COM+中文无法正确保存?请看以下代码
//服务端部分程序
procedure TmtsBookObj.MtsDataModuleCreate(Sender: TObject);
begin
AutoComplete:=true;
Pooled:=true;
AInfoSQL[0] := format(DeleteSQL,['info_moto_part',' product_code like product_code and vdr_id like vdr_id']);
AInfoSQL[1] := format(UpdateSQL,['dm_kczt','name=name','code=code']);
AInfoSQL[2] := format(InsertSQL,['dm_cklx','code,name,print_price','code,name,print_price']);
end;
procedure TmtsBookObj.SetData(var OwnerData: OleVariant;
ParamList: OleVariant;
CmdIndex: Integer);
var
Params:OleVariant;
lcCmdTxt:string;
lpPara:TParams;
begin
lcCmdTxt:=AInfoSQL[CmdIndex];//得到执行的SQL语句。
if not VarIsNull(ParamList) then
Params:=GetOperParaList(lcCmdTxt,ParamList);//获取参数
try
{lpPara := TParams.Create;
UnPackParams(Params,lpPara);
showmessage(lpPara[0].value);
showmessage(lpPara[1].value);}//得到参数是正确的。
aps.AS_Execute('dspOperate',lcCmdTxt,Params,OwnerData);//执行语句
SetComplete;
except
SetAbort;
raise;
end;
end;
//客户端
ParasList:=varArrayCreate([0,ParaCount], varVariant);
ParasList[0] := '中国';//更新的字段,更新后只有'中'字才能保存进去,英文没问题
ParasList[1] := '02';//根据这个关键字
ImtsBookObj(LoginObj).SetData(OwnerData,ParasList,1);
//服务端部分程序
procedure TmtsBookObj.MtsDataModuleCreate(Sender: TObject);
begin
AutoComplete:=true;
Pooled:=true;
AInfoSQL[0] := format(DeleteSQL,['info_moto_part',' product_code like product_code and vdr_id like vdr_id']);
AInfoSQL[1] := format(UpdateSQL,['dm_kczt','name=name','code=code']);
AInfoSQL[2] := format(InsertSQL,['dm_cklx','code,name,print_price','code,name,print_price']);
end;
procedure TmtsBookObj.SetData(var OwnerData: OleVariant;
ParamList: OleVariant;
CmdIndex: Integer);
var
Params:OleVariant;
lcCmdTxt:string;
lpPara:TParams;
begin
lcCmdTxt:=AInfoSQL[CmdIndex];//得到执行的SQL语句。
if not VarIsNull(ParamList) then
Params:=GetOperParaList(lcCmdTxt,ParamList);//获取参数
try
{lpPara := TParams.Create;
UnPackParams(Params,lpPara);
showmessage(lpPara[0].value);
showmessage(lpPara[1].value);}//得到参数是正确的。
aps.AS_Execute('dspOperate',lcCmdTxt,Params,OwnerData);//执行语句
SetComplete;
except
SetAbort;
raise;
end;
end;
//客户端
ParasList:=varArrayCreate([0,ParaCount], varVariant);
ParasList[0] := '中国';//更新的字段,更新后只有'中'字才能保存进去,英文没问题
ParasList[1] := '02';//根据这个关键字
ImtsBookObj(LoginObj).SetData(OwnerData,ParasList,1);