mirror of
https://github.com/HeidiSQL/HeidiSQL.git
synced 2026-03-13 09:24:25 +08:00
Make INSERTs in user manager compatible with pre-4.1 servers by
* removing the ON DUPLICATE KEY clauses * turning the INSERT into INSERT IGNORE * and doing an UPDATE afterwards if RowsAffected is 0 Fixes issue #1229
This commit is contained in:
@@ -1192,7 +1192,7 @@ begin
|
||||
if c = 'Y' then PrivValues.Add(p.PrivNames[k]);
|
||||
end;
|
||||
// Insert new privilege definition.
|
||||
sql := 'INSERT INTO ' + db + '.' + TableName;
|
||||
sql := 'INSERT IGNORE INTO ' + db + '.' + TableName;
|
||||
if SetFieldName <> '' then
|
||||
PrivUpdates.Add(mask(SetFieldName) + '=' + esc(Delim(PrivValues, False)));
|
||||
sql := sql + ' SET ' + PrivWhere + ', ' + Delim(PrivUpdates);
|
||||
@@ -1208,11 +1208,11 @@ begin
|
||||
PrivValues.Add(mask('x509_subject') + '=' + esc(''));
|
||||
if PrivValues.Count > 0 then
|
||||
sql := sql + ', ' + Delim(PrivValues);
|
||||
sql := sql + ' ON DUPLICATE KEY UPDATE';
|
||||
sql := sql + ' ' + Delim(PrivUpdates);
|
||||
end;
|
||||
try
|
||||
Mainform.Connection.Query(sql);
|
||||
if Mainform.Connection.RowsAffected = 0 then
|
||||
Mainform.Connection.Query('UPDATE ' + db + '.' + TableName + ' SET ' +Delim(PrivUpdates) + AcctWhere);
|
||||
except
|
||||
on E:Exception do begin
|
||||
MessageDlg(E.Message, mtError, [mbOK], 0);
|
||||
@@ -1236,8 +1236,6 @@ begin
|
||||
sql := 'INSERT INTO ' + db + '.' + PRIVTABLE_TABLES;
|
||||
sql := sql + ' SET ' + PrivWhere;
|
||||
sql := sql + ', ' + mask('column_priv') + '=' + esc(Delim(PrivValues, False));
|
||||
sql := sql + ' ON DUPLICATE KEY UPDATE';
|
||||
sql := sql + ' ' + mask('column_priv') + '=' + esc(Delim(PrivValues, False));
|
||||
try
|
||||
Mainform.Connection.Query(sql);
|
||||
except
|
||||
|
||||
Reference in New Issue
Block a user