procedure TForm10.Button1Click(Sender: TObject);
var e1,e2,e3,e4:string;
begin
e1:=edit1.Text;
e2:=edit2.Text;
e3:=edit3.Text;
e4:=edit4.Text;
if e3=e4 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from login.db where user='+''''+e1+''''+'and password='+''''+e2+'''');
adoquery1.Open;
adoquery1.Edit;
adoquery1.FieldByName('password').AsString:='';
adoquery1.FieldByName('password').AsString:=e3;
adoquery1.Post;
Application.MessageBox('修改成功!','提示',mb_ok);
close;
end
else
begin
Application.MessageBox('新密码两次输入不相同,请重新输入','提示',mb_ok);
edit3.SetFocus;
edit4.SetFocus;
end
end;这是整个代码,在四个edit中输好内容点击button1后就会出现以下提示:
Project Project.exe raised exception class EOleException with message'[Microsoft][ODBC Paradox Driver]操作必须实用一个可更新的查询。‘
而且在以前是可以实现的,但不知道出什么问题了,也没有修改什么,现在就会出现这样的提示。还请高手们帮好好想想办法,太感谢了!!!
var e1,e2,e3,e4:string;
begin
e1:=edit1.Text;
e2:=edit2.Text;
e3:=edit3.Text;
e4:=edit4.Text;
if e3=e4 then
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from login.db where user='+''''+e1+''''+'and password='+''''+e2+'''');
adoquery1.Open;
adoquery1.Edit;
adoquery1.FieldByName('password').AsString:='';
adoquery1.FieldByName('password').AsString:=e3;
adoquery1.Post;
Application.MessageBox('修改成功!','提示',mb_ok);
close;
end
else
begin
Application.MessageBox('新密码两次输入不相同,请重新输入','提示',mb_ok);
edit3.SetFocus;
edit4.SetFocus;
end
end;这是整个代码,在四个edit中输好内容点击button1后就会出现以下提示:
Project Project.exe raised exception class EOleException with message'[Microsoft][ODBC Paradox Driver]操作必须实用一个可更新的查询。‘
而且在以前是可以实现的,但不知道出什么问题了,也没有修改什么,现在就会出现这样的提示。还请高手们帮好好想想办法,太感谢了!!!
解决方案 »
- delphi7 下使用waveOut....播放wav声音文件
- 关于线程的问题
- DLL调用clientsocket问题
- 请教DateTimePicker1的问题?
- listView相应点击事件!?
- 一个Form如何继承?
- 文件读写指针的移动
- MaskEdit 组件怎么用呀。多谢指导。...急需!
- 请问怎样报stringgrid的滚动条变成别的样子,高分奉送!(详细内容见里面)
- 在注册表中写入有关信息时,找不到“Idapi.cfg”文件,只有“Idapi32.cfg”能代替吗?为什么安装完成后还是会报错:database engine (er
- 如何用程序实现加密狗许可证文件中限制时间的修改
- 稿费到手,散分
看一下程序运行时,是不是用DatabaseDesktop或其他程序打开了login.db,数据库被独占了。
注销一下系统。不建议继续使用Paradox了。换数据库吧。
我的其他功能都是用ADO做的,要换BDE太麻烦了。应该没有其他程序打开login吧,就跟刚编好这个代码后运行一样进行的,但过了几天重新来用这个功能时就出现这样的问题了,也没手动修改过什么,把界面和数据库表拷到其他电脑上连接数据库后也是这个情况。
但开始运用login数据库表登陆是没有问题的,可以正常登陆。问题到底出在哪呢?
with ADOQurery1 do
begin
Close;
Sql.Text := 'update login.db set password=:b where user=:a';
Paramters.ParamterByName('a').Value := e1;
Paramters.ParamterByName('b').Value := e2;
ExecSql;
end;
Application.MessageBox('修改成功!','提示',mb_ok);
Close;
从错误信息可以看出,当前表被锁定了。看看你是不是其他地方也用到这个库了
另外,把这段程序放到一个单独的工程中测试下,想想问题到底出在哪
现在密码可以修改了,虽然不是你直接帮弄好的,但给了我最大的启示。
不得不承认你挺聪明的,把一段程序放到一个单独的工程中测试,确实是个好方法,
加上你前段所讲的,我就确定了问题是在数据库表格里,重建login数据库表就好了。是不是delphi自带的数据库问题比较大?可能也有其他好的解决方法,我想我这重建相当于电脑重启了吧,比较低级的
办法。