diff --git a/uppsrc/SqlCtrl/SqlArray.cpp b/uppsrc/SqlCtrl/SqlArray.cpp index 4310bd772..3a17fee65 100644 --- a/uppsrc/SqlCtrl/SqlArray.cpp +++ b/uppsrc/SqlCtrl/SqlArray.cpp @@ -69,7 +69,7 @@ bool SqlArray::UpdateRow() { else { SqlUpdate update(table); for(int i = 0; i < GetIndexCount(); i++) - if(!GetId(i).IsNull() && IsModified(i) && (i || lateinsert)) + if(!GetId(i).IsNull() && IsModified(i) && (i || lateinsert || updatekey)) update(GetId(i), Get(i)); if(update) { Session().ClearError(); @@ -235,6 +235,7 @@ SqlArray::SqlArray() { offset = 0; count = Null; WhenFilter = true; + updatekey = false; } END_UPP_NAMESPACE diff --git a/uppsrc/SqlCtrl/SqlCtrl.h b/uppsrc/SqlCtrl/SqlCtrl.h index e741f8aee..bbe95d5f9 100644 --- a/uppsrc/SqlCtrl/SqlCtrl.h +++ b/uppsrc/SqlCtrl/SqlCtrl.h @@ -79,6 +79,7 @@ private: bool lateinsert; bool goendpostquery; bool autoinsertid; + bool updatekey; SqlBool GetWhere(); #ifndef NOAPPSQL @@ -128,6 +129,7 @@ public: SqlArray& GoEndPostQuery(bool b = true) { goendpostquery = b; return *this; } SqlArray& AutoInsertId(bool b = true) { autoinsertid = b; return *this; } SqlArray& AppendingAuto() { Appending(); return AutoInsertId(); } + SqlArray& UpdateKey(bool b = true) { updatekey = b; return *this; } void Clear(); void Reset();