Ready to get started?

Learn more about the CData JDBC Driver for SQL Analysis Services or download a free trial:

Download Now

Query SQL Analysis Services Data in ColdFusion

Write standard ColdFusion data access code to connect to SQL Analysis Services data.

The CData JDBC Driver for SQL Analysis Services seamlessly integrates connectivity to SQL Analysis Services data with the rapid development tools in ColdFusion. This article shows how to connect to SQL Analysis Services data in ColdFusion and query SQL Analysis Services tables.

Create a JDBC Data Source for SQL Analysis Services in ColdFusion

The JDBC data source enables you to execute SQL from standard ColdFusion tags like cfquery and CFScript like executeQuery.

  1. Copy the driver JAR and .lic file from the installation directory onto the ColdFusion classpath. For example, copy the files into C:\MyColdFusionDirectory\cfusion\wwwroot\WEB-INF\lib. Or, open the Java and JVM page in the ColdFusion Administrator and enter the path to the files in the ColdFusion Class Path box.

    The JAR and license for the driver are located in the lib subfolder of the installation directory.

    Restart the server after this step.

  2. Add the driver as a data source:

    From the ColdFusion administrator interface, expand the Data & Services node and click Data Sources. In the Add New Data Source section, enter a name for the data source and select Other in the Driver menu.

  3. Populate the driver properties:

    • JDBC URL: Enter connection properties in the JDBC URL. The JDBC URL begins with jdbc:ssas: and is followed by the connection properties in a semicolon-separated list of name=value pairs.

      To connect, provide authentication and set the Url property to a valid SQL Server Analysis Services endpoint. You can connect to SQL Server Analysis Services instances hosted over HTTP with XMLA access. See the Microsoft documentation to configure HTTP access to SQL Server Analysis Services.

      To secure connections and authenticate, set the corresponding connection properties, below. The data provider supports the major authentication schemes, including HTTP and Windows, as well as SSL/TLS.

      • HTTP Authentication

        Set AuthScheme to "Basic" or "Digest" and set User and Password. Specify other authentication values in CustomHeaders.

      • Windows (NTLM)

        Set the Windows User and Password and set AuthScheme to "NTLM".

      • Kerberos and Kerberos Delegation

        To authenticate with Kerberos, set AuthScheme to NEGOTIATE. To use Kerberos delegation, set AuthScheme to KERBEROSDELEGATION. If needed, provide the User, Password, and KerberosSPN. By default, the data provider attempts to communicate with the SPN at the specified Url.

      • SSL/TLS:

        By default, the data provider attempts to negotiate SSL/TLS by checking the server's certificate against the system's trusted certificate store. To specify another certificate, see the SSLServerCert property for the available formats.

      You can then access any cube as a relational table: When you connect the data provider retrieves SSAS metadata and dynamically updates the table schemas. Instead of retrieving metadata every connection, you can set the CacheLocation property to automatically cache to a simple file-based store.

      See the Getting Started section of the CData documentation, under Retrieving Analysis Services Data, to execute SQL-92 queries to the cubes.

      Built-in Connection String Designer

      For assistance in constructing the JDBC URL, use the connection string designer built into the SQL Analysis Services JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.

      java -jar cdata.jdbc.ssas.jar

      Fill in the connection properties and copy the connection string to the clipboard.

      A typical JDBC URL is below:

      jdbc:ssas:User=myuseraccount;Password=mypassword;URL=http://localhost/OLAP/msmdpump.dll;
    • Driver Class: Enter the driver class. The driver class is cdata.jdbc.ssas.SSASDriver.
    • Driver Name: Enter a user-defined name for the driver.
    • Username: Enter the username used to authenticate.
    • Password: Enter the password used to authenticate.

You can now test the connection by enabling the CData SQL Analysis Services data source in the Actions column. After reporting a status of OK, the SQL Analysis Services data source is ready for use.

Execute Queries

The cfquery tag can pass SQL statements to SQL Analysis Services, including INSERT, UPDATE, and DELETE.. Use the cfqueryparam tag to create parameterized queries and prevent SQL injection through the query string.

<cfquery name="SSASQuery" dataSource="CDataSSAS"> SELECT * FROM Adventure_Works WHERE Fiscal_Year = <cfqueryparam value="#Fiscal_Year#" cfsqltype="cf_sql_varchar"> </cfquery> <cfdump var="#SSASQuery#">

Below is the equivalent in CFScript:


<cfscript>
result = queryExecute(
  "SELECT * FROM Adventure_Works WHERE Fiscal_Year = ?", 
  [
    { value="FY 2008", cfsqltype="cf_sql_varchar" }
  ],
  { datasource="CDataSSAS" }
);

writeDump( var= result );
</cfscript> 

You can then make requests to your .cfm like the following:

http://MyServer:8500/query.cfm?Fiscal_Year=FY 2008