【问题标题】:ADODB connection to firebird与火鸟的 ADODB 连接
【发布时间】:2025-12-01 12:25:02
【问题描述】:

如何使用 ADODB 连接到 firebird 数据库? 我正在使用 testcomplete 来测试在 firebird 上运行的应用程序。 以下不起作用...

Conn = new ActiveXObject("ADODB.Connection");
constr = 'User=SYSDBA;Password=masterkey;Database=C:\..\Sample.fdb;DataSource=Local;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;'

Conn.ConnectionString = constr;
qrery = 'Select Count(*) FROM XX ';

recSet = new ActiveXObject("ADODB.Recordset");
recSet.Open(qrery,Conn,3 /* adOpenStatic */, 1 /* adLockReadOnly */,1);

Log.Message(recSet.Fields.Item(0).Value  );

recSet.Close();

得到以下错误

连接不能用于执行此操作。在这种情况下它要么是关闭的要么是无效的

【问题讨论】:

    标签: adodb testcomplete firebird2.5


    【解决方案1】:

    您需要在创建连接后和进行查询之前打开连接:

      var Conn = new ActiveXObject("ADODB.Connection");
      var constr = 'User=SYSDBA;Password=masterkey;Database=C:\\..\\Sample.fdb;DataSource=Local;Port=3050;Dialect=3;Charset=NONE;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;'
    
      Conn.ConnectionString = constr;
      var qrery = 'Select Count(*) FROM XX ';
    
      Conn.Open(); // Openning the connection
    
      var recSet = new ActiveXObject("ADODB.Recordset");
      recSet.Open(qrery,Conn,3 /* adOpenStatic */, 1 /* adLockReadOnly */,1);
    
      Log.Message(recSet.Fields.Item(0).Value  );
    
      recSet.Close();
    

    【讨论】:

    • 谢谢,也找到了,因为这是 jScript,它应该是 C:\\..\\Sample.fdb