我的数据库有很多使用 rfunc.dll 中的函数的程序,但是当我尝试在 C# 上使用 ODBC 驱动程序连接时,UDF 函数不会加载
这是我如何进行连接的
public OdbcConnection Conecta(string serverName, string databaseName, string userName, string password, string DriverName)
{
string connectionString = $"User={userName};Password={password};Database={databaseName};DataSource={serverName};Driver={DriverName};";
// Criar a conexão
OdbcConnection connection = new OdbcConnection(connectionString);
try
{
// Abrir a conexão
connection.Open();
// A conexão foi aberta com sucesso, você pode executar consultas aqui
return connection;
}
catch (Exception ex)
{
// Tratar exceção, se necessário
Console.WriteLine("Erro ao conectar-se ao banco de dados: " + ex.Message);
//Console.Beep();
return null;
}
}
OdbcConnection FBconnection = new Database().Conecta("127.0.0.1:3050", "My\\Database\\path\\.fdb", "SYSDBA", "masterkey", "Firebird/InterBase(r) driver");
一切正常,但 rfunc 功能不起作用,如果有人有任何想法吗?
火鸟3.0 火鸟 ODBC 2.0.5
正如 user246821 试图在评论中指出的那样,Firebird ODBC 驱动程序没有
DataSource
属性。有关属性列表,请参阅 ODBC 驱动程序文档。具体来说,您需要使用 DBNAME
或 DATABASE
以及 fbclient.dll 预期的完整连接 URL。
在您的情况下,您需要指定
Database=inet://{serverName}/{databaseName}
而不是 Database={databaseName};DataSource={serverName}
。
您遇到的问题可能是您当前的解决方案在不访问 UDF 的情况下加载 Firebird Embedded,而不是通过 Firebird 服务器连接并访问 UDF。