var
   n_dnsname,n_username,n_email,n_userpass,n_regicode:string;
begin
     .....
            n_userpass:=autoformpass;
            n_regicode:=autoformsn;
//            n_userpass:='sadjasdsa';
//            n_regicode:='312321312';
            showmessage(n_userpass+nregicode); 
            userq.Insert;
            userq['dns_name']:=n_dnsname;
            userq['user_name']:=n_username;
            userq['e_mail']:=n_email;
            userq['user_pass']:=n_userpass;
            userq['regi_code']:=n_regicode;
            userq['regi_date']:=now;
            userq.post;
    ......end;
说明如下:autoformpass,autoformsn为2个函数,分别付值给n_userpass、n_regicode,通过showmessage()可确认这2个变量真的有2个字符值,另外,
n_dnsname,n_username,n_email在程序前面付值(该部分省略),现在的问题是
当我提交时显示错误“多步操作产生错误,请检查每一步的状态值”,如果去掉上面注释行,就是付一个常量,程序就正确,可n_dnsname,n_username,n_email也是字符串变量呀,怎么会一个接受,一个不接受呢,希望各位前辈指点

解决方案 »

  1.   

    调试的时候跟中一下就可以了 n_userpass 的值
      

  2.   

    调试跟踪n_userpass,n_regisn确实有值呀,showmessage就是这个作用呀
    希望大家在发表高见
      

  3.   

    to  swayi21(微斯人) 
    我的数据库是SQL SERVER2000,同样改成字符串就可以,请看清题目先
      

  4.   

    to  swayi21(微斯人)
    我用的数据库是SQLSERVER2000,看我的注释行用的就是字符串呀,和纯字符字符串、纯数字字符串有什么关系呀!看清说明先
      

  5.   

    这样试试:
    userq['dns_name'].asstring:=n_dnsname
    userq['user_pass'].asstring:=n_userpass;
    userq['regi_code'].asstring:=n_regicode;
      

  6.   

    to tfxg(tfxg)
    呵呵,老兄,这种写法本来就不规范,虽没有语法错误,但程序根本不会执行
    标准写法为:userq.fieldbyname('dns_name').asstring:=n_dnsname
            或:userq.fieldvalue['dns_name']:=n_dnsname
    由于fieldvalue是Tdataset的默认属性,故演绎出以下的写法
            userq['dns_name']:=n_dnsname
    所以我的原程序中的付值没有问题,
    请大家继续讨论
      

  7.   

    问题自己解决了,建议大家还是去大富翁论坛吧
    我靠,CSDN.NET快玩完了,什么高手,全去泡妞了
    以前(很久很久以前)还是对CSDN感觉不错的,现在越来越差了
    因为这几天大富翁出问题了,BOSS又催的紧,不得已才来这儿的
    一次比一次失望.........查询常出问题,又没有数据包下栽..
    所以只有死分了
      

  8.   

    如果是SQL你看可以不可以用SQL那样就可以在查询分析器里面看