Author: gbayon
Date: Tue Apr 25 10:40:27 2006
New Revision: 396940
URL: http://svn.apache.org/viewcvs?rev=396940&view=rev
Log:
Fixed issue with ObjectFactory and array parameter constructor.
Added xml comment
Renamed unit tests
Added:
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs (with props)
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs (with props)
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Account.cs
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.csproj
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ObjectFactoryTest.cs
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/FactoryBuilder.cs
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitFieldAccessor.cs
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitPropertyAccessor.cs
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/IMemberAccessor.cs
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/providers.config
Modified: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Account.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Account.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Account.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Account.cs Tue Apr 25
10:40:27 2006
@@ -21,6 +21,11 @@
public Account()
{}
+ public Account(int[] ids)
+ {
+ _ids = ids;
+ }
+
public Account(DateTime date)
{
_date = date;
Added: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs?rev=396940&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs Tue Apr 25
10:40:27 2006
@@ -0,0 +1,14 @@
+using System;
+
+namespace IBatisNet.Common.Test.Domain
+{
+ /// <summary>
+ /// Summary description for Item.
+ /// </summary>
+ public class Item
+ {
+ protected Item()
+ {
+ }
+ }
+}
Propchange: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Item.cs
------------------------------------------------------------------------------
svn:keywords = Id LastChangedDate LastChangedBy
Added: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs?rev=396940&view=auto
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs (added)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs Tue Apr 25
10:40:27 2006
@@ -0,0 +1,14 @@
+using System;
+
+namespace IBatisNet.Common.Test.Domain
+{
+ /// <summary>
+ /// Summary description for Order.
+ /// </summary>
+ public class Order
+ {
+ private Order()
+ {
+ }
+ }
+}
Propchange: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ibatis/trunk/cs/mapper/IBatisNet.Common.Test/Domain/Order.cs
------------------------------------------------------------------------------
svn:keywords = Id LastChangedDate LastChangedBy
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.2005.csproj
Tue Apr 25 10:40:27 2006
@@ -103,6 +103,8 @@
<Compile Include="Domain\Account.cs">
<SubType>Code</SubType>
</Compile>
+ <Compile Include="Domain\Item.cs" />
+ <Compile Include="Domain\Order.cs" />
<Compile Include="Domain\Property.cs" />
<Compile Include="Domain\Simple.cs" />
<Compile Include="NUnit\CommonTests\ConfigWatcher\ConfigWatcherTest.cs">
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.csproj
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.csproj?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.csproj
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common.Test/IBatisNet.Common.Test.csproj
Tue Apr 25 10:40:27 2006
@@ -212,6 +212,16 @@
BuildAction = "Compile"
/>
<File
+ RelPath = "Domain\Item.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
+ RelPath = "Domain\Order.cs"
+ SubType = "Code"
+ BuildAction = "Compile"
+ />
+ <File
RelPath = "Domain\Property.cs"
SubType = "Code"
BuildAction = "Compile"
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ObjectFactoryTest.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ObjectFactoryTest.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ObjectFactoryTest.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.Common.Test/NUnit/CommonTests/Utilities/ObjectFactoryTest.cs
Tue Apr 25 10:40:27 2006
@@ -1,3 +1,4 @@
+using IBatisNet.Common.Exceptions;
using IBatisNet.Common.Test.Domain;
using IBatisNet.Common.Utilities.Objects;
using NUnit.Framework;
@@ -9,9 +10,54 @@
[TestFixture]
public class ObjectFactoryTest
{
+ [Test]
+ [ExpectedException(typeof(ProbeException))]
+ public void PrivateConstructor()
+ {
+ IObjectFactory objectFactory = new ObjectFactory(true);
+
+ IFactory factory = objectFactory.CreateFactory(typeof
(Order), Type.EmptyTypes );
+
+ object obj = factory.CreateInstance(null);
+ }
+
+ [Test]
+ [ExpectedException(typeof(ProbeException))]
+ public void ProtectedConstructor()
+ {
+ IObjectFactory objectFactory = new ObjectFactory(true);
+
+ IFactory factory = objectFactory.CreateFactory(typeof
(Item), Type.EmptyTypes );
+
+ object obj = factory.CreateInstance(null);
+
+ Assert.IsTrue(obj is Item);
+ }
[Test]
- public void DynamicFactoryWithConstructor0()
+ public void ClassWithMultipleConstructor()
+ {
+ IObjectFactory objectFactory = new ObjectFactory(true);
+
+ Type[] types = {typeof(string)};
+ IFactory factory0 = objectFactory.CreateFactory(typeof
(Account), types );
+
+ object[] parameters = {"gilles"};
+ object obj0 = factory0.CreateInstance(parameters);
+
+ Assert.IsTrue(obj0 is Account);
+ Account account = (Account)obj0;
+ Assert.AreEqual("gilles", account.Test);
+
+ IFactory factory1 = objectFactory.CreateFactory(typeof
(Account), Type.EmptyTypes );
+
+ object obj1 = factory1.CreateInstance(parameters);
+
+ Assert.IsTrue(obj1 is Account);
+ }
+
+ [Test]
+ public void StringConstructor()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -27,7 +73,7 @@
}
[Test]
- public void DynamicFactoryWithConstructor1()
+ public void MultipleParamConstructor1()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -44,7 +90,7 @@
}
[Test]
- public void DynamicFactoryWithConstructor2()
+ public void IntConstructor()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -61,7 +107,7 @@
}
[Test]
- public void DynamicFactoryWithConstructor3()
+ public void EnumConstructorEnum()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -78,7 +124,7 @@
}
[Test]
- public void DynamicFactoryWithConstructor4()
+ public void ClassConstructor()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -98,7 +144,7 @@
}
[Test]
- public void DynamicFactoryWithConstructor5()
+ public void DateTimeConstructor()
{
IObjectFactory objectFactory = new ObjectFactory(true);
@@ -115,8 +161,33 @@
Assert.AreEqual( date, account.Date);
}
+ [Test]
+ public void ArrayParamConstructor()
+ {
+ IObjectFactory objectFactory = new ObjectFactory(true);
+
+ Type[] types = { typeof(int[]) };
+ IFactory factory = objectFactory.CreateFactory(typeof(Account),
types);
+
+ object[] parameters = new object[1];
+
+ int[] ids = new int[2];
+ ids[0] = 1;
+ ids[1] = 2;
+
+ parameters[0] = ids;
+ object obj = factory.CreateInstance(parameters);
+
+ Assert.IsTrue(obj is Account);
+ Account account = (Account)obj;
+
+ Assert.AreEqual(2, account.Ids.Length);
+ Assert.AreEqual(1, account.Ids[0]);
+ Assert.AreEqual(2, account.Ids[1]);
+ }
+
[Test]
- public void DynamicFactoryWithConstructor6()
+ public void MultipleParamConstructor0()
{
IObjectFactory objectFactory = new ObjectFactory(true);
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/FactoryBuilder.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/FactoryBuilder.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/FactoryBuilder.cs
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/FactoryBuilder.cs
Tue Apr 25 10:40:27 2006
@@ -37,6 +37,7 @@
public class FactoryBuilder
{
private ModuleBuilder _moduleBuilder = null;
+ private const BindingFlags VISIBILITY = BindingFlags.Instance |
BindingFlags.Public | BindingFlags.NonPublic;
/// <summary>
/// constructor
@@ -77,7 +78,7 @@
string typesName = string.Empty;
for(int i = 0; i < types.Length; i++)
{
- typesName += types[i].Name;
+ typesName +=
types[i].Name.Replace("[]",string.Empty)+i.ToString();
}
TypeBuilder typeBuilder =
_moduleBuilder.DefineType("EmitFactoryFor" + typeToCreate.Name + typesName,
TypeAttributes.Public);
typeBuilder.AddInterfaceImplementation(typeof
(IFactory));
@@ -95,7 +96,7 @@
ILGenerator il = meth.GetILGenerator();
// Add test if contructeur not public
- ConstructorInfo ctor =
typeToCreate.GetConstructor(argumentTypes);
+ ConstructorInfo ctor =
typeToCreate.GetConstructor(VISIBILITY, null, argumentTypes, null);
if (!ctor.IsPublic)
{
throw new ProbeException(
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitFieldAccessor.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitFieldAccessor.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitFieldAccessor.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitFieldAccessor.cs
Tue Apr 25 10:40:27 2006
@@ -55,7 +55,7 @@
// Make sure the field exists
if(fieldInfo == null)
{
- throw new MissingMethodException(
+ throw new NotSupportedException(
string.Format("Field \"{0}\" does not
exist for type "
+ "{1}.", fieldName, targetObjectType));
}
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitPropertyAccessor.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitPropertyAccessor.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitPropertyAccessor.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/EmitPropertyAccessor.cs
Tue Apr 25 10:40:27 2006
@@ -57,7 +57,7 @@
#endregion
/// <summary>
- /// Creates a new IL property accessor.
+ /// Initializes the property and generates the implementation
for getter and setter methods.
/// </summary>
/// <param name="targetObjectType">Target object type.</param>
/// <param name="propertyName">Property name.</param>
@@ -75,7 +75,7 @@
// Make sure the property exists
if(propertyInfo == null)
{
- throw new MissingMethodException(
+ throw new NotSupportedException(
string.Format("Property \"{0}\" does
not exist for type "
+ "{1}.", propertyName, targetType));
}
@@ -104,7 +104,7 @@
}
else
{
- throw new MissingMethodException(
+ throw new NotSupportedException(
string.Format("Property \"{0}\" on type
"
+ "{1} doesn't have a get method.",
memberName, targetType));
}
@@ -131,7 +131,7 @@
}
else
{
- throw new MissingMethodException(
+ throw new NotSupportedException(
string.Format("Property \"{0}\" on type
"
+ "{1} doesn't have a set method.",
memberName, targetType));
}
Modified:
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/IMemberAccessor.cs
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/IMemberAccessor.cs?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
---
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/IMemberAccessor.cs
(original)
+++
ibatis/trunk/cs/mapper/IBatisNet.Common/Utilities/Objects/Members/IMemberAccessor.cs
Tue Apr 25 10:40:27 2006
@@ -28,7 +28,10 @@
namespace IBatisNet.Common.Utilities.Objects.Members
{
/// <summary>
- /// The IMemberAccessor interface defines a field/property accessor.
+ /// The IMemberAccessor interface defines a field/property accessor and
+ /// provides <c>Reflection.Emit</c>-generated <see cref="Get"/> and
<see cref="Set"/>
+ /// implementations for drastically improved performance over default
late-bind
+ /// invoke.
/// </summary>
public interface IMemberAccessor
{
Modified:
ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/providers.config
URL:
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/providers.config?rev=396940&r1=396939&r2=396940&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/providers.config
(original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/bin/Debug/providers.config
Tue Apr 25 10:40:27 2006
@@ -19,6 +19,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="sqlServer1.1"
@@ -37,6 +38,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="sqlServer2.0"
@@ -54,7 +56,26 @@
useParameterPrefixInSql = "true"
useParameterPrefixInParameter = "true"
parameterPrefix="@"
+ allowMARS="false"
/>
+ <provider
+ name="sqlServer20005"
+ enabled="false"
+ description="Microsoft SQL Server, provider V2.0.0.0 in framework .NET
V2.0"
+ assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
+ connectionClass="System.Data.SqlClient.SqlConnection"
+ commandClass="System.Data.SqlClient.SqlCommand"
+ parameterClass="System.Data.SqlClient.SqlParameter"
+ parameterDbTypeClass="System.Data.SqlDbType"
+ parameterDbTypeProperty="SqlDbType"
+ dataAdapterClass="System.Data.SqlClient.SqlDataAdapter"
+ commandBuilderClass=" System.Data.SqlClient.SqlCommandBuilder"
+ usePositionalParameters = "false"
+ useParameterPrefixInSql = "true"
+ useParameterPrefixInParameter = "true"
+ parameterPrefix="@"
+ allowMARS="true"
+ />
<provider name="OleDb1.1"
description="OleDb, provider V1.0.5000.0 in framework .NET V1.1"
enabled="true"
@@ -70,39 +91,42 @@
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""
+ allowMARS="false"
/>
<provider name="OleDb2.0"
- description="OleDb, provider V2.0.0.0 in framework .NET V2"
- enabled="false"
- assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
- connectionClass="System.Data.OleDb.OleDbConnection"
- commandClass="System.Data.OleDb.OleDbCommand"
- parameterClass="System.Data.OleDb.OleDbParameter"
- parameterDbTypeClass="System.Data.OleDb.OleDbType"
- parameterDbTypeProperty="OleDbType"
- dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
- commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
- usePositionalParameters="true"
- useParameterPrefixInSql="false"
- useParameterPrefixInParameter="false"
- parameterPrefix=""
+ description="OleDb, provider V2.0.0.0 in framework .NET V2"
+ enabled="false"
+ assemblyName="System.Data, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
+ connectionClass="System.Data.OleDb.OleDbConnection"
+ commandClass="System.Data.OleDb.OleDbCommand"
+ parameterClass="System.Data.OleDb.OleDbParameter"
+ parameterDbTypeClass="System.Data.OleDb.OleDbType"
+ parameterDbTypeProperty="OleDbType"
+ dataAdapterClass="System.Data.OleDb.OleDbDataAdapter"
+ commandBuilderClass="System.Data.OleDb.OleDbCommandBuilder"
+ usePositionalParameters="true"
+ useParameterPrefixInSql="false"
+ useParameterPrefixInParameter="false"
+ parameterPrefix=""
+ allowMARS="false"
/>
<provider
- name="Odbc1.1"
- description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"
- enabled="true"
- assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
- connectionClass="System.Data.Odbc.OdbcConnection"
- commandClass="System.Data.Odbc.OdbcCommand"
- parameterClass="System.Data.Odbc.OdbcParameter"
- parameterDbTypeClass="System.Data.Odbc.OdbcType"
- parameterDbTypeProperty="OdbcType"
- dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"
- commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"
- usePositionalParameters="true"
- useParameterPrefixInSql="false"
- useParameterPrefixInParameter="false"
- parameterPrefix="@"
+ name="Odbc1.1"
+ description="Odbc, provider V1.0.5000.0 in framework .NET V1.1"
+ enabled="true"
+ assemblyName="System.Data, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"
+ connectionClass="System.Data.Odbc.OdbcConnection"
+ commandClass="System.Data.Odbc.OdbcCommand"
+ parameterClass="System.Data.Odbc.OdbcParameter"
+ parameterDbTypeClass="System.Data.Odbc.OdbcType"
+ parameterDbTypeProperty="OdbcType"
+ dataAdapterClass="System.Data.Odbc.OdbcDataAdapter"
+ commandBuilderClass="System.Data.Odbc.OdbcCommandBuilder"
+ usePositionalParameters="true"
+ useParameterPrefixInSql="false"
+ useParameterPrefixInParameter="false"
+ parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="Odbc2.0"
@@ -120,6 +144,7 @@
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="oracle9.2"
@@ -137,6 +162,7 @@
useParameterPrefixInParameter="false"
parameterPrefix=":"
useDeriveParameters="false"
+ allowMARS="false"
/>
<provider
name="oracle10.1"
@@ -154,6 +180,7 @@
useParameterPrefixInParameter="true"
parameterPrefix=":"
useDeriveParameters="false"
+ allowMARS="false"
/>
<provider
name="oracleClient1.0"
@@ -170,6 +197,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="false"
parameterPrefix=":"
+ allowMARS="false"
/>
<provider
name="ByteFx"
@@ -186,6 +214,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="MySql"
@@ -202,6 +231,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="?"
+ allowMARS="false"
/>
<provider name="SQLite3"
description="SQLite, SQLite.NET provider V0.21.1869.3794"
@@ -220,6 +250,7 @@
parameterPrefix="@"
setDbParameterPrecision="false"
setDbParameterScale="false"
+ allowMARS="false"
/>
<provider
name="Firebird1.7"
@@ -236,6 +267,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix="@"
+ allowMARS="false"
/>
<provider
name="PostgreSql0.98.2.0"
@@ -253,6 +285,7 @@
useParameterPrefixInSql="true"
useParameterPrefixInParameter="true"
parameterPrefix=":"
+ allowMARS="true"
/>
<provider
name="iDb2.10"
@@ -269,6 +302,7 @@
useParameterPrefixInSql="false"
useParameterPrefixInParameter="false"
parameterPrefix=""
+ allowMARS="false"
/>
<provider
name="Informix"
@@ -286,5 +320,6 @@
useParameterPrefixInSql = "false"
useParameterPrefixInParameter = "false"
useDeriveParameters="false"
+ allowMARS="false"
/>
</providers>