Read Database Data

Use the OPCSystems.dll assembly to call GetDatabaseData to return a DataTable of values from a database table or view.

  • The GetDatabaseData function returns a DataTable of values from the local or remote service by obtaining database values where the service is running.
  • Returns blank DataTable if service is not reachable.
  • DBProvider is the database provider type to use.
  • DBServer is the database server to connect to. Not applicable for MS Access and Oracle.
  • TableOrView is the table name or view name to query the data from.
  • MSSQLWindowsAuthentication – when connecting with SQL Server use Windows Authentication. When false specify the DBUser and DBPassword for SQL user login.
  • DBUser is the user name for security authentication. Not applicable if using SQL Server and MSSQLWindowsAuthentication is set to true.
  • DBPassword is the password for security authentication. Not applicable if using SQL Server and MSSQLWindowsAuthentication is set to true.
  • FieldNames is a string array containing the field names to query from the table for view.
  • DataTypes is an array of field data types for the fields.
  • UseDates will enable using the StartDate and EndDate.
  • StartDate as the start date and time of history to retrieve.
  • EndDate as the end date and time of history to retrieve.
  • QueryString is the WHERE condition to append to the query. When blank it is not used.
  • NetworkNode is the name of the network node of the OPC Systems Service to connect to. Leave blank for localhost connection.
  • ErrorString will be set to Success when function is successful and an error message when in error.
  • RemoteSCADAHostingName is the name of the Live Data Cloud OPC Systems Service to connect to.

VB

        Private Sub ButtonGetDatabaseData_Click(sender As System.Object, e As System.EventArgs) Handles ButtonGetDatabaseData.Click
        Dim m_OPCSystemsComponent1 As New OPCSystems.OPCSystemsComponent

        Dim returnedDataTable As DataTable

        Dim localDBProvider As OPCSystems.OPCSystemsComponent.DBProviderTypes = OPCSystems.OPCSystemsComponent.DBProviderTypes.SQLServer
        Dim localDBServer As String = "OAS_SONY\SQLOAS"
        Dim database As String = "TestDB"
        Dim table As String = "TestCont"
        Dim useWindowsAuthentication As Boolean = True
        Dim user As String = ""
        Dim password As String = ""

        Dim FieldNames(3) As String
        FieldNames(0) = "Ramp_Value"
        FieldNames(1) = "Value01_Value"
        FieldNames(2) = "Value02_Value"
        FieldNames(3) = "Value03_Value"


        Dim FieldDataTypes(3) As OPCSystems.OPCSystemsComponent.FieldDataTypes
        FieldDataTypes(0) = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData
        FieldDataTypes(1) = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData
        FieldDataTypes(2) = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData
        FieldDataTypes(3) = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData

        Dim useStartAndEndDates As Boolean = True
        Dim dateTimeFieldName As String = "DateAndTime"
        Dim endDate As Date = Now
        Dim startDate As Date = endDate.AddYears(-1)

        Dim networkNode As String = "localhost"
        Dim errorString As String = ""

        returnedDataTable = m_OPCSystemsComponent1.GetDatabaseData(localDBProvider, localDBServer, database, table, useWindowsAuthentication, user, password, FieldNames, FieldDataTypes, useStartAndEndDates, dateTimeFieldName, startDate, endDate, "", networkNode, errorString)

        DataGridView1.DataSource = returnedDataTable
    End Sub

C#

 private void ButtonGetDatabaseData_Click(object sender, System.EventArgs e)
              {
			OPCSystems.OPCSystemsComponent m_OPCSystemsComponent1 = new OPCSystems.OPCSystemsComponent();

			DataTable returnedDataTable = null;

			OPCSystems.OPCSystemsComponent.DBProviderTypes localDBProvider = OPCSystems.OPCSystemsComponent.DBProviderTypes.SQLServer;
			string localDBServer = "OAS_SONY\\SQLOAS";
			string database = "TestDB";
			string table = "TestCont";
			bool useWindowsAuthentication = true;
			string user = "";
			string password = "";

			string[] FieldNames = new string[4];
			FieldNames[0] = "Ramp_Value";
			FieldNames[1] = "Value01_Value";
			FieldNames[2] = "Value02_Value";
			FieldNames[3] = "Value03_Value";


			OPCSystems.OPCSystemsComponent.FieldDataTypes[] FieldDataTypes = new OPCSystems.OPCSystemsComponent.FieldDataTypes[4];
			FieldDataTypes[0] = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData;
			FieldDataTypes[1] = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData;
			FieldDataTypes[2] = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData;
			FieldDataTypes[3] = OPCSystems.OPCSystemsComponent.FieldDataTypes.DoubleFloatData;

			bool useStartAndEndDates = true;
			string dateTimeFieldName = "DateAndTime";
			DateTime endDate = DateTime.Now;
			DateTime startDate = endDate.AddYears(-1);

			string networkNode = "";
			string errorString = "";

			returnedDataTable = m_OPCSystemsComponent1.GetDatabaseData(localDBProvider, localDBServer, database, table, useWindowsAuthentication, user, password, FieldNames, FieldDataTypes, useStartAndEndDates, dateTimeFieldName, startDate, endDate, "", networkNode, errorString);

			DataGridView1.DataSource = returnedDataTable;
              }