关于数据库更新问题 急~~
procedure TForm3.Button1Click(Sender: TObject);
var
apass:string;
begin
apass:= edit1.Text;
query1.Close;
query1.SQL.Clear;
case i of
1:query1.SQL.Text:='select * from 表1 where 用户级别=''工厂级''';
2:query1.SQL.Text:='select * from 表1 where 用户级别=''维护级''';
3:query1.SQL.Text:='select * from 表1 where 用户级别=''操作级''';
end;
query1.Open;
if apass=query1.FieldByName('密码').AsString then
begin
if edit2.Text<>edit3.Text
then messagebox(form3.handle,'新口令不相同!','警告',MB_OK+MB_ICONWARNING)
else begin
case i of
1:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''用户级''';
2:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''维护级''';
3:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''操作级''';
end;
query1.ExecSQL;
query1.Close;
form3.Close;
messagebox(form3.handle,'修改成功!','提示',MB_OK+MB_ICONINFORMATION);
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
end;
end
else messagebox(form3.handle,'原口令输入错误!','警告',MB_OK+MB_ICONWARNING);
i是我设置的一个全局变量,在登陆窗口里,以上是我修改密码的窗体,为什么一点修改就出现 sql no statement aviailable 错误,急死我了~~~~!!!!!!
问题点数:50、回复次数:6Top
1 楼jianghd(天天)回复于 2005-06-03 08:48:50 得分 8
query1.Close;
query1.SQL.Clear;
// 加上上面两句试试
case i of
1:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''用户级''';
2:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''维护级''';
3:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''操作级''';
end;
query1.ExecSQL;
query1.Close;Top
2 楼whbo(王红波(年轻人,要有所作为))回复于 2005-06-03 13:34:00 得分 10
sql的问题,是access库?''用户级''改成用"用户级"看Top
3 楼reflection(风)回复于 2005-06-03 13:41:44 得分 8
将SQL语句跟踪出来看看!Top
4 楼xixuemao(钱不是问题,问题是没钱)回复于 2005-06-03 14:17:33 得分 8
我觉得你在query1.ExecSQL;时最好try一下吧!!
然后用楼上说的,在你的SQL语句处设置个断点,跟踪一下。Top
5 楼chenminghong(cmh)回复于 2005-06-03 14:23:15 得分 8
case i of
1:query1.SQL.Text:='update 表1 set 密码='''+edit2.Text+''' where 用户级别=''用户级''';
改成
case i of
1:query1.SQL.Text:='update 表1 set 密码='+''''+edit2.Text+''''+' where 用户级别='+''''+'用户级'+'''';
以下都是这样改,我觉的应该可以的
Top
6 楼Earthnut(*)回复于 2005-06-03 14:45:27 得分 8
在 query1.ExecSQL;前
showmessage(query1.sql.text);
看你的sql到底是啥样的,错了再改啊..Top




