我数据库中有俩表A ,B
我向这俩表中添加数据是可以的,
但是在删除的时候,就只能删除A表的数据
B中的数据不可以删除
代码:
Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('delete bg_ID,住院号,病人姓名,性别,年龄,科室名称,床号  form bg where bg_ID=:bg_ID,住院号:=住院号'
  +'病人姓名:=病人姓名,性别:=性别,年龄:=年龄,科室名称:=科室名称,床号:=床号');        Query1.ParamByName('住院号').AsString:=Edit2.Text;
 Query1.ParamByName('病人姓名').AsString:=Edit4.Text;
 query1.ParamByName('性别').AsString:=Edit5.Text;
  query1.ParamByName('年龄').AsString:=Edit6.Text;
   query1.ParamByName('科室名称').AsString:=Edit7.Text;
    query1.ParamByName('床号').AsString:=Edit8.Text;    query1.ParamByName('bg_ID').AsString:=Edit10.Text;
  Query1.ExecSQL;
在执行到:        Query1.ParamByName('住院号').AsString:=Edit2.Text;
时候报“Query1.ParamByName('住院号') not found”请问这是什么原因?

解决方案 »

  1.   

    Query1.SQL.Add('delete bg_ID,住院号,病人姓名,性别,年龄,科室名称,床号  form bg where bg_ID=:bg_ID,住院号:=住院号'
      +'病人姓名:=病人姓名,性别:=性别,年龄:=年龄,科室名称:=科室名称,床号:=床号');这一句里面只有一张表名啊?
    第2个表呢???
      

  2.   

    将.asstring 改为.value,然后将那些参数的value type改为olestr.这样试试~
      

  3.   

    Query1.SQL.Add('delete bg_ID,住院号,病人姓名,性别,年龄,科室名称,床号  form bg where bg_ID=:bg_ID,住院号:=住院号'
      +'病人姓名:=病人姓名,性别:=性别,年龄:=年龄,科室名称:=科室名称,床号:=床号');
      把所有冒号移到右边去
      

  4.   

    冒号移到等号右边
    SQL语句下应该是这样的 =:
      

  5.   

    呵呵,参数的写法和Delphi赋值的写法互相混淆了,只有第一个参数是写正确的。
      

  6.   

    Query1.SQL.Add(format('delete form bg where bg_ID=''%s'',住院号=''%s'',病人姓名=''%s'',性别=''%s'',年龄=''%s'',科室名称=''%s'',床号=''%s''',[Edit2.Text,Edit4.Text,Edit5.Text,Edit6.Text,Edit7.Text,Edit8.Text]));
    Query1.ExecSQL;
      

  7.   

    Query1.Parameters.ParamByName('住院号').Value:=edit1.Text;