起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 157|回复: 3

[请求]文本型转字符型出现乱码

[复制链接]
发表于 2009-8-10 15:57:51 | 显示全部楼层 |阅读模式
文本型的字段传到字符型的字段  会出现二进制乱码
如何解决
回复

使用道具 举报

发表于 2009-8-10 16:08:27 | 显示全部楼层
你是怎么传递的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-10 17:49:12 | 显示全部楼层
procedure TZDHFZRSP.FlowBroker1AfterFlowOut(Sender: TObject; Command: TFlowOutCommand);
Var
  sProcID : string;
// 与地调流程进行交互---S
linf : TGYXX ;
DsnStr : string;
qry : TQuery;
newID_New,TaskBt,ZDM,ZDSZ : string;  //ZDM:字段名  ZDSZ:字段数值
begin
  sProcID := Command.FlowTasks[0].ProcUnit.ID;  //得到下一步 环节ID
  if sProcID='SBSD' then       //下一步环节ID
  begin
  // 与地调流程进行交互---S
     linf := TGYXX.Create(Context);
     //写进地调业务表 返回主表主键值
     newID_New :=linf.GetDdValue('Biz:\DMIS\DMISSJK.DATABASE\FZ_ZZH_ZDHJXGLLC.Table');//在“流程字段”中查找
      qry:=TQuery.Create(nil);
     try
      qry.ConnectionString:='DATABASEURL=Biz:\SYSTEM\SYSTEM.DATABASE';
      qry.CommandText:='insert into dd_FZ_ZZH_ZDHJXGLLC '+
           '(JXSQDW,JXSBMC,GZLXRJDH,GZNR,KNYXDSJ,JHKSSJ,JHJSSJ,SQTXR,SQTXSJ,INST_ID,ZYSX,AQCS,YDXGBFXXB,YDZZWZXXB,GSDQ,SFSBDD)'+       // 需要传输的字段名
           'VALUES (:JXSQDW,:JXSBMC,:GZLXRJDH,:GZNR,:KNYXDSJ,:JHKSSJ,:JHJSSJ,:SQTXR,:SQTXSJ,:INST_ID,:ZYSX,:AQCS,:YDXGBFXXB,:YDZZWZXXB,:GSDQ,:SFSBDD)';   // 需要传输的字段的值
      qry.Params.ParamByName('JXSQDW').AsString:=DSB_LC.DataSet.FieldByName('JXSQDW').AsString;
      qry.Params.ParamByName('JXSBMC').AsString:=DSB_LC.DataSet.FieldByName('JXSBMC').AsString;
      qry.Params.ParamByName('GZLXRJDH').AsString:=DSB_LC.DataSet.FieldByName('GZLXRJDH').AsString;
      qry.Params.ParamByName('GZNR').AsBlob:=DSB_LC.DataSet.FieldByName('GZNR').AsString;
      qry.Params.ParamByName('KNYXDSJ').AsBlob:=DSB_LC.DataSet.FieldByName('KNYXDSJ').AsString;
      qry.Params.ParamByName('JHKSSJ').AsDateTime:=DSB_LC.DataSet.FieldByName('JHKSSJ').AsDateTime;
      qry.Params.ParamByName('JHJSSJ').AsDateTime:=DSB_LC.DataSet.FieldByName('JHJSSJ').AsDateTime;
      qry.Params.ParamByName('SQTXR').AsString:=DSB_LC.DataSet.FieldByName('SQTXR').AsString;
      qry.Params.ParamByName('SQTXSJ').AsDateTime:=DSB_LC.DataSet.FieldByName('SQTXSJ').AsDateTime;
      qry.Params.ParamByName('INST_ID').AsFloat:=SysUtils.StrToFloat(newID_New);
      qry.Params.ParamByName('ZYSX').AsBlob:=DSB_LC.DataSet.FieldByName('ZYSX').AsString;
      qry.Params.ParamByName('AQCS').AsBlob:=DSB_LC.DataSet.FieldByName('AQCS').AsString;
      qry.Params.ParamByName('YDXGBFXXB').AsString:=DSB_LC.DataSet.FieldByName('YDXGBFXXB').AsString;
      qry.Params.ParamByName('YDZZWZXXB').AsString:=DSB_LC.DataSet.FieldByName('YDZZWZXXB').AsString;
      qry.Params.ParamByName('GSDQ').AsString:=DSB_LC.DataSet.FieldByName('GSDQ').AsString;
      qry.Params.ParamByName('SFSBDD').AsString:=DSB_LC.DataSet.FieldByName('SFSBDD').AsString;
      //上面添加的字段和值,要一一对应,顺序不能搞错。AsFloat:数字    AsString:字符   AsDateTime:日期     Ablob:文本(与字符对应)
      qry.Execute;
     finally
     qry.free;
     end;
     //附件交换
      //linf.FJJH('fjb','DD_DDDZDLC_ZDRYJSLZ',DSB_LC.DataSet.FieldByName('INST_ID').AsString,'dd_fjb','TBJZKHDZXEXX_DZDNR_FJ_',newID_New);
     //记录地调流程主键值
      linf.JhsjLOG(DSB_LC.DataSet.FieldByName('INST_ID').AsString+':XD:XD_ZDH_ZDHJXGLLC_LCXX',newID_New+'D:dd_FZ_ZZH_ZDHJXGLLC','2,XD');    //县调的表别名      地调的表别名
//启动地调流程
     TaskBt:='[集中]'+command.FlowTasks[0].Subject;    //下一步流程标题
     linf.GenerateTask('DD_ZDHJXGLLC_FZ_ZDHFZRSP_FZ',',,,,'+TaskBt+',ALL',newID_New);   //交换类型
     linf.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2009-8-10 17:57:49 | 显示全部楼层
你先把你的文本型字段showmessage一下看看。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 05:31 , Processed in 0.039845 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表