Functions/GenXdev.Data.SQLite/Invoke-SQLiteStudio.ps1
################################################################################ <# .SYNOPSIS Executes SQLite queries using specified connection parameters. .DESCRIPTION This function allows execution of SQLite queries either through a connection string or direct database file path. It supports parameterized queries and transaction isolation levels. .PARAMETER ConnectionString The connection string to the SQLite database. .PARAMETER DatabaseFilePath The path to the SQLite database file. .PARAMETER Queries One or more SQL queries to execute against the database. .PARAMETER SqlParameters Optional parameters for the query, provided as hashtables. Format: @{"Id" = 1; "Name" = "John"} .PARAMETER IsolationLevel The transaction isolation level to use. Defaults to ReadCommitted. .EXAMPLE Invoke-SQLiteStudio -DatabaseFilePath "C:\data\mydb.sqlite" -Queries "SELECT * FROM Users" .EXAMPLE Invoke-SQLiteStudio -ConnectionString "Data Source=mydb.sqlite" ` -q "SELECT * FROM Users WHERE Id = @Id" ` -SqlParameters @{"Id" = 1} #> function Invoke-SQLiteStudio { [CmdletBinding(DefaultParameterSetName = "Default")] param ( ########################################################################### [Parameter( Position = 0, Mandatory = $true, ParameterSetName = 'ConnectionString', HelpMessage = 'The connection string to the SQLite database.' )] [string]$ConnectionString, ########################################################################### [Parameter( Position = 0, Mandatory = $true, ParameterSetName = 'DatabaseFilePath', HelpMessage = 'The path to the SQLite database file.' )] [string]$DatabaseFilePath, ########################################################################### [Alias("q", "Value", "Name", "Text", "Query")] [Parameter( Mandatory = $true, Position = 1, ValueFromRemainingArguments = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = 'The query to execute.' )] [string[]]$Queries, ########################################################################### [Alias("parameters")] [Parameter( Mandatory = $false, Position = 2, ValueFromRemainingArguments = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = 'Optional parameters for the query.' )] [System.Collections.Hashtable[]]$SqlParameters, ########################################################################### [Parameter( Mandatory = $false, HelpMessage = 'The isolation level to use. Default is ReadCommitted.' )] [System.Data.IsolationLevel]$IsolationLevel = [System.Data.IsolationLevel]::ReadCommitted ) begin { Write-Verbose "Initializing SQLite connection" } process { Write-Verbose "Processing queries" } end { } } ################################################################################ |