Ready to get started?

Download a free trial of the Sage 300 Driver to get started:

 Download Now

Learn more:

Sage 300 Icon Sage 300 JDBC Driver

Rapidly create and deploy powerful Java applications that integrate with Sage 300.

How to connect to Sage 300 Data with Squirrel SQL client



Connect to Sage 300 data and execute queries in the Squirrel SQL Client.

The CData JDBC Driver for Sage 300 enables you to execute queries to Sage 300 data in tools like Squirrel SQL Client. In this article, you will create a JDBC data source for Sage 300 data and execute queries.

Add the JDBC Driver for Sage 300

Follow the steps below to add the driver JAR.

  1. In Squirrel SQL, click Windows -> View Drivers.
  2. Click the plus icon to open the Add Driver wizard.
  3. In the Name box, enter a user-friendly name for the driver; for example, CData JDBC Driver for Sage 300.
  4. In the Example URL box, enter jdbc:sage300:
  5. In the Extra Class Path tab, click Add.
  6. In the file explorer dialog that opens, select the JAR file for the driver, located in the lib subfolder of the installation directory.
  7. Click List Drivers to populate the Class Name menu with the class name for the driver, cdata.jdbc.sage300.Sage300Driver.

Define Connection Properties

Follow the steps below to save connection properties in the driver alias.

  1. Click Windows -> View Aliases.
  2. In the pane that lists the aliases, click the plus icon.
  3. In the Add Alias wizard that opens, the following fields are required for the JDBC driver:

    • Name: Enter a name for the alias; for example, CData Sage 300 Source.
    • Driver: Select the CData JDBC Driver for Sage 300.
    • URL: Enter jdbc:sage300:
    • Password: Enter the password, which is added to the JDBC URL.
  4. If you want to define any additional properties, click Properties.
  5. In the Driver properties tab of the dialog that appears, select the Use driver properties checkbox.
  6. In the Specify column, select the checkboxes for the required connection properties.

    Sage 300 requires some initial setup in order to communicate over the Sage 300 Web API.

    • Set up the security groups for the Sage 300 user. Give the Sage 300 user access to the option under Security Groups (per each module required).
    • Edit both web.config files in the /Online/Web and /Online/WebApi folders; change the key AllowWebApiAccessForAdmin to true. Restart the webAPI app-pool for the settings to take.
    • Once the user access is configured, click https://server/Sage300WebApi/ to ensure access to the web API.

    Authenticate to Sage 300 using Basic authentication.

    Connect Using Basic Authentication

    You must provide values for the following properties to successfully authenticate to Sage 300. Note that the provider reuses the session opened by Sage 300 using cookies. This means that your credentials are used only on the first request to open the session. After that, cookies returned from Sage 300 are used for authentication.

    • Url: Set this to the url of the server hosting Sage 300. Construct a URL for the Sage 300 Web API as follows: {protocol}://{host-application-path}/v{version}/{tenant}/ For example, http://localhost/Sage300WebApi/v1.0/-/.
    • User: Set this to the username of your account.
    • Password: Set this to the password of your account.

    Below is a typical connection string:

    jdbc:sage300:User=SAMPLE;Password=password;URL=http://127.0.0.1/Sage300WebApi/v1/-/;Company=SAMINC;
  7. In the dialog that appears after you click OK, click connect to test the connection.

Discover Schemas and Query Sage 300 Data

After the metadata has loaded, a new tab for the Sage 300 data source is displayed. On the Objects subtab, you can discover schema information, such as the available tables and views.

To view table data, select the table on the Objects tab. The table data is then loaded in a grid on the Content tab.

To execute an SQL query, enter the query on the SQL tab and then click Run SQL (the runner icon). For example:

SELECT InvoiceUniquifier, ApprovedLimit FROM OEInvoices WHERE AllowPartialShipments = 'Yes'