diff options
author | Bibiko <bibiko@eva.mpg.de> | 2009-05-28 09:15:53 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2009-05-28 09:15:53 +0000 |
commit | 297086a539bc69bf389979e68e3d8dcfc64f56d4 (patch) | |
tree | 167dea172c1f7dac7780a91b3f0608a3154eac98 | |
parent | 1f708a13801b64299effcf6cf3df7b2224ba2e6e (diff) | |
download | sequelpro-297086a539bc69bf389979e68e3d8dcfc64f56d4.tar.gz sequelpro-297086a539bc69bf389979e68e3d8dcfc64f56d4.tar.bz2 sequelpro-297086a539bc69bf389979e68e3d8dcfc64f56d4.zip |
• Table Info
- show create syntax for views
- fixed editing behaviour of the Comments field (esp. for views)
-rw-r--r-- | Source/SPExtendedTableInfo.m | 17 | ||||
-rw-r--r-- | Source/SPTableData.m | 25 |
2 files changed, 37 insertions, 5 deletions
diff --git a/Source/SPExtendedTableInfo.m b/Source/SPExtendedTableInfo.m index d2e39509..2b20fbab 100644 --- a/Source/SPExtendedTableInfo.m +++ b/Source/SPExtendedTableInfo.m @@ -187,6 +187,14 @@ if ([[statusFields objectForKey:@"Engine"] isEqualToString:@"View"]) { [tableTypePopUpButton addItemWithTitle:@"View"]; + // Set create syntax + [tableCreateSyntaxTextView setEditable:YES]; + [tableCreateSyntaxTextView setString:@""]; + [tableCreateSyntaxTextView insertText:[[tableDataInstance tableCreateSyntax] createViewSyntaxPrettifier]]; + [tableCreateSyntaxTextView setEditable:NO]; + } else { + [tableCreateSyntaxTextView setEditable:NO]; + [tableCreateSyntaxTextView setString:@""]; } [tableCreatedAt setStringValue:@"Created at: "]; @@ -206,9 +214,8 @@ // Set comments [tableCommentsTextView setString:@""]; + [tableCommentsTextView setEditable:NO]; - // Set create syntax - [tableCreateSyntaxTextView setString:@""]; return; } @@ -274,6 +281,7 @@ [tableSizeFree setStringValue:[self _formatValueWithKey:@"Data_free" inDictionary:statusFields withLabel:@"Free data size"]]; // Set comments + [tableCommentsTextView setEditable:YES]; [tableCommentsTextView setString:[statusFields objectForKey:@"Comment"]]; // Set create syntax @@ -288,11 +296,12 @@ */ - (void)textDidEndEditing:(NSNotification *)notification { - if (([notification object] == tableCommentsTextView) && ([selectedTable length] > 0)) { + id object = [notification object]; + if ((object == tableCommentsTextView) && ([object isEditable]) && ([selectedTable length] > 0)) { NSString *currentComment = [tableDataInstance statusValueForKey:@"Comment"]; NSString *newComment = [[tableCommentsTextView string] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; - + // Check that the user actually changed the tables comment if (![currentComment isEqualToString:newComment]) { diff --git a/Source/SPTableData.m b/Source/SPTableData.m index bedc9dc1..e1467c2d 100644 --- a/Source/SPTableData.m +++ b/Source/SPTableData.m @@ -585,8 +585,31 @@ // Catch unselected views and return nil if ([viewName isEqualToString:@""] || !viewName) return nil; + // Retrieve the CREATE TABLE syntax for the table + CMMCPResult *theResult = [mySQLConnection queryString: [NSString stringWithFormat: @"SHOW CREATE TABLE %@", + [viewName backtickQuotedString] + ]]; + + // Check for any errors, but only display them if a connection still exists + if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { + if ([mySQLConnection isConnected]) { + NSRunAlertPanel(@"Error", [NSString stringWithFormat:@"An error occured while retrieving table information:\n\n%@", [mySQLConnection getLastErrorMessage]], @"OK", nil, nil); + } + return nil; + } + + // Retrieve the table syntax string + NSArray *syntaxResult = [theResult fetchRowAsArray]; + + if ([[syntaxResult objectAtIndex:1] isKindOfClass:[NSData class]]) { + tableCreateSyntax = [[NSString alloc] initWithData:[syntaxResult objectAtIndex:1] encoding:[mySQLConnection encoding]]; + } else { + tableCreateSyntax = [[NSString alloc] initWithString:[syntaxResult objectAtIndex:1]]; + } + + // Retrieve the SHOW COLUMNS syntax for the table - CMMCPResult *theResult = [mySQLConnection queryString:[NSString stringWithFormat:@"SHOW COLUMNS FROM %@", [viewName backtickQuotedString]]]; + theResult = [mySQLConnection queryString:[NSString stringWithFormat:@"SHOW COLUMNS FROM %@", [viewName backtickQuotedString]]]; // Check for any errors, but only display them if a connection still exists if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { |