In a previous post I introduced the POSH_Ado “project” and explained that it is a way to use the same code-base to access several different database platforms. I illustrated it with some sample calls to a SQL Server database using the POSH_Ado_SQLServer module and promised to show the internals of the module later. The time has come. Here’s how POSH_Ado_SQLServer works:
import-module POSH_Ado -args System.Data.SqlClient -Prefix SQLServer -force Export-ModuleMember *-SQLServer*
That’s it. The module simply imports the POSH_Ado module, telling it what ADO.NET provider to use (System.Data.SQLClient) and what prefix to use for the imported cmdlets (SQLServer). It then, in turn, exports all of the cmdlets with the SQLServer prefix.
With that tiny bit of effort you get:
- SQL and NT authenticated connections
- Parameterized queries and stored procedures
- Input and output parameters (no in/out parameters yet, though)
- Ad-hoc or stored connections
What’s missing in this list? I can think of a couple of things (which I need to enter as issues on GitHub):
- In/out parameters
- SQL BulkCopy (it’s there in Adolib…just need to copy it to POSH_Ado_SQLServer
Since the code for POSH_Ado is based on Adolib which targeted SQL Server, it shouldn’t be surprising to see that there’s not much to do to get POSH_Ado to work with SQL Server. In the next “episode”, I’ll connect to MySQL, and the real benefit of POSH_Ado should become apparent.
Let me know what you think in the comments!