From 08833c0e96eaf3f306bfaf455e8f77cbffc95d5e Mon Sep 17 00:00:00 2001 From: Bibiko Date: Tue, 4 May 2010 09:24:32 +0000 Subject: =?UTF-8?q?=E2=80=A2=C2=A0fixed=20formatting=20issues=20for=20ente?= =?UTF-8?q?ring=20a=20new=20auto=5Fincrement=20value=20in=20Table=20Info?= =?UTF-8?q?=20tab=20(this=20fixes=20i663)=20=E2=80=A2=20improved=20behavio?= =?UTF-8?q?ur=20if=20setting=20of=20the=20auto=5Fincrement=20value=20faile?= =?UTF-8?q?d=20for=20some=20reasons?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/TableSource.m | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/Source/TableSource.m b/Source/TableSource.m index 034a71b9..d6c8fdcf 100644 --- a/Source/TableSource.m +++ b/Source/TableSource.m @@ -577,8 +577,6 @@ closes the keySheet - (void)setAutoIncrementTo:(NSString*)valueAsString { - if(valueAsString == nil || ![valueAsString length]) return; - NSString *selTable = nil; // if selectedTable is nil try to get the name from tablesList @@ -590,7 +588,20 @@ closes the keySheet if(selTable == nil || ![selTable length]) return; - [mySQLConnection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ AUTO_INCREMENT = %@", [selTable backtickQuotedString], valueAsString]]; + if(valueAsString == nil || ![valueAsString length]) { + // reload data and bail + [tableDataInstance resetAllData]; + [extendedTableInfoInstance loadTable:selTable]; + [tableInfoInstance tableChanged:nil]; + return; + } + + NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; + [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; + NSNumber *autoIncValue = [formatter numberFromString:valueAsString]; + [formatter release]; + + [mySQLConnection queryString:[NSString stringWithFormat:@"ALTER TABLE %@ AUTO_INCREMENT = %@", [selTable backtickQuotedString], [autoIncValue stringValue]]]; if ([mySQLConnection queryErrored]) { SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"), @@ -598,14 +609,17 @@ closes the keySheet nil, nil, [NSApp mainWindow], nil, nil, nil, nil, [NSString stringWithFormat:NSLocalizedString(@"An error occurred while trying to reset AUTO_INCREMENT of table '%@'.\n\nMySQL said: %@", @"error resetting auto_increment informative message"), selTable, [mySQLConnection getLastErrorMessage]]); - } else { - [tableDataInstance resetStatusData]; - if([[tableDocumentInstance valueForKeyPath:@"tableTabView"] indexOfTabViewItem:[[tableDocumentInstance valueForKeyPath:@"tableTabView"] selectedTabViewItem]] == 3) { - [tableDataInstance resetAllData]; - [extendedTableInfoInstance loadTable:selTable]; - } - [tableInfoInstance tableChanged:nil]; } + + // reload data + [tableDataInstance resetStatusData]; + if([[tableDocumentInstance valueForKeyPath:@"tableTabView"] indexOfTabViewItem:[[tableDocumentInstance valueForKeyPath:@"tableTabView"] selectedTabViewItem]] == 3) { + [tableDataInstance resetAllData]; + [extendedTableInfoInstance loadTable:selTable]; + } + + [tableInfoInstance tableChanged:nil]; + } /** -- cgit v1.2.3