Skip to contents

Implementation of the DataStorage R6 class to MS SQL Server backend using a unified API for read/write operations. This provider requires a configured and named ODBC driver to be set up on your system, for example, "ODBC Driver 17 for SQL Server" or "ODBC Driver 18 for SQL Server".

Note that MS SQL Server support requires a subtly different database schema: the time field is stored as a DATETIME rather than a TIMESTAMP.

Super classes

shiny.telemetry::DataStorage -> shiny.telemetry::DataStorageSQLFamily -> DataStorageMSSQLServer

Methods

Inherited methods


Method new()

Initialize the data storage class

Usage

DataStorageMSSQLServer$new(
  username = NULL,
  password = NULL,
  hostname = "127.0.0.1",
  port = 1433,
  dbname = "shiny_telemetry",
  driver = "ODBC Driver 17 for SQL Server",
  trust_server_certificate = "NO"
)

Arguments

username

string with a MS SQL Server username.

password

string with the password for the username.

hostname

string with hostname of the MS SQL Server instance.

port

numeric value with the port number of MS SQL Server instance.

dbname

string with the name of the database in the MS SQL Server instance.

driver

string with the name of the ODBC driver class for MS SQL, for example "ODBC Driver 17 for SQL Server".

trust_server_certificate

string with "NO" or "YES", setting whether or not to trust the server's certificate implicitly.


Method clone()

The objects of this class are cloneable with this method.

Usage

DataStorageMSSQLServer$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

if (FALSE) {
data_storage <- DataStorageMSSQLServer$new(user = "sqlserver",
password = "mysecretpassword", hostname = "servername", port = 1433,
dbname = "my_db", driver = "ODBC Driver 17 for SQL Server",
trust_server_certificate = "NO")

data_storage$insert("example", "test_event", "session1")
data_storage$insert("example", "input", "s1", list(id = "id1"))
data_storage$insert("example", "input", "s1", list(id = "id2", value = 32))

data_storage$insert(
  "example", "test_event_3_days_ago", "session1",
  time = lubridate::as_datetime(lubridate::today() - 3)
)

data_storage$read_event_data()
data_storage$read_event_data(Sys.Date() - 1, Sys.Date() + 1)
data_storage$close()
}