> For the complete documentation index, see [llms.txt](https://doc.sysdevmobile.com/kalipso5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.sysdevmobile.com/kalipso5/developing/form/actions/actions-description/group-database/sql-advanced.md).

# SQL Advanced

Runs the specified query in the specified database. This Action allows you to run online queries without having to add Tables to a Database Connection Profile.

Action available for the following operating systems:

![](/files/-MAlQBZuuTnc6hyzKSVQ)

### Parameters

**Execution mode**

* **Online** - The query will be executed in the specified Database.
  * Database Connection Profile - Database Connection Profile where the query will be executed. It's not mandatory to have tables defined in the profile to be able to run this Action.
* **Offline** *-* The query will be executed in the Local Database which holds all the offline Tables.
* **Clear Target When No Data is Returned** - If this option is checked and no record is returned, all the Targets are cleared.
* **SQL Sentence** *\<string> -* SQL query to perform.

**Targets**

* **Column** *\<unquoted string> -* Name of the column to retrieve. This parameter is merely informative and has no impact whatsoever. What matters is the index of the Column. Therefore, this refers to the first returned Column.
* **Target** *\<target> -* Control or Variable where to save the value of the first Column.
* **nth Column** *\<unquoted string> -* Name of the column to retrieve. This parameter is merely informative and has no impact whatsoever. What matters is the index of the Column. Therefore, this refers to the nth returned Column.
* **nth Target** *\<target> -* Control or Variable where to save the value of the nth Column.

### Usage

Consider the following Database Table, and the following Variables:

| **Products** |            |           |
| ------------ | ---------- | --------- |
| **Code**     | **Name**   | **Stock** |
| 1            | Coca Cola  | 100       |
| 2            | Pepsi Cola | 400       |
| 3            | Pork Chops | 300       |

| **Variable** | **Type** | **Value** |
| ------------ | -------- | --------- |
| VAR(0)       | String   | kalipso   |
| VAR(1)       | Numeric  | 0         |
| VAR(2)       | String   | kalipso1  |

Consider that column **Code** is **Numeric**, column **Name** is **String** and column **Stock** is **Numeric**.\
Note that the table showing variables isn't a database table, its purpose is to show only the values and type of each variable.

#### Example 1

|                   |                             |
| ----------------- | --------------------------- |
| Execution mode    | Offline                     |
| Clear Target Data | Yes                         |
| SQL Sentence      | "Select Name from Products" |
| Clear Data        | Yes                         |
|                   |                             |
| **Column**        | **Target**                  |
| Code              | VAR(0)                      |
| Name              | VAR(1)                      |
| Stock             | VAR(2)                      |

*Result:*

| **Variable** | **Type** | **Value** |
| ------------ | -------- | --------- |
| VAR(0)       | Numeric  | 1         |
| VAR(1)       | String   | Coca Cola |
| VAR(2)       | Numeric  | 100       |

#### **Example 2**

|                   |                                                   |
| ----------------- | ------------------------------------------------- |
| Execution mode    | Offline                                           |
| Clear Target Data | No                                                |
| SQL Sentence      | "Select Name from Products Where Products.Code=4" |
| Clear Data        | Yes                                               |
|                   |                                                   |
| **Column**        | **Target**                                        |
| Code              | VAR(0)                                            |
| Name              | VAR(1)                                            |
| Stock             | VAR(2)                                            |

*Result:*

| **Variable** | **Type** | **Value** |
| ------------ | -------- | --------- |
| VAR(0)       | String   | Kalipso   |
| VAR(1)       | Numeric  | 0         |
| VAR(2)       | String   | Kalipso1  |

{% hint style="info" %}
Notice that, as you can see in the examples above, variable types are enforced, except if there is no result of the select operation or when parameter **Clear Data** isn't selected.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.sysdevmobile.com/kalipso5/developing/form/actions/actions-description/group-database/sql-advanced.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
