Stonefield Query SDK |
DataEngine.GetObjectVersion |
Parameters
A reference to the Stonefield Query Application object, the name of the object, and the object type: "field," "table," or "relation."
Return Value
The version number of the object as a string or a blank string if there is no version number.
Example
Suppose the first two characters of the table name represent the module the table belongs to (for example, ARCUS is the customers table in the AR, or Accounts Receivable, module). Also suppose a table named CSAPP contains the version number of each module. The following code returns the version number from the current database for the module the specified table or field belongs to. Note that rather than opening CSAPP each time, this code assumes it was opened in the DataEngine.GetCustomMetaData script for performance reasons.
Visual FoxPro
DataEngine.GetCustomMetaData:
lparameters toApplication as SQApplication loDatabase = SQApplication.DataEngine.Databases.GetMainDatabase() loDatabase.ExecuteSQLStatement('select MODULE, VERSION from CSAPP', , 'CSAPP') return
DataEngine.GetObjectVersion:
lparameters toApplication as SQApplication, tcObjectName, tcObjectType local lcModule, lcVersion lcModule = left(tcObjectName, 2) select CSAPP locate for MODULE = lcModule lcVersion = VERSION return lcVersion
VBScript
DataEngine.GetCustomMetaData:
function Main(Application) dim Database, XMLDOM set Database = Application.DataEngine.Databases.GetMainDatabase() VersionXML = Database.ExecuteSQLStatement("select MODULE, VERSION from CSAPP") set XMLDOM = createobject("MSXML.DOMDocument") XMLDOM.ASync = False XMLDOM.LoadXML(VersionXML) Application.AddProperty "VersionXML", XMLDOM Main = True end function
DataEngine.GetObjectVersion:
function Main(Application, ObjectName, ObjectType) dim Node Module = left(ObjectName, 2) NodePath = "/DataSet/_resultset[@module='" + Module + "']" Node = Application.VersionXML.selectSingleNode(NodePath) Main = Node.getAttribute("version") end function
JavaScript
DataEngine.GetCustomMetaData:
function Main(Application) { var Database, VersionXML, XMLDOM ; Database = Application.DataEngine.Databases.GetMainDatabase() ; VersionXML = Database.ExecuteSQLStatement('select MODULE, VERSION from CSAPP') ; XMLDOM = new ActiveXObject('MSXML.DOMDocument') ; XMLDOM.ASync = false ; XMLDOM.LoadXML(VersionXML) ; Application.AddProperty('VersionXML', XMLDOM) ; return true ; }
DataEngine.GetObjectVersion:
function Main(Application, ObjectName, ObjectType) { var Module, NodePath, Node, Version ; Module = left(ObjectName, 2) ; NodePath = '/DataSet/_resultset[@module="' + Module + '"]' Node = Application.VersionXML.selectSingleNode(NodePath) ; Version = Node.getAttribute("version") ; return Version }
C#
Please note that the method in this script must be named DataEngine_GetObjectVersion.
public static string DataEngine_GetObjectVersion(SFQApplication sfqApplication, string objectName, string objectType) { string version = String.Empty; XmlDocument doc = null; try { doc = (XmlDocument)sfqApplication.GetProperty("VersionXML"); } catch(Exception e) { } if(doc == null) { Database database = sfqApplication.DataEngine.Databases.GetMainDatabase(); string selectStmt = "select MODULE, VERSION from CSAPP"; string resultSet = database.ExecuteSQLStatement(selectStmt); doc = new XmlDocument(); doc.LoadXml(resultSet); sfqApplication.AddProperty("VersionXML", doc); } string module = objectName.Substring(0, 2); string nodePath = "/DataSet/_resultset[@module=\"" + module + "\"]"; XmlNode node = doc.SelectSingleNode(nodePath); if (node != null) { version = node.Attributes["version"].Value; } return version; }
VB.NET
Please note that the method in this script must be named DataEngine_GetObjectVersion.
public shared function DataEngine_GetObjectVersion(sfqApplication as SFQApplication, _ objectName as string, objectType as string) as string Dim version As String = String.Empty Dim doc As XmlDocument = Nothing Try doc = sfqApplication.GetProperty("VersionXML") Catch e As Exception End Try If (doc Is Nothing) Then Dim database As Database = sfqApplication.DataEngine.Databases.GetMainDatabase() Dim selectStmt As String = "select MODULE, VERSION from CSAPP" Dim resultSet As String = database.ExecuteSQLStatement(selectStmt) doc = New XmlDocument() doc.LoadXml(resultSet) sfqApplication.AddProperty("VersionXML", doc) End If Dim moduleName as string = objectName.Substring(0, 2) Dim nodePath As String = "/DataSet/_resultset[@module=""" + moduleName + """]" Dim node As XmlNode = doc.SelectSingleNode(nodePath) If (Not node Is Nothing) Then version = node.Attributes.GetNamedItem("version").Value End If Return version End Function
See Also
DataEngine.GetCustomMetaData | Scripts
Last Updated: 01/13/12 |