ODBC Driver for Xero

Build 24.0.9060

Executing Queries

This section describes how to execute queries using MySQL remoting from any tool that can connect to MySQL.

When executing queries, use a two-part name, in the format:

[<Schema Name>].[<Table Name>] 
where
  • Schema Name is the name of the system schema or user-defined schema. (This is normally the service name.)
  • Table Name is the name of the table you are copying data from.

SELECT Statements

To create new records:
SELECT * FROM [Xero].[Contacts] WHERE ContactStatus = 'ACTIVE' 
Note: MySQL treats identifiers as case-insensitive, even if the data source supports case-sensitive identifiers. This can be a problem when the database contains multiple tables of the same name in a single schema, because when using MySQL it is not possible to query tables of the same name that only vary by upper or lower case-sensitive (for example, a schema with one table named Account, and a second table named ACCOUNT).

INSERT, UPDATE, and DELETE Statements

To insert, update, or delete a single row of data against a writeable database, use the two-part name. For example:
INSERT INTO [Xero].[Contacts] (ContactStatus) VALUES ('ACTIVE'); 

Bulk Operations

To perform bulk operations, use syntax similar to the following:

You can run a bulk INSERT using a SELECT query in place of a VALUES list.

INSERT INTO [Xero].[Contacts] ([ContactStatus]) 
SELECT [ContactStatus] FROM [Local_Contacts] 
You can run a bulk UPATE using a JOIN with a local table.
UPDATE [Xero].[Contacts]  
INNER JOIN [Local_Contacts] ON [Local_Contacts].[ContactId] = [Xero].[Contacts].[ContactId] 
SET [Xero].[Contacts].[ContactStatus].[Local_ContactStatus] 
You can run a bulk DELETE using the IN filter with sub-SELECT query.
DELETE FROM [Xero].[Contacts WHERE [ContactId] IN (SELECT [ContactId] FROM Local_Contacts) 

Execute Stored Procedures

To execute the stored procedure, use:
Call CreateJob('Insert')

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9060