diff options
author | Bibiko <bibiko@eva.mpg.de> | 2009-06-10 13:14:43 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2009-06-10 13:14:43 +0000 |
commit | 910d3dcf2fcea97d445b94ba902f8a0b8279916e (patch) | |
tree | cef06756825969ef0c24e8c04af52473c25991ca /Source | |
parent | 65ad99e8fdbce63bcf65151d5f77403683959349 (diff) | |
download | sequelpro-910d3dcf2fcea97d445b94ba902f8a0b8279916e.tar.gz sequelpro-910d3dcf2fcea97d445b94ba902f8a0b8279916e.tar.bz2 sequelpro-910d3dcf2fcea97d445b94ba902f8a0b8279916e.zip |
• cleaned code for the case that the user selects a view which causes a MySQL error while retrieving data
- [SPTableData tableEncoding] returns nil if no encoding can be found
- [TableList tableViewSelectionDidChange:] checks in beforehand for a valid table encoding; this avoids to get the same MySQL error message twice and cleaned the structure view
• if a MySQL error occurred while retrieving table data for the content view set the content view to a defined and clean status
• bound TableContent's filterButton to DBView.xib to disable it if an error occurred (otherwise the status bar shows unexplainable results )
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPTableData.m | 2 | ||||
-rw-r--r-- | Source/TableContent.m | 5 | ||||
-rw-r--r-- | Source/TablesList.m | 13 |
3 files changed, 14 insertions, 6 deletions
diff --git a/Source/SPTableData.m b/Source/SPTableData.m index 5657dd2c..a5e29a9d 100644 --- a/Source/SPTableData.m +++ b/Source/SPTableData.m @@ -75,7 +75,7 @@ [self updateInformationForCurrentTable]; } } - return [NSString stringWithString:tableEncoding]; + return (tableEncoding == nil) ? nil : [NSString stringWithString:tableEncoding]; } /* diff --git a/Source/TableContent.m b/Source/TableContent.m index 855c44ca..da8a9745 100644 --- a/Source/TableContent.m +++ b/Source/TableContent.m @@ -110,8 +110,9 @@ [tableContentView removeTableColumn:[theColumns objectAtIndex:0]]; } - // If no table has been supplied, reset the view to a blank table and disabled elements - if ( [aTable isEqualToString:@""] || !aTable ) + // If no table has been supplied, reset the view to a blank table and disabled elements. + // [tableDataInstance tableEncoding] == nil indicates that an error occured while retrieving table data + if ( [aTable isEqualToString:@""] || !aTable || [tableDataInstance tableEncoding] == nil) { // Empty the stored data arrays [fullResult removeAllObjects]; diff --git a/Source/TablesList.m b/Source/TablesList.m index 2d8ad1dc..d90f7972 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -1106,11 +1106,14 @@ if( [[tableTypes objectAtIndex:[tablesListView selectedRow]] intValue] == SP_TABLETYPE_VIEW || [[tableTypes objectAtIndex:[tablesListView selectedRow]] intValue] == SP_TABLETYPE_TABLE) { + + // tableEncoding == nil indicates that there was an error while retrieving table data + NSString *tableEncoding = [tableDataInstance tableEncoding]; // If encoding is set to Autodetect, update the connection character set encoding // based on the newly selected table's encoding - but only if it differs from the current encoding. if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultEncoding"] isEqualToString:@"Autodetect"]) { - if (![[tableDataInstance tableEncoding] isEqualToString:[tableDocumentInstance connectionEncoding]]) { - [tableDocumentInstance setConnectionEncoding:[tableDataInstance tableEncoding] reloadingViews:NO]; + if (tableEncoding != nil && ![tableEncoding isEqualToString:[tableDocumentInstance connectionEncoding]]) { + [tableDocumentInstance setConnectionEncoding:tableEncoding reloadingViews:NO]; [tableDataInstance resetAllData]; } } @@ -1121,7 +1124,11 @@ contentLoaded = NO; statusLoaded = NO; } else if ( [tabView indexOfTabViewItem:[tabView selectedTabViewItem]] == 1 ) { - [tableContentInstance loadTable:[tables objectAtIndex:[tablesListView selectedRow]]]; + if(tableEncoding == nil) { + [tableContentInstance loadTable:nil]; + } else { + [tableContentInstance loadTable:[tables objectAtIndex:[tablesListView selectedRow]]]; + } structureLoaded = NO; contentLoaded = YES; statusLoaded = NO; |