Hi,
I found a bug in Provider 1.5 RC1 version.
I seems to affect only queries to system tables.
The following code:
<code>
using System;
using System.Data;
//Provider 1.1 build: 1.0.1241.28320 - ok
//Provider 1.5 RC1 build: 1.5.1437.22333 - bug
using FirebirdSql.Data.Firebird;
namespace BugInProvider
{
class Class1
{
static void Main(string[] args)
{
string ConnectionString = "connectionstring"
//query taken from DbSchemaFactory
string strSql = "SELECT rdb$relation_name AS TABLE_NAME, rdb$view_blr
AS TABLE_TYPE, rdb$system_flag AS SYSTEM_TABLE, rdb$owner_name AS
OWNER_NAME, rdb$description AS DESCRIPTION FROM rdb$relations ORDER BY
rdb$system_flag, rdb$owner_name, rdb$relation_name";
FbConnection cn = new FbConnection(ConnectionString);
cn.Open();
FbCommand cmd = new FbCommand(strSql,cn,cn.BeginTransaction());
FbDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
System.Console.WriteLine("Table_name: {0}",rdr.GetValue(0));
}
rdr.Close();
cmd.Transaction.Rollback();
cn.Close();
System.Console.ReadLine();
}
}
}
</code>
Produces output like this:
Table_name: RDB$FILTER
Table_name: RDB$FORMAT
Table_name: RDB$FUNCTI
Table_name: RDB$FUNCTI
Table_name: RDB$GENERA
Table_name: RDB$INDEX_
Table_name: RDB$INDICE
The size is trimmed to 10 chars
With a Provider 1.1 build: 1.0.1241.28320 the results are ok:
Table_name: RDB$FILTERS
Table_name: RDB$FORMATS
Table_name: RDB$FUNCTIONS
Table_name: RDB$FUNCTION_ARGUMENTS
Table_name: RDB$GENERATORS
Table_name: RDB$INDEX_SEGMENTS
Table_name: RDB$INDICES
btw. How to use restrictions in FbConnection.GetDbSchemaTable?
Best regards
PS. Sorry for English.
--
Tomasz (Tom) Bogucki
Fundacja CBOS
Warsaw,Poland
|