Skip to main content
Known Participant
April 30, 2015
Question

Saving data in database using textbox and save button

  • April 30, 2015
  • 0 replies
  • 754 views

Hello. I just want a help about my code because when i close the application the data that i add is not been saved.

Here is my code of save:

function saveData(event:MouseEvent):void

{

  status.text = "Saving data";

  insertStmt = new SQLStatement();

  insertStmt.sqlConnection = conn;

  var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES (:param, :param1, :param2)";

  insertStmt.text = sql;

  insertStmt.parameters[":param"] = firstName.text;

  insertStmt.parameters[":param1"] = lastName.text;

  insertStmt.parameters[":param2"] = salary.text;

  insertStmt.addEventListener(SQLEvent.RESULT, insertResult);

  insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);

  insertStmt.execute();

}

Here is the full code:

import fl.data.DataProvider;

import flash.data.SQLResult;

import flash.data.SQLConnection;

import flash.filesystem.File;

import flash.data.SQLStatement;

import flash.data.SQLConnection;

var conn:SQLConnection;

var createStmt:SQLStatement;

var insertStmt:SQLStatement;

var insertStmt2:SQLStatement;

var insertStmt3:SQLStatement;

var selectStmt:SQLStatement;

var insert1Complete:Boolean = false;

var insert2Complete:Boolean = false;

saveBtn.addEventListener(MouseEvent.CLICK, saveData);

loadBtn.addEventListener(MouseEvent.CLICK, getData);

init();

function init():void

{

  conn = new SQLConnection();

  conn.addEventListener(SQLEvent.OPEN, openSuccess);

  conn.addEventListener(SQLErrorEvent.ERROR, openFailure);

  status.text = "Creating and opening database";

  // Use these two lines for an on-disk database

  // but be aware that the second time you run the app you'll get errors from

  // creating duplicate records.

// var dbFile:File = File.applicationStorageDirectory.resolvePath("DBSample.db");

// conn.openAsync(dbFile);

  // Use this line for an in-memory database

  conn.openAsync(null);

}

function openSuccess(event:SQLEvent):void

{

  conn.removeEventListener(SQLEvent.OPEN, openSuccess);

  conn.removeEventListener(SQLErrorEvent.ERROR, openFailure);

  createTable();

}

function openFailure(event:SQLErrorEvent):void

{

  conn.removeEventListener(SQLEvent.OPEN, openSuccess);

  conn.removeEventListener(SQLErrorEvent.ERROR, openFailure);

  status.text = "Error opening database";

  trace("event.error.message:", event.error.message);

  trace("event.error.details:", event.error.details);

}

function createTable():void

{

  status.text = "Creating table";

  createStmt = new SQLStatement();

  createStmt.sqlConnection = conn;

  var sql:String = "";

  sql += "CREATE TABLE IF NOT EXISTS employees (";

  sql += " empId INTEGER PRIMARY KEY AUTOINCREMENT,";

  sql += " firstName TEXT,";

  sql += " lastName TEXT,";

  sql += " salary NUMERIC CHECK (salary >= 0) DEFAULT 0";

  sql += ")";

  createStmt.text = sql;

  createStmt.addEventListener(SQLEvent.RESULT, createResult);

  createStmt.addEventListener(SQLErrorEvent.ERROR, createError);

  createStmt.execute();

}

function createResult(event:SQLEvent):void

{

  createStmt.removeEventListener(SQLEvent.RESULT, createResult);

  createStmt.removeEventListener(SQLErrorEvent.ERROR, createError);

  addData();

}

function createError(event:SQLErrorEvent):void

{

  status.text = "Error creating table";

  createStmt.removeEventListener(SQLEvent.RESULT, createResult);

  createStmt.removeEventListener(SQLErrorEvent.ERROR, createError);

  trace("CREATE TABLE error:", event.error);

  trace("event.error.message:", event.error.message);

  trace("event.error.details:", event.error.details);

}

function addData():void

{

  status.text = "Adding data to table";

  insertStmt = new SQLStatement();

  insertStmt.sqlConnection = conn;

  var sql:String = "";

  sql += "INSERT INTO employees (firstName, lastName, salary) ";

  sql += "VALUES ('Bob', 'Smith', 8000)";

  insertStmt.text = sql;

  insertStmt.addEventListener(SQLEvent.RESULT, insertResult);

  insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);

  insertStmt.execute();

  insertStmt2 = new SQLStatement();

  insertStmt2.sqlConnection = conn;

  var sql2:String = "";

  sql2 += "INSERT INTO employees (firstName, lastName, salary) ";

  sql2 += "VALUES ('John', 'Jones', 8200)";

  insertStmt2.text = sql2;

  insertStmt2.addEventListener(SQLEvent.RESULT, insertResult);

  insertStmt2.addEventListener(SQLErrorEvent.ERROR, insertError);

  insertStmt2.execute();

}

function insertResult(event:SQLEvent):void

{

  var stmt:SQLStatement = event.target as SQLStatement;

  stmt.removeEventListener(SQLEvent.RESULT, insertResult);

  stmt.removeEventListener(SQLErrorEvent.ERROR, insertError);

  if (stmt == insertStmt)

  {

  insert1Complete = true;

  }

  else

  {

  insert2Complete = true;

  }

  if (insert1Complete && insert2Complete)

  {

  status.text = "Ready to load data";

  }

}

function insertError(event:SQLErrorEvent):void

{

  status.text = "Error inserting data";

  insertStmt.removeEventListener(SQLEvent.RESULT, insertResult);

  insertStmt.removeEventListener(SQLErrorEvent.ERROR, insertError);

  trace("INSERT error:", event.error);

  trace("event.error.message:", event.error.message);

  trace("event.error.details:", event.error.details);

}

function getData(event:MouseEvent):void

{

  status.text = "Loading data";

  selectStmt = new SQLStatement();

  selectStmt.sqlConnection = conn;

  var sql:String = "SELECT empId, firstName, lastName, salary FROM employees";

  selectStmt.text = sql;

  selectStmt.addEventListener(SQLEvent.RESULT, selectResult);

  selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);

  selectStmt.execute();

}

function saveData(event:MouseEvent):void

{

  status.text = "Saving data";

  insertStmt = new SQLStatement();

  insertStmt.sqlConnection = conn;

  var sql:String = "INSERT INTO employees (firstName, lastName, salary) VALUES (:param, :param1, :param2)";

  insertStmt.text = sql;

  insertStmt.parameters[":param"] = firstName.text;

  insertStmt.parameters[":param1"] = lastName.text;

  insertStmt.parameters[":param2"] = salary.text;

  insertStmt.addEventListener(SQLEvent.RESULT, insertResult);

  insertStmt.addEventListener(SQLErrorEvent.ERROR, insertError);

  insertStmt.execute();

}

function selectResult(event:SQLEvent):void

{

  status.text = "Data loaded";

  selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);

  selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);

  var result:SQLResult = selectStmt.getResult();

  resultsGrid.dataProvider = new DataProvider(result.data);

// var numRows:int = result.data.length;

// for (var i:int = 0; i < numRows; i++)

// {

// var output:String = "";

// for (var prop:String in result.data)

// {

// output += prop + ": " + result.data[prop] + "; ";

// }

// trace("row[" + i.toString() + "]\t", output);

// }

}

function selectError(event:SQLErrorEvent):void

{

  status.text = "Error loading data";

  selectStmt.removeEventListener(SQLEvent.RESULT, selectResult);

  selectStmt.removeEventListener(SQLErrorEvent.ERROR, selectError);

  trace("SELECT error:", event.error);

  trace("event.error.message:", event.error.message);

  trace("event.error.details:", event.error.details);

}

This topic has been closed for replies.