to : hzlan(^只有你能帮到我^) 
如果象你所说的那样的话,也只可能是赋值时截取了部分字符。你把代码贴上来看看。

解决方案 »

  1.   

    adoquery2.SQL:Insert Into HRKQGZ_Security User_ID,User_Name,User_Password,Join_Date,Dept_ID,User_Level,User_fa)
    Values(:User_ID,:User_Name,:User_Password,:Join_Date,:Dept_ID,:User_Level,:User_fa)
    代码:
            ADOQuery2.Parameters[0].Value:=Trim(HNEdit1.Text);
            ADOQuery2.Parameters[1].Value:=Trim(HNEdit2.Text);
            ADOQuery2.Parameters[2].Value:=Trim(HNEdit3.Text);
            ADOQuery2.Parameters[3].Value:=Date;
            ADOQuery2.Parameters[4].Value:=DBLookupComboBox1.KeyValue;
            ADOQuery2.Parameters[5].Value:=SpinEdit1.value;
            ADOQuery2.Parameters[6].Value:=UserID;
            ADOQuery2.ExecSQL;
            showmessage('新增用户'+HNEdit1.Text+'完成,请记得设置用户权限.');
      

  2.   

    变量的数据类型设为ftstring,应该不是这个问题,因为英文传入没问题,而只是将中文字一下当成单字节,一下又当成是双字节.
      

  3.   

    我发现用select ... where a=:a
    这时传入中文又不会出错.为什么?
    是因为begin tran ... commit tran 的问题吗?
      

  4.   

    你写的句子有问题:
    :
            ADOQuery2.Parameters[0].asstring:=Trim(HNEdit1.Text);
            ADOQuery2.Parameters[1].asstring:=Trim(HNEdit2.Text);
            ADOQuery2.Parameters[2].asstring:=Trim(HNEdit3.Text);
            ADOQuery2.Parameters[3].asdate:=Date;
            ADOQuery2.Parameters[4].Value:=DBLookupComboBox1.KeyValue;(不知字段值为什么)
            ADOQuery2.Parameters[5].asstring:=SpinEdit1.text;
            ADOQuery2.Parameters[6].Value:=UserID;
            ADOQuery2.ExecSQL;
    还有就是你的Oracle的语言是否选择正确了?