powershell:sqlite_import_csv
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン | |||
powershell:sqlite_import_csv [2025/09/29 00:21] – mikoto | powershell:sqlite_import_csv [2025/10/14 00:49] (現在) – mikoto | ||
---|---|---|---|
行 59: | 行 59: | ||
**$conn.BeginTransaction()**でトランザクションを開始し、**Comit()**で処理を確定する。 | **$conn.BeginTransaction()**でトランザクションを開始し、**Comit()**で処理を確定する。 | ||
<code powershell> | <code powershell> | ||
- | # ツールのRootDirectory | + | Add-Type -AssemblyName System.Windows.Forms |
- | $psRoot = " | + | Add-Type -AssemblyName System.Drawing |
# sqlite3.dll を読み込む | # sqlite3.dll を読み込む | ||
- | Add-Type -Path "$psRoot\dll\System.Data.SQLite.dll" | + | Add-Type -Path "path\to\dll\System.Data.SQLite.dll" |
# DBのファイルパス(無ければ新規作成) | # DBのファイルパス(無ければ新規作成) | ||
- | $dbFile = "$psRoot\databases\file.db" | + | $dbFile = "path\to\database\database.db" |
$connStr = "Data Source=$dbFile; | $connStr = "Data Source=$dbFile; | ||
- | |||
- | # CSV読み込み | ||
- | $csvData = Import-Csv -Path " | ||
# SQLite 接続オブジェクトを作成 | # SQLite 接続オブジェクトを作成 | ||
行 75: | 行 73: | ||
$conn.Open() | $conn.Open() | ||
- | # 処理の高速化のためトランザクション開始 | + | # CSVデータの読み込み |
- | $tran = $conn.BeginTransaction() | + | $dialog = New-Object System.Windows.Forms.OpenFileDialog |
- | $cmd = $conn.CreateCommand() | + | $dialog.Filter = " |
- | $cmd.CommandText = " | + | $dialog_result = $dialog.ShowDialog() |
+ | |||
+ | if ($dialog_result -eq [System.Windows.Forms.DialogResult]:: | ||
+ | $csvPath = $dialog.FileName | ||
+ | $csvData = Import-Csv -Path $csvPath | ||
+ | |||
+ | | ||
+ | $tran = $conn.BeginTransaction() | ||
+ | $cmd = $conn.CreateCommand() | ||
+ | | ||
+ | | ||
+ | |||
+ | # パラメータを一度だけ作成する | ||
+ | $null = $cmd.Parameters.Add(" | ||
+ | $null = $cmd.Parameters.Add(" | ||
+ | $null = $cmd.Parameters.Add(" | ||
+ | |||
+ | foreach ($row in $csvData) { | ||
+ | $cmd.Parameters[" | ||
+ | $cmd.Parameters[" | ||
+ | $cmd.Parameters[" | ||
+ | $cmd.ExecuteNonQuery() | Out-Null | ||
+ | } | ||
- | # パラメータを一度だけ作成 | + | |
- | $null = $cmd.Parameters.Add(" | + | $tran.Commit() |
- | $null = $cmd.Parameters.Add(" | + | |
- | $null = $cmd.Parameters.Add(" | + | |
- | foreach ($row in $csvData) | + | } else { |
- | | + | [System.Windows.Forms.MessageBox]::Show("処理を中止しました。") |
- | $cmd.Parameters[" | + | |
- | $cmd.Parameters["@url"].Value | + | |
- | $cmd.ExecuteNonQuery() | Out-Null | + | |
} | } | ||
- | # トランザクションをコミット | ||
- | $tran.Commit() | ||
$conn.Close() | $conn.Close() | ||
</ | </ |
powershell/sqlite_import_csv.1759072868.txt.gz · 最終更新: 2025/09/29 00:21 by mikoto