Загрузка данных


try 
{
    $cmd = $Connection.CreateCommand()
    $cmd.CommandText = "DROP TABLE Temp"
    $cmd.ExecuteNonQuery() | Out-Null
}
catch {}

$cmd = $Connection.CreateCommand()

$cmd.CommandText = @"
CREATE TABLE Temp (
    PurchasingDocument TEXT(50),
    Item TEXT(10),
    NameOfVendor TEXT(50),
    DateSendToSupplier DATETIME,
    GoodsSupplierNumber TEXT(100),
    GoodsSupplierName TEXT(100),
    CompleteName TEXT(255)
)
"@

$cmd.ExecuteNonQuery()

foreach ($__row in $FilterTable) {

    $cmd = $Connection.CreateCommand()

    $cmd.CommandText = @"
INSERT INTO Temp
(
    PurchasingDocument,
    Item,
    NameOfVendor,
    DateSendToSupplier,
    GoodsSupplierNumber,
    GoodsSupplierName,
    CompleteName
)
VALUES (?, ?, ?, ?, ?, ?, ?)
"@

    # PurchasingDocument
    $null = $cmd.Parameters.Add("@p1", [System.Data.OleDb.OleDbType]::VarWChar, 50)
    $cmd.Parameters[0].Value = [string]$__row.'Purchasing Document'

    # Item
    $null = $cmd.Parameters.Add("@p2", [System.Data.OleDb.OleDbType]::VarWChar, 10)
    $cmd.Parameters[1].Value = [string]$__row.Item

    # NameOfVendor
    $null = $cmd.Parameters.Add("@p3", [System.Data.OleDb.OleDbType]::VarWChar, 255)
    $cmd.Parameters[2].Value = [string]$__row.'Name Of Vendor'

    # DateSendToSupplier
    $null = $cmd.Parameters.Add("@p4", [System.Data.OleDb.OleDbType]::Date)

    $dateString = [string]$__row.'Date sent to Supplier.'

    if (
        [string]::IsNullOrWhiteSpace($dateString) -or
        $dateString -eq "00/00/0000"
    ) {
        $cmd.Parameters[3].Value = [DBNull]::Value
    }
    else {
        $cmd.Parameters[3].Value = [datetime]::ParseExact(
            $dateString,
            "dd/MM/yyyy",
            [System.Globalization.CultureInfo]::InvariantCulture
        )
    }

    # GoodsSupplierNumber
    $null = $cmd.Parameters.Add("@p5", [System.Data.OleDb.OleDbType]::VarWChar, 100)
    $cmd.Parameters[4].Value = [string]$__row.'Goods supplier numb.'

    # GoodsSupplierName
    $null = $cmd.Parameters.Add("@p6", [System.Data.OleDb.OleDbType]::VarWChar, 100)
    $cmd.Parameters[5].Value = [string]$__row.'Goods supplier name'

    # CompleteName
    $null = $cmd.Parameters.Add("@p7", [System.Data.OleDb.OleDbType]::VarWChar, 255)
    $cmd.Parameters[6].Value = [string]$__row.'Complete name'

    $cmd.ExecuteNonQuery() | Out-Null
}