GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - kemsky/as3Query: Another SQLite ORM and query DSL for ActionScript

BranchesTags
Open more actions menu

Latest commit

 

History

18 Commits
18 Commits

Folders and files

NameName
Last commit message
Last commit date
bin
bin
 
 
libs
libs
 
 
src/kemsky
src/kemsky
 
 
testSrc
testSrc
 
 
As3Query.iml
As3Query.iml
 
 
KnownMetaData.dtd
KnownMetaData.dtd
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

As3Query

Another SQLite ORM and query DSL for Flex and Adobe Air

Uses Promises/A+ library.

Annotations list:

  • Specify table name [Table(name="test")]
  • Specify table index (or multiple indices) [Index(name="test_index_1", columns="unsigned,bool", unique="true")]
  • Specify table column [Column(primaryKey, nullable="false", unique="true", foreignKey="table(id)", options="deferred", default="1")]

Usage:

  1. Put annotations:

        [Table(name="test")]
        [Index(name="test_index_1", columns="unsigned,bool")]
        [Index(name="test_index_2", columns="str", unique="true")]
        public dynamic class TestEntity
        {
            [Column(primaryKey, nullable="false")]
            public var id:int;
    
            [Column(default="1")]
            public var unsigned:uint;
    
            [Column(unique="true")]
            public var date:Date;
    
            [Column]
            public var xml:XML;
    
            [Column]
            public var xmlList:XMLList;
    
            [Column]
            public var object:Object;
    
            [Column]
            public var bool:Boolean;
    
            [Column]
            public var num:Number;
    
            [Column]
            public var str:String;
    
            [Column(foreignKey="table(id)", options="deferred")]
            public var fk_table:int;
        }
  2. Map entity:

        var entityManager:EntityMapper = new EntityMapper();
        entityManager.registerEntity(TestEntity);
  3. Create tables:

         var connection:SQLConnection = new SQLConnection();
         connection.open(file, SQLMode.CREATE);
         try
         {
            new CreateTables(connection, [TestEntity], mapper).call();
         }
         finally
         {
             if(connection.connected)
             {
                 connection.close();
             }
         }
  4. Create session:

        var session:Session = new Session(mapper);
        session.open(file.nativePath, SQLMode.UPDATE).then(function ():void{ trace('ok') });
  5. Perform different operations:

    Criteria

        session.criteria(TestEntity).by(Order.asc(TestEntity.ATTR_ID)).list.then(function (operation:ISQLOperation):void{ 
            trace(operation.result); 
        });
        session.criteria(TestEntity).when(Restrictions.Eq(TestEntity.ATTR_ID, 1)).unique.then(function (operation:ISQLOperation):void{ 
            trace(operation.result); 
        });
        session.criteria(TestEntity).when(Restrictions.Eq(TestEntity.ATTR_ID, 1)).count.then(function (count:int):void{ 
            trace(count); 
        });

    Create, update

        session.save(testCriteriaEntity1).then(function ():void{ trace('ok') });

    Delete

        session.remove(testCriteriaEntity1).then(function ():void{ trace('ok') });

    Transactions

        var transaction:ITransaction = session.transaction;
    
        transaction.insert(testCriteriaEntity1);
        transaction.insert(testCriteriaEntity2);
        transaction.remove(testCriteriaEntity2);
        
        transaction.run.then(function (operation:ISQLOperation):void{ 
            trace('ok'); 
        });

    Raw queries

       var query:IQuery = session.query;
       query.text = "update test set str=:str where str=:id";
       query.parameters[":id"] = "inserted2";
       query.parameters[":str"] = "inserted3";
       query.run.then(function (operation:ISQLOperation):void{ 
            trace('ok'); 
       });

You can add metadata validation to Intellij Idea using KnownMetaData.dtd file. Open Preferences > Schemas and DTDs > Add KnownMetaData.dtd with URI urn:Flex:Meta

About

Another SQLite ORM and query DSL for ActionScript

Topics

adobe-airadobe-flashadobe-flexormorm-librarysqlitesqlite-orm

Resources

Readme
MIT license
Activity

Stars

4 stars

Watchers

2 watching

Forks

2 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.