# backupCreate

> Perform an incremental backup.

> ### For an overview see page Incremental_Backup

> ### Prototype

>         void backupCreate(McoSql::String* file,
>                     McoSql::String* label,
>                     McoSql::BackupKind kind,
>                     int compressionLevel,
>                     McoSql::String* cipherKey);

> ### Arguments

> file | The path and filename for the backup file
> label | The label for this backup record
> kind | The type of backup
> compressionLevel | A backup compression level 0 to 9; (0=no compression; 1 indicates the fastest, but the lowest compression level)
> cipherKey | A cipher to encrypt the backup

> ### Description

> > This method performs an incremental backup by calling the C API mco_backup_create(). (Please refer to the mco_backup_create() reference page for further details.)

> ### Return Codes

> Runtime Exception | In case of error a runtime exception will be thrown with the appropriate error message

> ### Example

>         {
>             MCO_RET rc;
>             mco_device_t       dev[4];
>             McoSqlEngine engine;
>             McoSqlOpenParameters params;
>             char * backup_file = "SimpleDb_backup.dbs";
>             char label[MAX_LABEL_SIZE];
>             int duration_msec = 1000;
>             int msec;

>             ...
>             do
>             {
>                 rc = engine.open(params);
>                 if ( MCO_S_OK == rc )
>                 {
>                     msec = (int)MCO_SYSTEM_GET_CURRENT_TIME_MSEC();
>                     sprintf(label, "Backup at %d msec", msec);

>                     /* backup the database */
>                     rc = engine.backupCreate( backup_file, label, Auto, 0, NULL);
>                     sleep_msec(duration_msec);
>                     engine.close();
>                 }
>             } while (rc == MCO_S_OK && !stop);
>             ...
>         }