delphi7+access2003,更新BOOLEAN字段(100)

  • 主题发起人 主题发起人 computer751122
  • 开始时间 开始时间
C

computer751122

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用ADOCommand控件去更新usr表中的af(布尔字段).commandtext:='update usr set af=:flag where u_id=:id',这些已经固定的写在object property当中,程序片段如下: DM.ADOCommand1.Parameters.ParamByName('flag').Value := True; DM.ADOCommand1.Parameters.ParamByName('id').Value := QuotedStr(trim(edit1.Text)); //showmessage(DM.ADOCommand1.CommandText ) ; DM.ADOCommand1.Execute;但执行时出错:"参数类型不正确,或不在可接受的范围内,或与其它参数冲突".但我参数的类型都有做了设置,第一个为BOOLEAN,第二个是String.在Access中执行也通过了.不知道为什么会这样!请高手帮我看一下!谢谢!
 
function QuotedStr(const S: string): string;var I: Integer;begin Result := S; for I := Length(Result) downto 1 do if Result = '''' then Insert('''', Result, I); Result := '''' + Result + '''';end;明白哪里问题了吧!
 
传说中的单引号换成双引号看看 QuotedStr(trim(edit1.Text));——> '"'+trim(edit1.Text)+'"';
 
还是不行!!请有空的联系一下我的QQ:64538608.我放给他远控!我写了一小段测试程序,是不会弹出错误了,可是进到MDB里去看,那个字段还是没有变化!我现在把那个QuotedStr干脆去掉,改第一条记录可以(第一次点Button1),接着再改第二条记录时报错:标准表达式中数据类型不匹配。procedure TForm1.Button1Click(Sender: TObject);begin bool:=not bool; adocommand1.Parameters.ParamByName('flag').Value := bool; adocommand1.Parameters.ParamByName('id').Value :=edit1.Text; adocommand1.Execute;end;procedure TForm1.FormShow(Sender: TObject);begin bool:= true;end;
 
试过了,还是不行!现在我用ADOQuery来代了,也不会报错了,可是打开Access表,字段值居然没有变化.唉!~
 
DM.log1.Active := false; DM.log1.SQL.Clear; DM.log1.SQL.Add('update usr set af=true where u_id=:id'); DM.log1.Parameters.Clear; DM.log1.Parameters.AddParameter.Name := 'id'; DM.log1.Parameters.ParamByName('id').DataType := ftString; DM.log1.Parameters.ParamByName('id').Value:='"'+trim(edit1.Text )+'"'; DM.log1.ExecSQL;这样写也更新不了ACCESS库!晕!~
 
true改成1,我记不清了,楼主试试看怎么样
 
终于试出来了!不用参数,直接用 DM.log1.Active := false; DM.log1.SQL.Clear; DM.log1.SQL.Add('update usr set af=0 where u_id='+'"'+trim(DM.u_id)+'"'); //showmessage(DM.log.SQL.Text); DM.log1.ExecSQL;为了af=0,谢谢zhengrong117!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部