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