我想实现这样的功能:在FORM上放2个edit,1个radiogroup,实现对表exp数据的修改。edit1为输入要修改记录的序号,radiogroup1里放表里的几项内容,分别为职工号,所在单位,所在部门。edit2输入修改的数值,就是要在edit1输入选定哪一条记录后,在radiogroup1中选定具体的一项内容,然后在edit2里输入新的数值,把那一项修改,请问SQL应该怎么写?

解决方案 »

  1.   

    sqlstr := 'update table set ';
    if (职工号.checked) and (edit2.test <> '')
       then sqlstr := sqlstr + '职工号=' + edit2.text +',';
    if (单位.checked) and (edit2.test <> '')
       then sqlstr := sqlstr + '单位=' + edit2.text +',';
    if (部门.checked) and (edit2.test <> '')
       then sqlstr := sqlstr + '部门=' + edit2.text +',';
    sqlstr := copy(sqlstr,1,length(sqlstr)-1); //去掉那个多余的','
    sqlstr := sqlstr + 'where 内容='+ edit1.text;
    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add(sqlstr);
    adoquery1.sql.execsql;//程序没有经过验证,方法可行
      

  2.   

    不好意思,好象zsy_good误会了我的意思
      

  3.   

    我再把问题说的清楚一点!我想实现这样的功能:在FORM上放2个edit,1个radiogroup,实现对表exp数据的修改。edit1为输入要修改记录的序号,radiogroup1里放的是表里的几列内容,分别为职工号,所在单位,所在部门。edit2输入修改的数值,就是要在edit1输入选定哪一条记录后,在radiogroup1中选定具体的一项内容,也就是要修改的那一项了,然后在edit2里输入新的数值,把那一项的数值修改位edit2输入的这个数值,请问SQL应该怎么写?
      

  4.   

    if radiogroup1.ItemIndex=0 then
    sql:=update exp set 职工号='''+edit2.text+''' 
           where 序号='''+edit1.text+'''
    if radiogroup1.ItemIndex=1 then
    sql:=update exp set 所在单位='''+edit2.text+''' 
           where 序号='''+edit1.text+'''
    if radiogroup.itemindex=2 then
    update exp set 所在部门='''+edit2.text+''' 
           where 序号='''+edit1.text+'''这样写你看的懂吧,别忘了加分啊!