Link | object_generation |
Author | Richard Moore |
Category | Utility |
Version | 9.x |
License | Public Domain |
Posted | 18 Jun 2012 |
Updated | 18 Jun 2012 |
More by this author... |
This file can be used to generate an object file from a mySQL database table. It effectively turns a table into an object.
e.g if you have a mySQL table called "customers" it wil craete an Object called customers.
In the code below var('tsdb') = 'revman'; // This is the mySQL database var(t) = 'revenue_schedules'; // This is the name of the mySQL table var(ta) = 'revenue_schedules_archive'; // This is an archive table we use to track deleted transactions To use you will need to replace the database name to your own database so it can read the mySQL files
Click the "Download" button below to retrieve a copy of this tag, including the complete documentation and sample usage shown on this page. Place the downloaded ".inc" file in your LassoStartup folder, restart Lasso, and you can begin using this tag immediately.
Lasso Programming: CSS/HTML Menu { local(sqlcode) = 'show full columns from ' + #t; local(fieldarray) = array; inline(-database=$tsdb,-sql=#sqlcode,-maxrows='all',-inlinename='typelist'); records; if(string(field('type'))->beginswith('int(')); #fieldarray->insert(pair(field('field') = 'integer')); else(string(field('type'))->beginswith('tiny')); #fieldarray->insert(pair(field('field') = 'integer')); else(string(field('type'))->beginswith('varch')); #fieldarray->insert(pair(field('field') = 'string')); else(string(field('type'))->beginswith('date')); #fieldarray->insert(pair(field('field') = 'date')); else(string(field('type'))->beginswith('time')); #fieldarray->insert(pair(field('field') = 'date')); else(string(field('type'))->beginswith('float')); #fieldarray->insert(pair(field('field') = 'decimal')); else(string(field('type'))->beginswith('decimal')); #fieldarray->insert(pair(field('field') = 'decimal')); else(string(field('type'))->beginswith('double')); #fieldarray->insert(pair(field('field') = 'decimal')); /if; /records; /inline; local('content') = " type { "; #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This code creates a ' + #t + '2 object */'); #content->append('\r\t'); #content->append('/* This created on ' + date + ' */'); #content->append('\r\t'); #content->append('/* Copyright of TennisSource.Net. All Rights Reserved */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("data"); #content->append('\r\t'); #content->append("private table::string = '" + #t + "',"); #content->append('\r\t'); #content->append("private table_archive::string = '" + #ta + "',"); #content->append('\r\t'); #content->append("public error::string,"); #content->append('\r\t'); #content->append("public code::string"); #content->append('\r\t'); iterate(#fieldarray,var(i)); #content->append(",public " + $i->first + "::" + $i->second); #content->append('\r\t'); /iterate; #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This creates an object from an id if it exists using ' + #t + '(id) */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public onCreate(id::integer)=> {"); #content->append('\r\t\t'); #content->append(".id = 0;"); #content->append('\r\t\t'); #content->append("local('sql') = 'select * from ' + .table + ' where id = ' + #id;"); #content->append('\r\t\t'); #content->append("inline(-database=#tsdb,-sql=#sql);"); iterate(#fieldarray,var(i)); #content->append('\r\t\t\t'); #content->append(".'" + $i->first + "' = " + $i->second + "(field('" + $i->first + "'));"); /iterate; #content->append('\r\t\t\t'); #content->append(".'code' = string(action_statement);"); #content->append('\r\t\t\t'); #content->append(".'error' = string(error_currenterror);"); #content->append('\r\t\t'); #content->append("/inline;"); #content->append('\r\t'); #content->append("} "); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This creates an unpopulated object using ' + #t + '() */'); #content->append('\r\t'); #content->append('/* This is an example of multiple dispatch */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public onCreate()=> {"); iterate(#fieldarray,var(i)); #content->append('\r\t\t'); #content->append(".'" + $i->first + "' = " + $i->second + ";"); /iterate; #content->append('\r\t\t'); #content->append(".'code' = string;"); #content->append('\r\t\t'); #content->append(".'error' = string;"); #content->append('\r\t'); #content->append("}"); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This creates an archive entry object using ' + #t + '->archive() */'); #content->append('\r\t'); #content->append('/* A table defiend above is expected */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public archive() => {"); #content->append('\r\t\t'); #content->append("inline("); #content->append('\r\t\t\t'); #content->append("-database = #tsdb,"); #content->append('\r\t\t\t'); #content->append("-add,"); #content->append('\r\t\t\t'); #content->append("-keyfield = 'id',"); #content->append('\r\t\t\t'); #content->append("-table = .table_archive"); #content->append('\r\t\t\t'); iterate(#fieldarray,var(i)); #content->append(",.'" + $i->first + "' = " + $i->second); #content->append('\r\t\t\t'); /iterate; #content->append(");"); #content->append('\r\t\t\t'); #content->append(".id=keyfield_value;"); #content->append('\r\t\t\t'); #content->append(".'code' = string(action_statement);"); #content->append('\r\t\t\t'); #content->append(".'error' = string(error_currenterror);"); #content->append('\r\t\t\t'); #content->append("/inline;"); #content->append('\r\t\t'); #content->append("}"); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This saves or updates the object using ' + #t + '->save() */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public save() => {"); #content->append('\r\t\t'); #content->append("inline("); #content->append('\r\t\t'); #content->append("-database = #tsdb,"); #content->append('\r\t\t\t'); #content->append(".id > 0 ? '-update' | '-add',"); #content->append('\r\t\t\t'); #content->append("-keyfield = 'id',"); #content->append('\r\t\t\t'); #content->append("-keyvalue = .id,"); #content->append('\r\t\t\t'); #content->append("-table = .table"); iterate(#fieldarray,var(i)); #content->append('\r\t\t\t'); #content->append(",'" + $i->first + "' = ." + $i->first); /iterate; #content->append('\r\t\t\t'); #content->append(");"); #content->append('\r\t'); #content->append(".id=keyfield_value;"); #content->append('\r\t\t\t'); #content->append(".'code' = string(action_statement);"); #content->append('\r\t\t\t'); #content->append(".'error' = string(error_currenterror);"); #content->append('\r\t\t'); #content->append("/inline;"); #content->append('\r\t'); #content->append("}"); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This clones an the object using ' + #t + '->clone() */'); #content->append('\r\t'); #content->append('/* A save will be required to hold the data */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public clone() => {"); #content->append('\r\t'); #content->append(".id = 0;"); #content->append('\r\t'); #content->append("}"); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This deletes an the object data using ' + #t + '->delete() */'); #content->append('\r\t'); #content->append('/* An archive shhould be performed first if needed */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public delete() => {"); #content->append('\r\t\t'); #content->append("inline("); #content->append('\r\t\t\t'); #content->append("-database = #tsdb,"); #content->append('\r\t\t\t'); #content->append("-delete,"); #content->append('\r\t\t\t'); #content->append("-keyfield = 'id',"); #content->append('\r\t\t\t'); #content->append("-keyvalue = .id,"); #content->append('\r\t\t\t'); #content->append("-table = .table,"); #content->append('\r\t\t\t'); #content->append(");"); #content->append('\r\t\t\t'); #content->append(".'code' = string(action_statement);"); #content->append('\r\t\t\t'); #content->append(".'error' = string(error_currenterror);"); #content->append('\r\t\t'); #content->append("/inline;"); #content->append('\r\t\t'); #content->append("}"); #content->append('\r\t'); #content->append('\r\t'); #content->append('/* This outputs the values of the object using ' + #t + '->values() as a table */'); #content->append('\r\t'); #content->append('\r\t'); #content->append("public values() => { "); #content->append('\r\t\t'); #content->append("local(vals)=string('
');"); #content->append('\r\t\t'); #content->append("#vals->append('" + #i->first + "');"); #content->append('\r\t\t'); #content->append("#vals->append(' | ');"); #content->append('\r\t\t'); #content->append("#vals->append(." + #i->first + ");"); #content->append('\r\t\t'); #content->append("#vals->append(' |
No comments
©LassoSoft Inc 2015 | Web Development by Treefrog Inc | Privacy | Legal terms and Shipping | Contact LassoSoft