Connecting F# via ODBC

Motivation:

This is a short example to demonstrate how to access Data Virtuality via an ODBC connection in F#. Please keep in mind that this is not an F#/.NET code and the sample just shows a basic approach for the ODBC connection.

Requirements:

The system which shall access Data Virtuality Server needs to have at least the ODBC drivers installed. A DSN connection is also possible but requires the ODBC drivers as well. They can be obtained from the web server which is implemented in Data Virtuality (see https://datavirtuality.zendesk.com/hc/en-us/articles/115002027906-Components-downloadable-from-DV-site)

Simple code sample:

The following sample creates a connection string based on a DSN. It is then used for a new ODBC connection and the program executes the query “SELECT * FROM dwh.foo” on this connection.

Afterwards, the name of the first column of the result set is retrieved and all values for this column are printed.

open System

open System.Data.Odbc

[<EntryPoint>]

let main argv =

let connectionString = “DSN=DataVirtuality_32_A;username=admin;pw=admin;”

let dvConn = new OdbcConnection(connectionString)

    let qComm = new OdbcCommand(“SELECT * FROM dwh.foo”,dvConn)

qComm.Connection.Open()

let result = qComm.ExecuteReader()

let firstColumn = result.GetName(0)

printfn “%A” firstColumn

while result.Read() do printfn “%A” (result.GetValue(0))

result.Close()

dvConn.Close()

System.Console.ReadKey()

0 // return an integer exit code

The point thing is the connection string which can be build based on a DSN or an ODBC driver

Connect via DSN

let connectionString = "DSN=DataVirtuality_32_A;username=admin;pw=admin;"

 

Connect via Driver and other information

let connectionString = "driver={DataVirtuality ANSI}; server=dv; port=35432; database=datavirtuality; uid=admin;pwd=admin";

1 Like