Inserting Data into a Table

This tutorial describes how to insert a row into a table.


You can insert a single row or several rows in a table. To insert several rows the SQL statement needs to be called in a loop until the condition is satisfied.

Basic procedure

The high level steps for inserting a row into a table are shown here:

  1. Configure the SQL statement.

  2. Execute the statement.

Detailed steps

An INSERT query adds data to the database. The example shown here inserts a new record into the countries database.

Configure the SQL statement

  1. Declare the necessary literals as shown and instantiate an object of the RSqlStatement class.

    _LIT(kQueryString,"INSERT INTO countries (name, population) 
    VALUES (:value1, :value2);");
    RSqlStatement myStatement;
  2. Prepare the SQL statement for execution.

    TInt err;
    err = myStatement.Prepare(countriesDatabase,kQueryString); // prepare
  3. Get the index of each of the parameters with the given name and bind it with the text and integer value respectively.

    TInt index1 = myStatement.ParameterIndex(kValue1); // index
    TInt index2 = myStatement.ParameterIndex(kValue2);
    err = myStatement.BindText(index1,kItaly);
    err = myStatement.BindInt(index2,59); // bind

Execute the statement

Execute the SQL statement to insert a record.

err = myStatement.Exec();// execute

Close the SQL statement.

err = myStatement.Close();// close


To add several rows to a data table you need to call an INSERT statement within a loop. The following example inserts rows containing numbers 1 to 10 into the countries database. Steps 1 and 2 of the above list remain the same. The remaining steps are as shown below:

  • Get the index of the parameter.

    TInt index1 = myStatement.ParameterIndex(kValue1); // index
  • Iterate the loop 10 times by binding the integer value of the variable i with the parameter. Then execute the INSERT statement to insert a new record into the table. Finally, call the Reset() function to reset the SQL statement and make it ready for the next execution.

    for(TInt i=1;i<=10;i++)
           err = myStatement.BindInt(index1,i);
           err = myStatement.Exec(); // execute
           err = myStatement.Reset()