try
 ADOQuery1.Close;
 ADOQuery1.SQL.Clear;
 ADOQuery1.SQL.text:='select * from sework where Users=''jiang1''';
 //ADOQuery1.Parameters.ParamByName('Users').Value:='jin';
 ADOQuery1.Active:=true;
 except
 end
当把ADOQuery1.Parameters.ParamByName('Users').Value:='jin';这句屏蔽掉 运行可以读出SQL数据中的Users中的jiang1但是我想把jiang1修改为jin ,用了ADOQuery1.Parameters.ParamByName('Users').Value:='jin';着句后运行老是提示ADOQuery1 MOT FOUND USERS 郁闷很 但是用EITD1.TEXT:=ADOQuery1.FieldByName('Users').AsString能够显示出jiang1,现在的问题是就是修改不了jiang1的数值,我的编译环境是XP+DELPHI7.0+SLA SERVER 

解决方案 »

  1.   

    ADOQuery1.ParamByName('Users').Value:='jin'; 
      

  2.   

    應該是這樣:試試!
    ADOQuery1.SQL.text:='select * from sework where Users=:jin'; 
    ADOQuery1.Parameters.ParamByName('Users').Value:='jin'; 
    ADOQuery1.open;
      

  3.   

    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='select * from sework where Users= :Users'; 
    ADOQuery1.Parameters.ParamByName('Users').Value:='jin'; 
    ADOQuery1.Active:=true; 
    except 
    end 
      

  4.   

    真是要疯掉了 先说下我的要求 我有一个SEWORK的表 表有一个列名叫USERS 列名里面有一个jiang的项
    第一我用 ADOQuery1.SQL.add('select * from sework where Users= :jiang'); 
    这个句是想读出jiang这个数值 但是读出的是一句空
    第二我用ADOQuery1.SQL.add('select * from sework where Users= :'jiang'');不能编译在'jiang'处错误
    第三我用ADOQuery1.SQL.add('select * from sework where Users= ''jiang''');这样就能显示出jiang这项了
    但是我ADOQuery1.Parameters.ParamByName('jiang').Value:='jin'; 这句想把jiang修改为JIN 就老在这里出错 说 'jiang' not found  
      

  5.   

    ADOQuery1.SQL.add('select * from sework where Users= :jiang');
     ADOQuery1.Parameters.ParamByName('jiang').value:='jin';
    这样能编译运行没有错误 但是没有达到我的要求 我是要求是把jiang 修改为jin 还有是不是我的SQL表的设计那里有问题呢 我的SQL表上设计列名Users的类型是char 10个字符的
    表的格式如下
      Users      Pass
      jiang      111111
      jiang2     111111
    效果就是能修改该里面的数值把jiang修改成JIN。
      

  6.   

    刚刚按上面编译了下 运行并没有出现我要的结果
    表格
    Users    pass
     jiang   11111
     jiang2  11111并没有把表格里面的jiang 修改成jin
    不知道那里出错了 好郁闷
      

  7.   

    难道是我的软件 有问题
    ADOQuery1.SQL.text:='select * from sework where Users=:jiang'这句话的意思是找出sework表中Users列下面的内容为jiang的项吧 但是在DELPHI中编译运行却找到的空,我的表中确实有jiang这一项感觉很怪
    在SQL的查询分析器上输入select * from sework where Users=:jiang不能运行 提示在:处有错误
    修改成select * from sework where Users=‘jiang’后在查询分析器上能找到jiang项 哎  真是头大了
      

  8.   

    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='update [sework] set pass =:pass where Users= :Users'; 
    ADOQuery1.Parameters.ParamByName('Users').Value:='jin';
    ADOQuery1.Parameters.ParamByName('pass').Value:='pass'; 
    ADOQuery1.Active:=true; 
    except 
    end 
    我想你要修改项内容,光用'select * from 实现不了
      

  9.   

    ADOQuery1.SQL.text:='update [sework] set Users= :Users where pass =:pass' ; 
      

  10.   


    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='select * from sework where Users=:jiang1'; 
    ADOQuery1.Parameters.ParamByName('jiang1').Value:='jin'; 
    ADOQuery1.Active:=true; 
    except 
    end 
      

  11.   

    支持华仔,你肯定哪里写错了
    参数前要加:号的,然后利用parameters.parambyname('').value赋值
      

  12.   


     按你的這個寫法應該是:
    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='select * from sework where Users= :jiang'; 
    ADOQuery1.Parameters.ParamByName('jiang').Value:='jin'; 
    ADOQuery1.Active:=true; 
    except 
    end 
      

  13.   

    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='select * from sework where Users= :jiang'; 
    ADOQuery1.Parameters.ParamByName('jiang').Value:='jin'; 
    ADOQuery1.Active:=true; 
    except 
    end 
    这样编译运行了 但是没有把我的jiang这个内容改为jin 运行了看了表什么数值都没有改动  不知道是那里的问题了 也不提示错误
      

  14.   

    那就怪了 我在SQL的查询分析器上输入select *from sework where Users=:jiang 一直提示jiang前面的:有错误 郁闷很select *from sework where Users=‘jiang’这样输入就能显示出 jiang 项 哎 真的不知道怎么弄了 好郁闷
      

  15.   

    在查询分析器中不能这样写
    我觉得starluck说的已经非常清楚了,你还有哪不明白呢
      

  16.   

    搞了一下午原来是我弄错了 开始以为ADOQuery1.Parameters.ParamByName('jiang').Value:='jin'; 
    能够修改我数据的数值 原来他只是一个查询数据而已 如果要修改数据库上的数值(已经存在的)还是要用UPDATE的方法
    try 
    ADOQuery1.Close; 
    ADOQuery1.SQL.Clear; 
    ADOQuery1.SQL.text:='select * from sework where Users= :jiang'; 
    ADOQuery1.Parameters.ParamByName('jiang').Value:='jiang'; 
    ADOQuery1.Active:=true; 
    except 
    end 
    这样就能显示出jiang项的数据了 呵呵 不管怎么样还是要谢谢大家 结贴
      

  17.   

    在查询分析器中不能这样写
    我觉得starluck说的已经非常清楚了,你仔细看看你程序应该没问题