stop();
/*==-==-==-==-==-==-==-==-==-==-==-==-==-==-==+
| flashPash recordset demo |
+==-==-==-==-==-==-==-==-==-==-==-==-==-==-==+
| version 1.0 *RC1* |
| |
| last update on 2003-07-07 by si*sshnug.com |
| |
| Copyright (c) 2002-2003, Simon Mckenna |
| All rights reserved |
+==-==-==-==-==-==-==-==-==-==-==-==-==-==-==+
| source best viewed with tab space set to 2 |
+==-==-==-==-==-==-==-==-==-==-==-==-==-==-==*/
/*
Tim Chungs's tkcDataGrid demo uses a recordset called 'rc'
"flashPash using recordset" demo code simply sits on top of his.
*/
var rootLocation = 'http://flashpash.sshnug.com';
var rootLocation = 'http://localhost/flashPash/demo';
katsiConnection = new LocalConnection();
xml_format = flashPashXML_txt.getTextFormat();
log_format = flashPashLog_txt.getTextFormat();
xml_format.url = rootLocation + '/load.flashPash.log.php?logfile=log.recordset.demo.xml';
log_format.url = rootLocation + '/load.flashPash.log.php?logfile=log.recordset.demo.html';
xml_format.target = "_blank";
log_format.target = "_blank";
flashPashXML_txt.setTextFormat( xml_format );
flashPashLog_txt.setTextFormat( log_format );
globalStyleFormat.shadow = 0x9DB9C8;
globalStyleFormat.darkshadow = 0x558097;
globalStyleFormat.scrollTrack = 0xCEDCE3;
globalStyleFormat.highlight = 0x9DB9C8;
globalStyleFormat.highlight3D = 0xCEDCE3;
globalStyleFormat.applyChanges();
doFlashPash_btn.useHandCursor = true;
_level0.addItem_btn.useHandCursor = true;
_level0.doPrev_btn.useHandCursor = true;
_level0.doNext_btn.useHandCursor = true;
_level0.btnH.useHandCursor = true;
_level0.btnV.useHandCursor = true;
_level0.btnclrcellcolors.useHandCursor = true;
_level0.btnclrreccolors.useHandCursor = true;
var metaCalled = false;
with ( flashPash_rs )
{
setFlashPashURL( rootLocation + "/run.recordset.demo.php" );
// define our flashPash recordset properties
setField( "datagrid", "keyfield", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "firstname", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "lastname", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "alias", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "securitycode", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "country", flashPash_rs.FP_ADODB_CHARACTER );
setField( "datagrid", "pokes", flashPash_rs.FP_ADODB_INTEGER );
setField( "datagrid", "booly", flashPash_rs.FP_ADODB_BOOLEAN );
setKey( "datagrid", "keyfield" );
}
doFlashPash_click();
function doFlashPash_click()
{
switch ( flashPash_grp.getValue() )
{
case 'doSelect' :
if ( metaCalled )
flashPash_rs.doMeta( flashPash_rs.FP_META_TYPE_SQL, "SELECT * FROM datagrid", true, false );
else
flashPash_rs.doSelect();
break;
case 'doInsert' :
flashPash_rs.doInsert();
break;
case 'doUpdate' :
flashPash_rs.doUpdate();
break;
case 'doDelete' :
flashPash_rs.doDelete();
break;
case 'doSQL' :
flashPash_rs.doSQL( "SELECT firstname, lastname FROM datagrid GROUP BY lastname" );
break;
case 'doMeta' :
metaCalled = true;
flashPash_rs.doMeta( flashPash_rs.FP_META_TYPE_SQL, "SELECT * FROM timeInfo", true, false );
break;
}
}
function fpRadioButton_click()
{
doFlashPash_btn.setLabel( flashPash_grp.getValue() );
switch ( flashPash_grp.getValue() )
{
case 'doSelect' :
flashPash_label.text = 'Description: Retrieves information from database on server and then populates recordset associated with datagrid' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doSelect();';
break;
case 'doInsert' :
flashPash_label.text = 'Description: Generates an INSERT type SQL query based upon the current record\'s data' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doInsert();';
break;
case 'doUpdate' :
flashPash_label.text = 'Description: Generates an UPDATE type SQL query based upon the current record\'s data' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doUpdate();';
break;
case 'doDelete' :
flashPash_label.text = 'Description: Generates a DELETE type SQL query based upon the current record\'s key field(s)' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doDelete();';
break;
case 'doSQL' :
flashPash_label.text = 'Description: Generates an SQL query based upon doSQL parameter or flashPash SQLcondition property.' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doSQL( "SELECT firstname, lastname FROM datagrid" );';
break;
case 'doMeta' :
flashPash_label.text = 'Description: Retrieves meta-data from database. It is possible to retrieve databases, tables, fields and field meta-data' + chr( 10 );
flashPash_label.text += 'eg. flashPash_rs.doMeta( flashPash_rs.FP_META_TYPE_SQL, "SELECT * FROM timeInfo", true, false );';
break;
}
}
function onDebug( fpObj, fpEvent, debugText )
{
flashPash_log.text += debugText + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
}
function onStateChange( fpObj, fpEvent, oldState, newState, stateTimeTaken, bytesRead, bytesTotal )
{
katsiConnection.send( 'katsi', 'event', fpEvent, oldState, newState );
if ( oldState == newState )
{
if ( oldState == flashPash_rs.FP_STATE_LOADING )
{
flashPash_log.text += 'state update> ' + fpEvent + ' - loading ' + bytesRead;
if ( bytesTotal == 0 )
flashPash_log.text += ' bytes downloaded' + chr( 10 );
else
flashPash_log.text += ' out of ' + bytesTotal + ' bytes' + chr( 10 );
}
else if ( oldState == flashPash_rs.FP_STATE_WAITING )
{
flashPash_log.text += 'state update> waiting - ' + flashPash_rs.time2string( stateTimeTaken ) + ' elapsed ' + chr( 10 );
}
}
else
{
switch ( oldState )
{
case flashPash_rs.FP_STATE_SLEEPING : var oldText = 'sleeping'; break;
case flashPash_rs.FP_STATE_WORKING : var oldText = 'working'; break;
case flashPash_rs.FP_STATE_WAITING : var oldText = 'waiting'; break;
case flashPash_rs.FP_STATE_LOADING : var oldText = 'loading'; break;
case flashPash_rs.FP_STATE_UPDATING : var oldText = 'updating'; break;
}
switch ( newState )
{
case flashPash_rs.FP_STATE_SLEEPING : var newText = 'sleeping again';break;
case flashPash_rs.FP_STATE_WORKING : var newText = 'working'; break;
case flashPash_rs.FP_STATE_WAITING : var newText = 'waiting'; break;
case flashPash_rs.FP_STATE_LOADING : var newText = 'loading'; break;
case flashPash_rs.FP_STATE_UPDATING : var newText = 'updating'; break;
}
flashPash_log.text += 'state change> from ' + oldText + ' to ' + newText + chr( 10 );
}
flashPash_log.scroll = flashPash_log.maxscroll;
}
function beforeEvent( fpObj, fpEvent )
{
processing.startWaiting();
flashPash_log.text = '';
flashPash_log.text = 'event> ' + fpEvent + chr( 10 );
if (( fpEvent == 'beforeUpdate' ) || ( fpEvent == 'beforeInsert' ) || ( fpEvent == 'beforeDelete' ))
{
if ( mmRecordSet.flashPash.currentIndex < 0 )
{
flashPash_log.text += 'demo> hang on! you need to have a record selected in the grid, aborting...' + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
return false;
}
/* Ensure data is entered for both firstname and lastname */
var mmRecordSet = fpObj.getDataSource();
var rsColumns = mmRecordSet.getColumnNames();
for ( var i = 0; i < rsColumns.length; i++ )
{
fieldName = rsColumns[ i ];
fieldValue = mmRecordSet.getItemAt( mmRecordSet.flashPash.currentIndex )[ fieldName ];
if (( fieldName == 'firstname' ) || ( fieldName == 'lastname' ))
if ( fieldValue.length == 0 )
{
flashPash_log.text += 'demo> hang on! firstname and lastname should values entered, aborting...' + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
return false;
}
}
if (( fpEvent == 'beforeDelete' ) && ( fpObj.getDataSource().getLength() <= 1 ))
{
flashPash_log.text += 'demo> hang on! at least one record should be left in the table for others, aborting...' + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
return false;
}
}
else if ( fpEvent == 'beforeSelect' )
{
var mmRecordSet = eval( fpObj.dataSource );
mmRecordSet.removeAll();
_level0.datagrid_users.refresh();
}
}
function afterEvent( fpObj, fpEvent, recordCount, fpXMLresult )
{
processing.stopWaiting();
flashPash_log.text += 'event> ' + fpEvent + ' recordCount: ' + recordCount + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
katsiConnection.send( 'katsi', 'event', fpEvent, recordCount );
switch ( fpEvent )
{
case 'afterSelect' :
break;
case 'afterDelete' :
if (( flashPash_rs.error == flashPash_rs.FP_ERROR_NONE ) && ( recordCount == 1 ))
{
var mmRecordSet = eval( flashPash_rs.dataSource );
mmRecordSet.removeItemAt( mmRecordSet.flashPash.currentIndex );
}
break;
case 'afterMeta' :
_level0.datagrid_users.setRecordSet( _global.rc );
flashPash_rs.doSelect();
break;
}
_level0.datagrid_users.setRecordsToDisplay( 8 );
_level0.datagrid_users.refresh();
}
function onError( fpObj, fpEvent, error, errorText )
{
processing.stopWaiting();
flashPash_log.text += 'error> ' + fpEvent + ' error ' + error + ' - ' + errorText + chr( 10 );
flashPash_log.scroll = flashPash_log.maxscroll;
katsiConnection.send( 'katsi', 'event', fpEvent );
}
/* routine to generate a unique ID. Curtesy of Kent :: Pure Vanilla. */
function genid()
{
var _st = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
var id = '';
for ( i = 0; i < 12; i++ )
{
sl = Math.floor( math.random() * 64 );
id += _st.slice( sl, sl + 1 );
}
return id;
}
|