dbAddNew()
Database function that generates a new, empty data record.
Synopsis
int dbAddNew(dbRecordset recordset);
Parameters
| Parameter | Meaning | 
|---|---|
| recordset | Record set reference | 
Return Value
The return value is an error code. 0 denotes successful execution of the operation. With other values detailed error information can be retrieved using dbGetError().
Errors
On transfer of an invalid record set reference variable or if the data source or record set cannot be modified, an error is returned.
Description
The function dbAddNew() is called to create new data records. This generates a new, empty database that becomes the current data record. After the data fields have been set (with dbPutField() ), they are entered in the new record with dbUpdate().
Depending on the data source, it may be necessary to call dbRequery() to be able to address the new record in the record set with the navigations methods. The dbAddNew() method can only be used with the cursor types adOpenKeyset and adOpenDynamic (provided that the data source supports these types).
Note that open changes (i.e. with data fields changed by dbPutField() without dbUpate()) are automatically saved in the data source by dbUpdate() before dbAddNew is called (internally).
                 Example
                Example
            
main()
{
  int rc; //declaration of the connection function
  dbConnection conn ;//declaration of the connection
  dbRecordset rs; //declaration of the data subset
  anytype fld; //declaration of the data field
  rc = dbOpenConnection ("DRIVER=Microsoft Access Driver
  (*.mdb); DBQ=TEST.MDB;DefaultDir=C://test//jetdb;
  UID=;PWD=;", conn);
  // opens the connection to the data source
  if (!rc)
  {
    rc = dbOpenRecordset(conn,"SELECT * FROM PERS",rs,2);
    // opens the connection to the data subset
    if (!rc)
    {
      rc = dbAddNew (rs); //create new data record
      if (!rc)
      {
        rc = dbPutField (rs, 0, "4711");
        // writes "4711" to field 0
        if (!rc)
        rc = dbPutField (rs, 1, "Doe, John");
        // writes "4711" to field 1
        if (!rc)
        rc = dbPutField (rs, 2, 6823.25);
        // writes 6823.25 to field 2
        if (!rc)
        rc = dbPutField (rs, 3, getCurrentTime());
        // writes the currently queried time to field 3
        if (!rc)
        rc = dbUpdate (rs);
      } 
      //updates the changes to the data record
      rc = dbRequery (rs); // rereads the data again
      if (!rc)
      rc = dbAddNew (rs); //goes to the first data record
      if (!rc)
      rc = dbMove(rs, 5); //goes to the 5th data record
      if (!rc)
      rc = dbDelete (rs); //deletes the record
      dbCloseRecordset (rs); //closes the data subset
    }
    dbCloseConnection (conn); //closes the connection
  }
}Assignment
ADO, Database functions
Availability
CTRL
