End else Begin                                //账号注册
    If (edt1.Text = '') Or (edt2.Text = '') Or (edt3.Text = '') Then Begin
      Application.MessageBox('用户注册时用户帐号、密码及确认密码不能为空!', '错误提示', 64);
      edt1.Clear;
      edt2.Clear;
      edt3.Clear;
    End Else Begin
      If (Length(edt1.Text) < 6) Or (Length(edt1.Text) > 12) Then Begin
        Application.MessageBox('注册用户名必须是6~12个英文字符或数字!', '错误提示', 64);
        edt1.Clear;
      End Else Begin
        If edt2.Text <> edt3.Text Then Begin
          Application.MessageBox('两次输入的密码不同,请重新输入!', '错误提示', 64);
          edt2.Clear;
          edt3.Clear;
        End Else Begin
          K_Date.Conn1.Connected := True;
          K_Date.ds_CM.Close;
          K_Date.ds_CM.Params.ParamByName('a').Value :=trim(edt1.Text);
          K_Date.ds_CM.Open;
        End;
      End;
    End;
  End; ds_CM 对应服务端 SQL语句内容:select 用户账号 from 用户信息 where 用户帐号=:a  D7做的三层数据库程序(客户端)中的一段代码,一旦运行,(服务端)总是提示检测到错误类EoleException,错误信息:至少一个参数没有指定值。仔细检查了无数遍,无论是变量A,还是对应的数据库中的字段名,都没问题。实在不知道问题在哪里,特来讨教!

解决方案 »

  1.   

    更正一下:
      ds_CM 对应服务端 SQL语句内容:select * from 用户信息 where 用户帐号=:a   
      

  2.   

    ds_CM.ParamCheck := False试试或者ds_CM.SQL.Text := 'select 用户账号 from 用户信息 where 用户帐号='+QuotedStr(trim(edt1.Text)); 试试
      

  3.   

    先感谢一下楼上的朋友,但依然无果,我的目的很明确,通过 K_Date.ds_ZC.RecordCount > 0 查找指定的变量(用户帐户)是否在数据库中出现,判断用户名是否存在。为什么不行尼,郁闷啊。同样的语句在程序段其他地方都能通过,唯独这个地方总是出错,奇怪。哪位如果有兴趣要源码看看,我可以提供,QQ76147096