{"id":13743785,"url":"https://github.com/kemsky/as3Query","last_synced_at":"2025-05-09T01:31:54.575Z","repository":{"id":81923905,"uuid":"20858801","full_name":"kemsky/as3Query","owner":"kemsky","description":"Another SQLite ORM and query DSL for ActionScript","archived":false,"fork":false,"pushed_at":"2015-10-07T16:55:18.000Z","size":436,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-04T05:02:40.266Z","etag":null,"topics":["adobe-air","adobe-flash","adobe-flex","orm","orm-library","sqlite","sqlite-orm"],"latest_commit_sha":null,"homepage":"","language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kemsky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-15T15:44:36.000Z","updated_at":"2022-12-26T09:05:23.000Z","dependencies_parsed_at":"2023-03-06T03:30:29.337Z","dependency_job_id":null,"html_url":"https://github.com/kemsky/as3Query","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemsky%2Fas3Query","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemsky%2Fas3Query/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemsky%2Fas3Query/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kemsky%2Fas3Query/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kemsky","download_url":"https://codeload.github.com/kemsky/as3Query/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224796670,"owners_count":17371535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adobe-air","adobe-flash","adobe-flex","orm","orm-library","sqlite","sqlite-orm"],"created_at":"2024-08-03T05:00:57.105Z","updated_at":"2024-11-15T14:31:53.265Z","avatar_url":"https://github.com/kemsky.png","language":"ActionScript","readme":"As3Query\n========\n\nAnother SQLite ORM and query DSL for Flex and Adobe Air\n\nUses [Promises/A+](https://github.com/CodeCatalyst/promise-as3) library.\n\nAnnotations list:\n* Specify table name `[Table(name=\"test\")]`\n* Specify table index (or multiple indices) `[Index(name=\"test_index_1\", columns=\"unsigned,bool\", unique=\"true\")]`\n* Specify table column `[Column(primaryKey, nullable=\"false\", unique=\"true\", foreignKey=\"table(id)\", options=\"deferred\", default=\"1\")]`\n\nUsage:\n\n1. Put annotations:\n    ```ActionScript\n        [Table(name=\"test\")]\n        [Index(name=\"test_index_1\", columns=\"unsigned,bool\")]\n        [Index(name=\"test_index_2\", columns=\"str\", unique=\"true\")]\n        public dynamic class TestEntity\n        {\n            [Column(primaryKey, nullable=\"false\")]\n            public var id:int;\n    \n            [Column(default=\"1\")]\n            public var unsigned:uint;\n    \n            [Column(unique=\"true\")]\n            public var date:Date;\n    \n            [Column]\n            public var xml:XML;\n    \n            [Column]\n            public var xmlList:XMLList;\n    \n            [Column]\n            public var object:Object;\n    \n            [Column]\n            public var bool:Boolean;\n    \n            [Column]\n            public var num:Number;\n    \n            [Column]\n            public var str:String;\n    \n            [Column(foreignKey=\"table(id)\", options=\"deferred\")]\n            public var fk_table:int;\n        }\n    ```\n2. Map entity:\n\n    ```ActionScript\n        var entityManager:EntityMapper = new EntityMapper();\n        entityManager.registerEntity(TestEntity);\n    ```\n3. Create tables:\n\n    ```ActionScript\n         var connection:SQLConnection = new SQLConnection();\n         connection.open(file, SQLMode.CREATE);\n         try\n         {\n            new CreateTables(connection, [TestEntity], mapper).call();\n         }\n         finally\n         {\n             if(connection.connected)\n             {\n                 connection.close();\n             }\n         }\n    ```\n4. Create session:\n\n    ```ActionScript\n        var session:Session = new Session(mapper);\n        session.open(file.nativePath, SQLMode.UPDATE).then(function ():void{ trace('ok') });\n    ```\n5. Perform different operations:\n    \n    \u003cb\u003eCriteria\u003c/b\u003e\n    ```ActionScript\n        session.criteria(TestEntity).by(Order.asc(TestEntity.ATTR_ID)).list.then(function (operation:ISQLOperation):void{ \n            trace(operation.result); \n        });\n        session.criteria(TestEntity).when(Restrictions.Eq(TestEntity.ATTR_ID, 1)).unique.then(function (operation:ISQLOperation):void{ \n            trace(operation.result); \n        });\n        session.criteria(TestEntity).when(Restrictions.Eq(TestEntity.ATTR_ID, 1)).count.then(function (count:int):void{ \n            trace(count); \n        });\n    ```\n    \n    \u003cb\u003eCreate, update\u003c/b\u003e\n    ```ActionScript\n        session.save(testCriteriaEntity1).then(function ():void{ trace('ok') });\n    ```\n    \n    \u003cb\u003eDelete\u003c/b\u003e\n    ```ActionScript\n        session.remove(testCriteriaEntity1).then(function ():void{ trace('ok') });\n    ```\n    \n    \u003cb\u003eTransactions\u003c/b\u003e\n    ```ActionScript\n        var transaction:ITransaction = session.transaction;\n\n        transaction.insert(testCriteriaEntity1);\n        transaction.insert(testCriteriaEntity2);\n        transaction.remove(testCriteriaEntity2);\n        \n        transaction.run.then(function (operation:ISQLOperation):void{ \n            trace('ok'); \n        });\n    ```\n    \n    \u003cb\u003eRaw queries\u003c/b\u003e\n    ```ActionScript\n       var query:IQuery = session.query;\n       query.text = \"update test set str=:str where str=:id\";\n       query.parameters[\":id\"] = \"inserted2\";\n       query.parameters[\":str\"] = \"inserted3\";\n       query.run.then(function (operation:ISQLOperation):void{ \n            trace('ok'); \n       });\n    ```\n    \n   \nYou can add metadata validation to Intellij Idea using KnownMetaData.dtd file.\nOpen `Preferences \u003e Schemas and DTDs \u003e Add` KnownMetaData.dtd with URI `urn:Flex:Meta`\n","funding_links":[],"categories":["Networking","Database"],"sub_categories":["Database"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkemsky%2Fas3Query","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkemsky%2Fas3Query","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkemsky%2Fas3Query/lists"}