Sodium: Türkiye'nin Programlama Dili
  • Sodium Home Page
  • Getting Started
    • Examples
      • Hello World Example
      • Datalist & Select Element Usage
  • Installation & Configuration
  • Frequently Asked Questions
  • How to
    • How to: use Recordset variable and to_json function for populating a tree node
    • How to: get selected tree node id
    • How to: create master detail relationship between data blocks
    • How to: use data list element for populating select elements
    • How to: define a lookup element for a select element
    • How to: use database sequence in data block element
  • Contributers
  • Roadmap
  • About Me
  • Version History
    • Change Log
    • Things To Do
    • Known Issues
  • LANGUAGE REFERENCE
    • Program Structure
      • Form File
      • Code Behind File
      • Controller File
    • Built-in Functions
      • Sodium Built-in Functions
        • Database Related Functions
          • commit
          • rollback
          • delete
          • create_postgresql_connection
          • create_oracle_connection
          • create_mysql_connection
          • get_database_type
          • get_database_name
          • run_sql_file
          • set_active_database_connection
        • REDIS Functions
          • create_redis_connection
          • close_redis_connection
          • (redis-variable-name).set
          • (redis-variable-name).get
          • (redis-variable-name).del
          • (redis-variable-name).ping
          • (redis-variable-name).incr
          • (redis-variable-name).incrBy
          • (redis-variable-name).decr
          • (redis-variable-name).decrBy
          • (redis-variable-name).strlen
          • (redis-variable-name).append
        • Other Functions
          • disable_column
          • enable_column
          • hide_block
          • hide_column
          • message
          • populate_datalist
          • prompt
          • refresh_block
          • show_block
          • show_column
          • show_page
          • populate_tree
          • to_json
          • refresh_tree_node
          • set_datablock_property
      • Built-in String Functions & Operands
        • instr
        • strlen
        • Concatanation Operator
        • replace
        • substr
        • The "sizeof" Operator
        • Like & Not Like Operators
      • File IO functions
      • Date/time Functions
    • Built-in Triggers
      • "item_modified" trigger
      • "connection_not_found" trigger
      • "page.access" trigger
      • "page_load" trigger
      • "post_query" trigger
      • "row_selected" trigger
      • "button_item_clicked" trigger
      • "pre_insert" Trigger
      • "pre_delete" Trigger
      • "pre_update" Trigger
      • "post_insert" Trigger
      • "post_delete" Trigger
      • "post_update" Trigger
      • "tree_node_expanded" Trigger
      • "tree_node_selected" Trigger
      • "user_session_end" trigger
    • TAGs
      • Data Block
        • Data Block: Form View Mode
        • Data Block: Grid View Mode
        • Data Block: Mix View Mode
      • Control Block
      • Data List
      • Tree Element
      • Table TAG
      • Inputs
        • Text Item
        • Radio Item
        • Select Item
        • Checkbox Item
        • Button Item
        • Image Item
        • Textarea Item
        • Magic Buttons
    • Native SQL support
    • Lexical Elements
      • Identifiers
      • Keywords
      • Constants
        • The Null Statement
        • String Constant
      • Operators
      • Separators
      • White Space
      • Variables
        • Variable Type: int
        • Variable Type: char
        • Variable Type: bool
        • Local variables
        • Page variables
        • Session variables
        • Predefined Variables
          • :Session.authenticated
          • :Session.user
          • :Session.Id
          • :Session.user
          • :Row.Id
      • Functions
        • Function Declarations
        • Calling Functions
        • Function Parameters
        • Recursive Functions
      • Statements
        • The "if" Statement
        • The while Statement
        • The do Statement
        • Code Blocks
        • The break Statement
        • The return Statement
      • Expressions And Operators
        • Expressions
        • Assignment Operators
        • Arithmetic Operators
        • Comparison Operators
        • Logical Operators
        • Function Calls as Expressions
        • Operator Precedence
        • Order of Evaluation
      • Escape Character
    • CSS Themes
    • Scopes
    • Connection
      • Active Database Connection
      • Connection Types
        • Database Connections
        • REDIS Connection
  • Development
    • IDE
    • Debugging
  • SODIUM DEVELOPMENT
    • Sodium Development Home Page
    • Getting Started
      • Sodium Architecture
      • Development Environment
        • Source Code
        • Applications Required
        • Compiling C Projects
        • Compiling NodeJs Project
        • Troubleshooting
Powered by GitBook
On this page
  • Examples
  • Select Statement
  • Insert Statement
  • Update Statement
  • Delete Statement
  • Database Script Execution

Was this helpful?

  1. LANGUAGE REFERENCE

Native SQL support

PreviousMagic ButtonsNextLexical Elements

Last updated 5 years ago

Was this helpful?

Functions in can contain SQL and/or PL/SQL statements. Sodium developers do not need to write additional code in order to run any SQL statement. And also, they do not need to define a string variable in order to construct SQL statement. All type of SQL and PL/SQL commands runs against "default" connection.

Examples

Select Statement

In the example below, usage of a single "select" statement / cursor is shown. Select statement is assigned a local variable rs1. With this assignment, all columns are easily accessible with the syntax

cursor_variable_name + "." + column_name

This example also shows how to use data or control block items value as a parameter in where clause. Before executing "select" command, Sodium engine replaces the block variable with its actual value.

void select_example() {
 
    char counter;
    char depname;
    depname = 'mebs';
 
    rs1 =   select *
            from deps
            where
                dep_name = :depname;
 
    counter = 0;
 
    while (rs1) loop
        message(rs1.dep_name);
        next_record(rs1);
        counter = counter + 1;
    end loop;
 
    message("total number of records :" || counter);
}

Insert Statement

In the example below, usage of a single "insert" statement is shown. In order to execute insert command, there is no additional coding needed. This example also shows how to use data or control block items value as a parameter in "values" clause and sequence. Before executing "insert" command, Sodium engine replaces the block variable with its actual value

void insert_example() {
    insert into hr.deps (DEP_ID, DEP_NAME)
            values (htsql_test.nextval, :depname);
}

Update Statement

In the example below, usage of a single "update" statement is shown. In order to execute update command, there is no additional coding needed. This example also shows how to use local variable as a parameter in "where" clause. Before executing "update" command, Sodium engine replaces the local value reference with its actual value.

void update_example() {
    char localVariable;
    localVariable = 'admin';
 
    update hr.deps
    set
        dep_name = 'update test'r
    where
        dep_name like '%'|| :localVariable || '%';
}

Delete Statement

In the example below, usage of a single "delete" statement is shown. In order to execute delete command, there is no additional coding needed. This example also shows how to use local variable as a parameter in "where" clause. Before executing "delete" command, Sodium engine replaces the local value reference with its actual value.

void delete_example() {
    char dep_name;
    dep_name = 'logistic';
 
    delete
        hr.deps
    where
        dep_name = :dep_name;
}

Database Script Execution

In the example below, usage of a PL/SQL block is shown. In order to execute PL/SQL block, there is no additional coding needed. Before executing PL/SQL block, Sodium engine replaces the local variable names with its actual value. This happens once for whole PL/SQL block. PL/SQL block is executed as anonymous "PL/SQL block" in database server. The content of the PL/SQL block (which is between "begin" and "end;" keywords) are not parsed by Sodium engine for syntax check.

void plsql_example() {
    char depname;
    depname = 'plsql test';
 
    begin
        insert into hr.deps (DEP_ID, DEP_NAME)
        values (htsql_test.nextval, :depname);
        commit;
    end;
}
Code Behind File