What Is Not Supported?
A frequently asked question that may also relate to troubleshooting is what functions are not supported by Historian OLE DB provider. Some of these unsupported items include:
- Concatenation in SQL statements. For example, this syntax does not work:
SELECT * FROM ihtags WHERE tagname= "MY_SERVER." + ihtags.Tagname
- Calculation in SQL statements. For example, this syntax does not work:
SELECT * FROM ihtags WHERE ihrawdata.value * 2 > ihtags.LoEngineeringUnits
- SQL inserts, updates, deletes, or commits.
- Ordering by columns not specified in the
SELECT
statement. - The semicolon (
;
) as a separator betweenSET
andSELECT
statements (which is commonly used in DTS and Oracle). Only a space or line break is necessary. - Nested
SELECT
statements. - The
UCASE
macro or other similar SQL syntax. ASYNC
executes in ADO and Visual Basic.- Bookmarks in ADO and Visual Basic.
- Table creation in SQL.
- The
UNION
statement in SQL. - The
HAVING
clause in aSELECT
statement. - Using comments in a query.
- The
DISTINCT
clause in aggregate functions. For example, this syntax does not work:SELECT Topic, count(DISTINCT *), sum(DISTINCT messagenumber), avg(DISTINCT messagenumber) FROM ihmessages GROUP BY topic ORDER BY Topic
- A literal on the left side of a comparison operator. SQL-92 standards support this feature, but GE Intelligent Platforms does not currently support it. For example, this syntax does not work:
SELECT DISTINCT tagname FROM ihRawData WHERE 50>Value
- Analysis of the ihTrend table in Crystal Reports or the Microsoft SQL Server DTS application.
- Command or connect timeouts (
Connection.ConnectTimeout
,Connection.CommandTimeout
, orCommand.CommandTimeout
) in Visual Basic. For example, this syntax does not work:SET adoConn = New ADODB.Connection adoConn.ConnectionString = "Provider=ihOLEDB.iHistorian.1;User Id=;Password=" adoConn.ConnectionTimeout = 5 ' does nothing adoConn.CommandTimeout = 5 ' does nothing SET cmdTestTimer = New ADODB.Command SET cmdTestTimer.ActiveConnection = adoConn cmdTestTimer.CommandText = "SELECT * FROM ihtags" cmdTestTimer.CommandType = adCmdText cmdTestTimer.CommandTimeout = 15 ' does nothing