通过ADO连接数据库(edit录入内容实现),但是进入程序后,我添加了一个重新连接按钮,重新调用连接窗口,却无法连接???(40分)

  • 主题发起人 主题发起人 DYI
  • 开始时间 开始时间
D

DYI

Unregistered / Unconfirmed
GUEST, unregistred user!
通过ADO连接数据库(edit录入内容实现),但是进入程序后,我添加了一个重新连接按钮,重新调用连接窗口,却无法连接??<br>请问如何实现,ado连接切换!之前只有一个ado可以实现,但是我又加入了一个ado(是指定连接数据库的),这样就无法实现了,请高手指点!
 
先需要disconnect<br>2可能是你的两个 connect 连接的同一个程序,对于大多数数据库系统来说<br>一个应用只能同时连接同一个数据库一次,<br>如果有两个ado 连接,请分别连接到不同的数据库,否则没有必要.
 
链接之后数据库会锁定!access的吗?会发现在目录中有个xxx.ldb的文件就是锁定时生成的!
 
重新连接按钮 没有必要。<br><br>  你可以在每次保存完后断开连接。这样:Con1.Connected:=false;<br><br>&nbsp; &nbsp; 下次再次要保存新录入的数据时,加一个判断:<br><br>If Not Con1.Connected Then &nbsp;//判断一下当前连接是否有效,如果无效重新连接<br>&nbsp; &nbsp;Con1.Connected := true;
 
procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>try<br><br>&nbsp; &nbsp; if (ComboBox1.Text='')or (edit1.Text='') then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; showmessage('登陆服务器与数据库名称不能为空!');<br>&nbsp; &nbsp; &nbsp;exit;<br>&nbsp; &nbsp; &nbsp;end<br>&nbsp; &nbsp; &nbsp;else<br>&nbsp; &nbsp; &nbsp; ADOConnection1.Close;<br>&nbsp; &nbsp; ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;' &nbsp;+'user id=sa;' &nbsp;+'Integrated Security=SSPI;Persist Security Info=false;' &nbsp; +'Initial Catalog='+ComboBox1.Text+';Data Source='+edit1.Text;<br>&nbsp; &nbsp; ADOConnection1.Open;<br>&nbsp;comboBox1.Clear;<br><br><br><br>&nbsp; &nbsp; &nbsp;if ADOConnection1.Connected &nbsp;then<br>&nbsp; begin<br>&nbsp; &nbsp; &nbsp;form2.Show;<br>&nbsp; &nbsp; &nbsp;form1.Close;<br>&nbsp; &nbsp; &nbsp;{ end<br>&nbsp; &nbsp; &nbsp;else If Not ADOConnection1.Connected Then &nbsp;//判断一下当前连接是否有效,如果无效重新连接<br>&nbsp; &nbsp;//ADOConnection1.Connected := true;<br>&nbsp;ADOConnection1.Close;<br>&nbsp; &nbsp; ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;' &nbsp;+'user id=sa;' &nbsp;+'Integrated Security=SSPI;Persist Security Info=false;' &nbsp; +'Initial Catalog='+ComboBox1.Text+';Data Source='+edit1.Text;<br>&nbsp; &nbsp; ADOConnection1.Open;<br>&nbsp;comboBox1.Clear;<br>&nbsp;//end;}<br>&nbsp; end;<br>&nbsp; except<br>&nbsp; &nbsp; &nbsp; &nbsp; application.MessageBox('数据库连接失败,请确认无误后重试!','提示:')<br>end;<br>end;
 
在重新调用连接窗口时,在连接窗口的Create事件中,判断一下当前连接是否有效,如果还连接着,就断开它。这样保证生成窗体的时候肯定没和数据库连接,然后再做你想做的事。
 
后退
顶部