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;
}
