# Table Node

## Overview

The `Table` object supports defining table-level events such as `onCreate`, `onUpdate`, and `onDelete`. These methods can control operations by allowing or preventing actions based on custom logic. For instance, `onValidate` can validate a record before insertion, while `onAfterInsert` is triggered post-insertion for additional operations.

Additionally, events like `onSearch` and `onFind` enable customization of foundset searches. Events such as `onFoundSetLoad` and `onFoundsetNextChunk` are useful for managing in-memory or view-based datasets.

The `columns` property allows for detailed configuration and interaction with the database schema.

For a broader understanding of database-level features and capabilities, refer to the [Database Server](https://docs.servoy.com/reference/servoy-developer/solution-explorer/resources/database-servers/database-server) documentation.

## Properties Summarized

| Type                                                                         | Name                | Summary |
| ---------------------------------------------------------------------------- | ------------------- | ------- |
| [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) | [columns](#columns) |         |

## Events Summarized

| Type                                                                                         | Name                                                                                                                      | Summary                                                                                                 |
| -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| void                                                                                         | [onAfterCreate(record)](#onaftercreate-record)                                                                            | A method that is executed after a new record is created.                                                |
| void                                                                                         | [onAfterDelete(record)](#onafterdelete-record)                                                                            | A method that is executed after a delete operation.                                                     |
| void                                                                                         | [onAfterFind()](#onafterfind)                                                                                             | A method that is executed after a foundset has switched to find mode.                                   |
| void                                                                                         | [onAfterInsert(record)](#onafterinsert-record)                                                                            | A method that is executed after an insert operation.                                                    |
| void                                                                                         | [onAfterSearch()](#onaftersearch)                                                                                         | A method that is executed after a search is executed for a foundset.                                    |
| void                                                                                         | [onAfterUpdate(record)](#onafterupdate-record)                                                                            | A method that is executed after an update operation.                                                    |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onCreate()](#oncreate)                                                                                                   | A method that is executed before a record is created.                                                   |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onDelete(record)](#ondelete-record)                                                                                      | A method that is executed before a delete operation.                                                    |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onFind()](#onfind)                                                                                                       | A method that is executed before a foundset is going into find mode.                                    |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onFoundSetBeforeSelectionChange(oldSelection, newSelection)](#onfoundsetbeforeselectionchange-oldselection-newselection) | A method that is executed before a foundset selection change operation.                                 |
| void                                                                                         | [onFoundSetLoad(memOrViewName)](#onfoundsetload-memorviewname)                                                            | A method that is executed when an in memory or viewfoundset table is first touched (by ui or scripting) |
| [JSDataSet](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsdataset) | [onFoundsetNextChunk(inmemDataSourceName, sizeHint)](#onfoundsetnextchunk-inmemdatasourcename-sizehint)                   | A method that can be used to load extra data in an in memory datasource.                                |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onInsert(record, recordMarkers, stateObject)](#oninsert-record-recordmarkers-stateobject)                                | A method that is executed before an insert operation.                                                   |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onSearch(clearLastResults, reduceSearch)](#onsearch-clearlastresults-reducesearch)                                       | A method that is executed before search() is called on a foundset in find mode.                         |
| [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)               | [onUpdate(record, recordMarkers, stateObject)](#onupdate-record-recordmarkers-stateobject)                                | A method that is executed before an update operation.                                                   |
| void                                                                                         | [onValidate(record, recordMarkers, stateObject)](#onvalidate-record-recordmarkers-stateobject)                            | A method that is executed before an insert operation.                                                   |

## Properties Detailed

### columns

**Type**\
[Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object)

## Events Detailed

### onAfterCreate(record)

A method that is executed after a new record is created.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that is created

**Returns:** void

### onAfterDelete(record)

A method that is executed after a delete operation.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that is deleted

**Returns:** void

### onAfterFind()

A method that is executed after a foundset has switched to find mode.

**Returns:** void

### onAfterInsert(record)

A method that is executed after an insert operation.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that is inserted

**Returns:** void

### onAfterSearch()

A method that is executed after a search is executed for a foundset.

**Returns:** void

### onAfterUpdate(record)

A method that is executed after an update operation.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that is updated

**Returns:** void

### onCreate()

A method that is executed before a record is created. The method can block the creation by returning false.

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onDelete(record)

A method that is executed before a delete operation. The method can block the delete operation by returning false.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that will be deleted

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onFind()

A method that is executed before a foundset is going into find mode. The method can block the mode change.

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onFoundSetBeforeSelectionChange(oldSelection, newSelection)

A method that is executed before a foundset selection change operation. The method can cancel the selection change operation by returning false.

**Parameters**

* [JSRecord<${dataSource}>|Array\<JSRecord<${dataSource}>>](https://github.com/Servoy/gitbook/blob/master/reference/servoycore/object-model/solution/jsrecord%3C$%7Bdatasource%7D%3E|array%3Cjsrecord%3C$%7Bdatasource%7D%3E%3E.md) **oldSelection** array with selected records
* [JSRecord<${dataSource}>|Array\<JSRecord<${dataSource}>>](https://github.com/Servoy/gitbook/blob/master/reference/servoycore/object-model/solution/jsrecord%3C$%7Bdatasource%7D%3E|array%3Cjsrecord%3C$%7Bdatasource%7D%3E%3E.md) **newSelection** array with records that will become selected

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onFoundSetLoad(memOrViewName)

A method that is executed when an in memory or viewfoundset table is first touched (by ui or scripting)

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **memOrViewName** The in memory or view foundset table name that is touched.

**Returns:** void

### onFoundsetNextChunk(inmemDataSourceName, sizeHint)

A method that can be used to load extra data in an in memory datasource.

This method id called when the inMem datasource is fully read.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **inmemDataSourceName** name of the inmemory datasource.
* [Number](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/number) **sizeHint** preferred number of records to be retrieved.

**Returns:** [JSDataSet](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsdataset)

### onInsert(record, recordMarkers, stateObject)

A method that is executed before an insert operation. The method can block the insert operation by returning false.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that will be inserted
* [JSRecordMarkers](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecordmarkers) **recordMarkers** the object where all the problems can be reported against
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **stateObject** an object that a user can give to validateRecord for extra state (optional, can be null).

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onSearch(clearLastResults, reduceSearch)

A method that is executed before search() is called on a foundset in find mode. The method can block the search (foundset will stay in find mode).

**Parameters**

* [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean) **clearLastResults** ;
* [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean) **reduceSearch** ;

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onUpdate(record, recordMarkers, stateObject)

A method that is executed before an update operation. A method can block the update by returning false.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that will be updated
* [JSRecordMarkers](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecordmarkers) **recordMarkers** the object where all the problems can be reported against
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **stateObject** an object that a user can give to validateRecord for extra state (optional, can be null).

**Returns:** [Boolean](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/boolean)

### onValidate(record, recordMarkers, stateObject)

A method that is executed before an insert operation. The method can block the insert operation by returning false.

**Parameters**

* [JSRecord](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecord) **record** record that must be validated
* [JSRecordMarkers](https://docs.servoy.com/reference/servoycore/dev-api/database-manager/jsrecordmarkers) **recordMarkers** the object where all the problems can be reported against.
* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **stateObject** an object that a user can give to validateRecord for extra state (optional, can be null).

**Returns:** void

***
