批量导入

OscarImportHandler 对象提供了快速的大容量数据导入功能.该对象执行的 insert bulk 协议,可以将数据以二进制流的形式导入到神通数据库中.在性能与健壮性方面,insert bulk 协议比旧的import协议有了很大的提高,并且执行insert bulk 协议导入的数据可以自动维护索引,检查约束等.建议用户优先使用 OscarImportHandler 对象来进行大容量数据的导入.

OscarImportHandler 对象提供了三个重载的 ExecuteImport 方法以执行导入数据的操作,返回结果为导入数据的行数.

构造函数中可以通过给定表名,模式名,或者 TABLEOID 进行指定数据表来操作.

SQL
create table if not exists ImportTest(Id int,Name varchar(64));
示例 1
[TestMethod]
public void TestMethodOscarImportCommand1()
{
    try
    {
        using (var importCommand = _connect.CreateImportHandler("ImportTest"))
        {
            for (var i = 1; i <= 10000; i++)
            {
                importCommand.SetInt(0, i);
                importCommand.SetString(1, i.ToString());
                importCommand.EndRow();
            }
            importCommand.ExecuteImport();
        }
    }
    catch (Exception ex)
    {
        Assert.Fail(ex.Message);
    }
}

[TestMethod]
public void TestMethodOscarImportHandler()
{
    try
    {
        using (var importCommand = new OscarImportHandler(_connect, "ImportTest"))
        {
            for (var i = 1; i <= 10000; i++)
            {
                importCommand.SetInt(0, i);
                importCommand.SetString(1, i.ToString());
                importCommand.EndRow();
            }
            importCommand.ExecuteImport();
        }
    }
    catch (Exception ex)
    {
        Assert.Fail(ex.Message);
    }
}

[TestMethod]
public void TestMethodOscarImportHandler1()
{
    try
    {
        using (var importCommand = new OscarImportHandler(_connect, "ImportTest"))
        {
            for (var i = 1; i <= 10000; i++)
            {
                importCommand.AddRow(new object[] { i, i.ToString() });
            }
            importCommand.ExecuteImport();
        }
    }
    catch (Exception ex)
    {
        Assert.Fail(ex.Message);
    }
}
扩展
public sealed class OscarConnection
{
    ...
    public OscarImportHandler CreateImportHandler(string tableName);
    public OscarImportHandler CreateImportHandler(string schemaName, string tableName);
    ...
}
继承

OscarImportHandler 继承 IDisposable

引用