“对象打开时,不允许操作”,该怎么解决
“对象打开时,不允许操作”
从ini文件中循环读取三条数据配置信息,第二次循环就报这个错,然后我改为只读一条信息不用循环,然后又发现点第二次查询按钮时报这个错。求助怎么解决? qry1.Close;
qry1.Open;就这两行报错。
------解决方案--------------------
ini对象需要释放过程,示意如下
----------------------------------------
ini := Tinifile.create(FileName);
try
//调用ini的过程
finally
ini.free;//释放ini
end;
你的代码中可能的异常点有三个, 你需要分别处理(或者对异常信息进行分析):
1 ini相关
ini文件不存在时
ini文件中相关键值不存在时
2 conn1连接失败时
3 qry1.open事件执行失败时(比如sql语句错误)
------解决方案--------------------
既然循环引用,记得要释放:
ini.Destroy;//释放资源
------解决方案--------------------
我倒是觉得你的con.connectstring:= 这一句前面应该加上 con.connect:=false; 要不是连接打开时是无法重新写connectsting的
------解决方案--------------------
------解决方案--------------------
把关闭放到最上面!
还有这种读取ini文件的方式我还是第一次见,看不出有什么好处!
------解决方案--------------------
把 qry1.Close;往前挪吧。
------解决方案--------------------
似乎没有 con1.connection:=true;
------解决方案--------------------
楼主是哪个版本的delphi?
------解决方案--------------------
LZ的delphi是怎麼改變背景色的??
------解决方案--------------------
------解决方案--------------------
Qry1先关闭再Open有点另类,是要处理之前的Qry1没有被上次正常关闭吗,加个判断是否已经打开,否则Qry1.Close肯定要触发异常。
ini的释放应该是放在Finally里吧,
------解决方案--------------------
+1.
LZ应当是将con绑定到qry1的Connection上了吧。所以当qry1执行open了之后con就自动被打开了,于是下一次再修改connectstring时报错。
从ini文件中循环读取三条数据配置信息,第二次循环就报这个错,然后我改为只读一条信息不用循环,然后又发现点第二次查询按钮时报这个错。求助怎么解决? qry1.Close;
qry1.Open;就这两行报错。
------解决方案--------------------
ini对象需要释放过程,示意如下
----------------------------------------
ini := Tinifile.create(FileName);
try
//调用ini的过程
finally
ini.free;//释放ini
end;
你的代码中可能的异常点有三个, 你需要分别处理(或者对异常信息进行分析):
1 ini相关
ini文件不存在时
ini文件中相关键值不存在时
2 conn1连接失败时
3 qry1.open事件执行失败时(比如sql语句错误)
------解决方案--------------------
既然循环引用,记得要释放:
ini.Destroy;//释放资源
------解决方案--------------------
我倒是觉得你的con.connectstring:= 这一句前面应该加上 con.connect:=false; 要不是连接打开时是无法重新写connectsting的
------解决方案--------------------
qry1.Close;//放connectionstring 上面;
qry1.connectiongstring:='...';
qry1.Open;
------解决方案--------------------
把关闭放到最上面!
还有这种读取ini文件的方式我还是第一次见,看不出有什么好处!
------解决方案--------------------
把 qry1.Close;往前挪吧。
------解决方案--------------------
似乎没有 con1.connection:=true;
------解决方案--------------------
楼主是哪个版本的delphi?
------解决方案--------------------
LZ的delphi是怎麼改變背景色的??
------解决方案--------------------
------解决方案--------------------
Qry1先关闭再Open有点另类,是要处理之前的Qry1没有被上次正常关闭吗,加个判断是否已经打开,否则Qry1.Close肯定要触发异常。
ini的释放应该是放在Finally里吧,
------解决方案--------------------
+1.
LZ应当是将con绑定到qry1的Connection上了吧。所以当qry1执行open了之后con就自动被打开了,于是下一次再修改connectstring时报错。