More efficient error handling and reset in the binding mechanism.

FossilOrigin-Name: 9a3e3b34ba6eafce2f560c13225a3673e18d696b29295b59d958e938fa593baf
diff --git a/src/vdbeapi.c b/src/vdbeapi.c
index bdc5f03..3e439e3 100644
--- a/src/vdbeapi.c
+++ b/src/vdbeapi.c
@@ -1303,8 +1303,10 @@
       if( rc==SQLITE_OK && encoding!=0 ){
         rc = sqlite3VdbeChangeEncoding(pVar, ENC(p->db));
       }
-      sqlite3Error(p->db, rc);
-      rc = sqlite3ApiExit(p->db, rc);
+      if( rc ){
+        sqlite3Error(p->db, rc);
+        rc = sqlite3ApiExit(p->db, rc);
+      }
     }
     sqlite3_mutex_leave(p->db->mutex);
   }else if( xDel!=SQLITE_STATIC && xDel!=SQLITE_TRANSIENT ){