用存储过程插入记录,为什么插入的汉字到数据库里都少了一半(8个字只有4个字进数据库)
用midas做的三层。字母插入到数据库正常,可是汉字却会少了一半。例如输入8个进入数据库的只有4个,输入六个进入数据库的只有3个。
存储过程用查询分析器测试过,输入正常。而且转做两层,插入汉字也正常。但是三层就是少一半的汉字。是哪里类型不对吗?大家有遇到过这样的问题吗?这两天急着解决这个问题。大哥门帮帮忙。(我初步怀疑是.asstring的问题,可是不知道解决的方法).还有同样是三层,如果不用存储过程用dbedit利clientdataset的applyupdate插入汉字正常。
procedure Tfrmprecnt.Button1Click(Sender: TObject);
begin
try
Datamodule1.PreCntD.Close;
DataModule1.PreCntD.Params.ParamByName('@YS_DEBH').AsString:=dhbh.Text;
DataModule1.PreCntD.Params.ParamByName('@YS_XMMC').AsString:=xmbh.Text;
DataModule1.PreCntD.Params.ParamByName('@YS_SL').AsFloat:=StrToFloat(sl.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_DW').AsString:=dw.Text;
DataModule1.PreCntD.Params.ParamByName('@YS_DJ_ZCF').AsFloat:=StrToFloat(djzc.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_DJ_GZ').AsFloat:=StrToFloat(djgz.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_DJ_JXF').AsFloat:=StrToFloat(djjx.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_HJ_JXF').AsFloat:=StrToFloat(hjzc.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_HJ_GZ').AsFloat:=StrToFloat(hjgz.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_HJ_JXF').AsFloat:=StrToFloat(hjjx.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_LB').AsString:=lb.Text;
DataModule1.PreCntD.Params.ParamByName('@YS_Date_N').AsInteger:=StrToInt(n.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_Date_Y').AsInteger:=StrToInt(y.Text);
DataModule1.PreCntD.Params.ParamByName('@YS_Date_R').AsInteger:=StrToInt(r.Text);
DataModule1.PreCntD.Execute;
DataModule1.PreCntDlook.Close;
DataMoDule1.PreCntDlook.Open;
DataModule1.PreCntDlook.Last;
dhbh.Clear;
xmbh.Clear;
sl.Clear;
dw.Clear;
djzc.Clear;
djgz.Clear;
djjx.Clear;
hjzc.Clear;
hjgz.Clear;
hjjx.Clear;
except
on EConvertError do showmessage('数量价格等请输入数字');
end;
end;