![]() |
VOOZH | about |
The CData ODBC Driver for HubDB enables out-of-the-box integration with Microsoft's built-in support for ODBC. The ODBC driver instantly integrates connectivity to the real HubDB data with PowerShell.
You can use the .NET Framework Provider for ODBC built into PowerShell to quickly automate integration tasks like replicating HubDB data to other databases. This article shows how to replicate HubDB data to SQL Server in 5 lines of code.
You can also write PowerShell code to execute create, read, update, and delete (CRUD) operations. See the examples below.
If you have not already, first specify connection properties in an ODBC DSN (data source name). This is the last step of the driver installation. You can use the Microsoft ODBC Data Source Administrator to create and configure ODBC DSNs.
There are two authentication methods available for connecting to HubDB data source: OAuth Authentication with a public HubSpot application and authentication with a Private application token.
AuthScheme must be set to "OAuth" in all OAuth flows. Be sure to review the Help documentation for the required connection properties for you specific authentication needs (desktop applications, web applications, and headless machines).
Follow the steps below to register an application and obtain the OAuth client credentials:
Under Scopes, select any scopes you need for your application's intended functionality.
A minimum of the following scopes is required to access tables:
To connect using a HubSpot private application token, set the AuthScheme property to "PrivateApp."
You can generate a private application token by following the steps below:
To connect, set PrivateAppToken to the private application token you retrieved.
The code below shows how to use the DSN to initialize the connection to HubDB data in PowerShell:
$conn = New-Object System.Data.Odbc.OdbcConnection $conn.ConnectionString = "DSN=CData HubDB Source x64"
After you enable caching, you can use the code below to replicate data to SQL Server.
Set the following connection properties to configure the caching database:
CacheProvider: The name of the ADO.NET provider. This can be found in the Machine.config for your version of .NET. For example, to configure SQL Server, enter System.Data.SqlClient.
CacheConnection: The connection string of properties required to connect to the database. Below is an example for SQL Server:
Server=localhost;Database=RSB;User Id=sqltest;Password=sqltest;
The SQL query in the example can be used to refresh the entire cached table, including its schema. Any already existing cache is deleted.
$conn.Open() # Create and execute the SQL Query $SQL = "CACHE DROP EXISTING SELECT * FROM " + $NorthwindProducts $cmd = New-Object System.Data.Odbc.OdbcCommand($sql,$conn) $count = $cmd.ExecuteNonQuery() $conn.Close()
The driver gives you complete control over the caching functionality. See the help documentation for more caching commands and usage examples. See the help documentation for steps to replicate to other databases.
To retrieve HubDB data in PowerShell, call the Fill method of the OdbcDataAdapter method. To execute data manipulation commands, initialize the OdbcCommand object and then call ExecuteNonQuery. Below are some more examples CRUD commands to HubDB through the .NET Framework Provider for ODBC:
$sql="SELECT PartitionKey, Name from NorthwindProducts"
$da= New-Object System.Data.Odbc.OdbcDataAdapter($sql, $conn)
$dt= New-Object System.Data.DataTable
$da.Fill($dt)
$dt.Rows | foreach {
$dt.Columns | foreach ($col in dt{
Write-Host $1[$_]
}
}
$cmd = New-Object System.Data.Odbc.OdbcCommand("UPDATE NorthwindProducts SET Id='1' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()
$cmd = New-Object System.Data.Odbc.OdbcCommand("INSERT INTO NorthwindProducts SET Id='1' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()
$cmd = New-Object System.Data.Odbc.OdbcCommand("DELETE FROM NorthwindProducts WHERE Id = @myid", $conn)
$cmd.Parameters.Add(new System.Data.Odbc.OdbcParameter("myId","001d000000YBRseAAH")
$cmd.ExecuteNonQuery()
Download a free trial of the HubDB ODBC Driver to get started:
Download NowLearn more:
👁 HubDB IconThe HubDB ODBC Driver is a powerful tool that allows you to connect with live data from HubDB, directly from any applications that support ODBC connectivity.
Access HubDB data like you would a database - read, write, and update HubDB 0, etc. through a standard ODBC Driver interface.