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
  • Getting Started
  • What you should already know ?
  • Sodium File Types

Was this helpful?

Getting Started

PreviousSodium Home PageNextExamples

Last updated 5 years ago

Was this helpful?

Getting Started

What you should already know ?

  • SQL and vendor specific database scripting language (PL/SQL for Oracle etc)

  • HTML (Basic)

Sodium File Types

Form files

  • Form files must have frmx extension

  • Form files are actually HTML files with additional and attributes. TAGS and attributes having special meaning in Sodium are listed in TAGs page.

  • Form files must be well-formed and conform to HTML 5 standard. Otherwise, application will not work as expected

  • While editing, using an HTML editor is strongly advised (Eclipse, NetBeans, MS Visual Studio HTML editor, etc.)

  • These files must be UTF8 encoded

Code behind files (sqlx files)

  • SQLX files must have sqlx extension

  • These files are used to separate code with HTML

  • SQLX files are code behind files and consist of functions and global variables

  • Although Sodium language is very similar to C or JavaScript language, it is actually completely new language and has its own grammar rules. So please have a look at the related pages in this manual

  • These files must be UTF8 encoded

Controller files (controller.sqlx):

  • It is just an sqlx file with a special file name controller.sqlx

Some additional notes on file types

  • For the current release of Sodium, all files must be in the same folder.

  • All Form files must have a code behind file (with the same name but sqlx extension). For example, if you have inventory.frmx file, you must have inventory.sqlx file in the same folder even if it is empty.

  • Sodium application can consist of more than one form file in order to implement the business logic but can only have one controller file.

  • Form file paths are relative to path of the SodiumServer.exe file. So, for the current release, it is advised to create a new sub folder for your application under the SodiumServer.exe file location.

  • Sodium projects must have controller file even if it is empty. Controller file must be in the same directory of the other forms/code behind files.

The difference between regular code behind and Controller file is that the later is loaded once for the first request. For more information, ​

TAGs
Controller File