# Datasources

(datasources)

## Overview

`Datasources` in Servoy provide a structured way to interact with various types of data sources, such as database tables, in-memory tables, views, and stored procedures. These `datasources` are accessible through the `datasources` efficient development.

`Datasources` include types like `DBDataSource`, `MemDataSource`, `ViewDataSource`, `SPDataSource`, and `MenuDataSource`, each catering to a specific use case. For example, `db` is used for server/table-based data sources, `mem` for in-memory tables, and `view` for view foundset data sources. Stored procedures are managed under the `sp` property, with server-side configuration enabling their use. The `menu` property handles menu-related datasources.

For details related to datasources, refer to the specific sections in the Servoy documentation:

[DBDataSourceServer](https://docs.servoy.com/reference/servoycore/dev-api/datasources/dbdatasourceserver)

[Create In Memory DataSource](https://docs.servoy.com/guides/develop/application-design/data-modeling/in-memory-databases#create-in-memory-datasource)

[View Foundset Datasource](https://docs.servoy.com/guides/develop/application-design/data-modeling/view-datasource)

## **Returned Types**

[SPDataSource](/reference/servoycore/dev-api/datasources/spdatasource.md),[SPDataSourceServer](/reference/servoycore/dev-api/datasources/spdatasourceserver.md),[DBDataSource](/reference/servoycore/dev-api/datasources/dbdatasource.md),[MemDataSource](/reference/servoycore/dev-api/datasources/memdatasource.md),[JSDataSource](/reference/servoycore/dev-api/datasources/jsdatasource.md),[JSConnectionDefinition](/reference/servoycore/dev-api/datasources/jsconnectiondefinition.md),[DBDataSourceServer](/reference/servoycore/dev-api/datasources/dbdatasourceserver.md),[ViewDataSource](/reference/servoycore/dev-api/datasources/viewdatasource.md),[MenuDataSource](/reference/servoycore/dev-api/datasources/menudatasource.md),

## Properties Summarized

| Type                                                                          | Name          | Summary                                             |
| ----------------------------------------------------------------------------- | ------------- | --------------------------------------------------- |
| [DBDataSource](/reference/servoycore/dev-api/datasources/dbdatasource.md)     | [db](#db)     | Scope property for server/table based data sources. |
| [MemDataSource](/reference/servoycore/dev-api/datasources/memdatasource.md)   | [mem](#mem)   | Scope property for in-memory data sources.          |
| [MenuDataSource](/reference/servoycore/dev-api/datasources/menudatasource.md) | [menu](#menu) | Scope property for view foundset data sources.      |
| [SPDataSource](/reference/servoycore/dev-api/datasources/spdatasource.md)     | [sp](#sp)     | Scope property for stored procedures.               |
| [ViewDataSource](/reference/servoycore/dev-api/datasources/viewdatasource.md) | [view](#view) | Scope property for view foundset data sources.      |

## Methods Summarized

| Type                                                                      | Name                               | Summary                                                                                   |
| ------------------------------------------------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------- |
| [JSDataSource](/reference/servoycore/dev-api/datasources/jsdatasource.md) | [get(datasource)](#get-datasource) | Scope getter for a datasource node based on a JSFoundset/JSRecord/ViewFoundset/ViewRecord |
| [JSDataSource](/reference/servoycore/dev-api/datasources/jsdatasource.md) | [get(datasource)](#get-datasource) | Scope getter for a datasource node based on datasource string.                            |

## Properties Detailed

### db

Scope property for server/table based data sources.

**Type**\
[DBDataSource](/reference/servoycore/dev-api/datasources/dbdatasource.md)

**Sample**

```js
datasources.db.example_data.orders
```

### mem

Scope property for in-memory data sources.

**Type**\
[MemDataSource](/reference/servoycore/dev-api/datasources/memdatasource.md)

**Sample**

```js
datasources.mem['myds']
```

### menu

Scope property for view foundset data sources.

**Type**\
[MenuDataSource](/reference/servoycore/dev-api/datasources/menudatasource.md)

**Sample**

```js
datasources.view['myds']
```

### sp

Scope property for stored procedures.\
This will list the stored procedures of server that have this property enabled (see server editor).

**Type**\
[SPDataSource](/reference/servoycore/dev-api/datasources/spdatasource.md)

**Sample**

```js
datasources.sp.servername.mystoredproc();
```

### view

Scope property for view foundset data sources.

**Type**\
[ViewDataSource](/reference/servoycore/dev-api/datasources/viewdatasource.md)

**Sample**

```js
datasources.view['myds']
```

## Methods Detailed

### get(datasource)

Scope getter for a datasource node based on a JSFoundset/JSRecord/ViewFoundset/ViewRecord

**Parameters**

* [Object](/reference/servoycore/dev-api/js-lib/object.md) **datasource** ;

**Returns:** [JSDataSource](/reference/servoycore/dev-api/datasources/jsdatasource.md) a JSDataSource based on parameter

**Sample**

```js
datasources.get(recordOrFoundset)
```

### get(datasource)

Scope getter for a datasource node based on datasource string.

**Parameters**

* [String](/reference/servoycore/dev-api/js-lib/string.md) **datasource** ;

**Returns:** [JSDataSource](/reference/servoycore/dev-api/datasources/jsdatasource.md) a JSDataSource based on parameter

**Sample**

```js
datasources.get(datasource)
```

***


---

# Agent Instructions: 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:

```
GET https://docs.servoy.com/reference/servoycore/dev-api/datasources.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
