136 Commits

Author SHA1 Message Date
c0da6e5a21 Refactor "Copy table" dialog:
* Replace checkboxes, radio buttons and checklistbox by a VirtualTree using checkbox support
* Support selecting/deselecting single indexes
* Support foreign keys
* Place a SynMemo at the bottom in which the user can type an optional WHERE clause to filter incoming data. Fixes issue #2000.
* Move code for SQL generation into TTableColumn etc.
2010-06-14 00:21:33 +00:00
3c4beba2dd Set and fetch default height of PageControl via constant rather than from the control itself, as that may not be created that early. A minimal chance that this fixes issue #1995. 2010-06-11 16:56:12 +00:00
84c638f0de Prefer VCL function StripHotkey() over StringReplace 2010-05-30 23:19:23 +00:00
1838a0eaa7 Use original name of a foreign key in DROP FOREIGN KEY query when renaming. Fixes issue #1930. 2010-05-10 18:51:10 +00:00
2d8633ffcf Enhance auto generation of foreign key names, after user selected the same reference table as in another key, a counter is appended (FK_tbl_rfr_2, FK_tbl_rfr_3, ...). Fixes issue #1894. 2010-05-09 10:04:42 +00:00
7ce555ff1a Straighten sort logic in lists and db tree:
* Let both header clicks and TDBObjectComparer consistently use the same compare callback function CompareAnyNode()
* When refreshing a list, VT.SortTree sorts nodes if toAutoSort is set. Then, selected nodes are mostly different ones than before refreshing. Also, what GetVTCaptions did was only looking after the first column caption which can exist besides duplicates. So, for now, do not restore selected nodes after refreshing a list, which is now more standard behavior.
Fixes issue #1911.
2010-05-06 22:46:35 +00:00
05b07eb8f2 Implement editing capabilities into TMySQLQuery, and make query results editable by using all the same events as in DataGrid. Most probably some bugs to fix now.
* Fixes issue #723
* Fixes issue #873
2010-05-05 21:39:15 +00:00
b3b1710c35 Introduce EDatabaseError exception class, so we're able to handle only those and let others raise the exception up to MadExcept. Helps finding non-database related AVs as users are able to get the callstack now. Similar to r3292 but more consistent all over the code now. 2010-04-24 13:56:57 +00:00
604672f3d8 Attempt to slightly simplify logic for refreshing database tree node after adding/renaming a db object. 2010-04-18 23:15:20 +00:00
09e4fda755 Quote any COLLATE clause in CREATE + ALTER TABLE statement. Fixes issue #1852. 2010-04-13 06:29:28 +00:00
5f9129bef2 Implement event editor for MySQL 5.1+ servers. Also, simplify some code around database objects and their editors. Fixes issue #1527 2010-04-08 23:16:40 +00:00
45ba97b13f Add button and global action for executing selected functions and/or procedures by click. Fixes issue #1818. This requires some parsing code to be moved to helpers unit so it's also available in ListTables' context menu. Also, to avoid new AVs, any db object editor now focuses the edited object in the tree, which is important for creating new ones which were neither existant nor focused. 2010-04-04 22:33:12 +00:00
638ac7689d Reset old name of column when user clicks "Save". Also, update ALTER and CREATE code at that time. Fixes issue #1810. 2010-03-27 13:54:34 +00:00
1ef9ebf07b Fix wrong ALTER code when changing a column name more than one time. Fixes issue #1792. 2010-03-24 17:18:48 +00:00
f411f36f32 Force repainting columns list after modifying some index. Ensures key icons on column nodes are displayed immediately. 2010-03-16 18:20:38 +00:00
fc31018600 Display key icons in data grid column headers 2010-03-14 12:22:05 +00:00
d35815de77 Code cosmetic: rename showstatus to ShowStatusMsg 2010-03-08 23:21:34 +00:00
bc487d089c Avoid AVs when index lists are in editing mode and user clicks "Remove" or "Clear" button. Fixes issue #1733. 2010-03-02 23:23:02 +00:00
243b9bbe17 Item caption for "Add to index" > [Primary Key] should always be "PRIMARY", not a custom name. Fixes issue #1726. 2010-02-26 22:58:10 +00:00
14e03d9647 Also don't quote default values of a float type column, same as for integers. 2010-02-17 00:23:38 +00:00
e045cb3d76 Delphi 2010 has PNG + alpha channel support in TImageList, so we don't need PNGcomponents any longer. 2010-02-08 00:36:17 +00:00
17c27c8b58 Add pink icon for foreign key columns. Fixes issue #1669. 2010-02-07 12:31:09 +00:00
9192543d8c Auto create pretty foreign key name "FK_thistable_reftable" if it was not customized yet. Fixes issue #1671. 2010-02-07 12:14:22 +00:00
3195b25e8f Only display tables in reference table pulldown of foreign key editor. Stored procedures or triggers cannot be applied here. Fixes issue #1668. 2010-02-07 11:37:01 +00:00
64d3d1447e Foreign key editor needs to be repainted when selecting another table. Fixes issue #1667. 2010-02-07 10:45:43 +00:00
fc6d4c2a48 Try to fix most DPI related glitches. Especially TFrames need a ScaleBy() call, which is done automatically on TForms. Fixes issue #1656. 2010-02-04 23:50:47 +00:00
91d53bbbcc Replace default value in object editors by ghosted hint text 2010-02-03 22:18:28 +00:00
81a7596bc1 When foreign key tab is active with a MyISAM table, switching to a InnoDB table did not activate the controls. Fixes issue #1642. 2010-02-02 00:15:04 +00:00
97ce23ee1f Add support for indexes using BTREE/RTREE/HASH algorithm. Make that visible in a new, 3rd column in the index tree. Fixes issue #1576. 2010-01-22 10:21:27 +00:00
a0a1ed24c2 If the first column with the number of the column has too less width, sometimes it's not clear that the user can resize it to show its whole text. This change adds an auto-resize mechanism, which is fired after any node structure was changed. Fixes issue #1609. 2010-01-18 08:22:18 +00:00
1f39e59940 Disable non working column default values for given data type. Fixes issue #1519. 2010-01-17 16:12:35 +00:00
c85ed71ba0 If user disables "Allow NULL" for some column which has NULL as default value, silently change that default value to "No default", instead of "Custom text". Additionally, this fixes the default text "NULL" as literal in such cases. 2010-01-17 15:23:11 +00:00
8ba9fb7b77 Allow space bar to modify checkbox columns "Allow NULL" and "Unsigned". Fixes issue #1605 2010-01-17 10:20:08 +00:00
5c29403c7b Auto-fix user selected, non working default value/type when data type has changed. Fixes issue #1411. 2010-01-17 07:43:14 +00:00
9080ad7607 No need to use the Wide* version of string functions any longer. 2010-01-15 20:28:48 +00:00
d70ea85786 Ask user if in-memory modifications to table, view, trigger or routine should get saved, this time including a Cancel button, which cancels either
* focusing a different object in database tree and/or
* closing application
TODO: Internal switching to different connection probably needs that too?
2010-01-15 17:13:24 +00:00
52ea8f410a Use Unicode enabled TStringList instead of TWideStringList in all places. Should have no visible effect, apart from a very minor performance optimization, as String reference pointers are handled by Delphi, WideString by Windows. 2010-01-14 19:41:58 +00:00
25ac096554 Make more use of Generics, this time for columns, keys and foreigne keys lists, used by main unit and table editor. Frees code from annoying casting and makes it more type safe. 2010-01-08 00:30:51 +00:00
c2883e0f3d Don't display quotes around default values for numeric columns, so it's more clear what the server will insert by default. 2010-01-07 23:04:55 +00:00
a4652d39a4 * Fix compiler warnings due to implicit AnsiString to (Unicode)String or vice versa
* Remove workaround for Unicode text to and from clipboard
* Fix writing/reading wrong encoded text into/from registry - no need to use Utf8Encode() any longer
* Implement TMySQLQuery.ColAsAnsi() for cases in which we read binary data.
2010-01-07 00:00:56 +00:00
7d401ffde8 Upgrade to Delphi 2010:
* Removes TNT Unicode controls, which are no longer required. All VCL controls now have native Unicode support.
* Remove Delphi 11 packages, otherwise we would either need to keep TNT or break Unicode
* PngComponents update from Uwe Raabe on http://cc.embarcadero.com/Item/26127
* Adjust auto build process
* Since Delphi 2009, Strings are now UnicodeStrings, not AnsiStrings any longer. Fix a bunch of compiler errors which came along with this change.
TODO: Project should compile but give tons of compiler warnings.
2010-01-05 23:14:33 +00:00
eb9915d5be Invalidate columns and keys of an edited table when pressing the "Save" button, to avoid SQL errors when switching to "Data" tab. Fixes issue #1556 2009-12-22 23:38:38 +00:00
e356cb7ed7 Sanitize all "uses" clauses from unneeded unit references. 2009-12-22 23:19:56 +00:00
d92a7d4394 Indicate ON UPDATE clause in table editor's column list. Fixes issue #1545. 2009-12-21 12:42:16 +00:00
35e8bbb304 Do not fetch database objects from information_schema, which has gotten extremely slow on servers with many databases and triggers, since we support triggers.
* Instead, use separate SHOW commands for tables, functions, procedures and triggers
* Catch this chance to move these methods from main unit to mysql_connection, so they're accessible in a more generic way
* Additionally, introduce new classes TDBObject and TDBObjectList which provide a more generic way than TMySQLQuery to access these database objects.
Fixes issue #1529
2009-12-19 11:40:28 +00:00
27ebadce95 Work around unassigned menu variable. Fixes issue #1536. 2009-12-15 23:02:46 +00:00
d100a9f029 Add <Select All> and <Copy> menu items to SQL code memos. Fixes issue #1530. 2009-12-15 00:37:54 +00:00
03d7052d78 Fix ALTER code for modified index names, and added + deleted indexes. Fixes issue #1533. 2009-12-15 00:25:46 +00:00
0d81ddde51 Invalidate CREATE and ALTER code in table editor one more time. Fixes issue #1532. 2009-12-15 00:07:12 +00:00
dd398bb101 * Factor more code out of each database object editors into parent TDBObjectEditor.
* Use this chance to add a confirmation dialog when leaving the editors, to ask the user if he wants to save modifications. Fixes issue #1524.
* Also, enhance Mainform.RefreshTreeDB in a way that it does not trigger the OnFocusChange event. Important for the editors when saving changes.
2009-12-14 23:55:36 +00:00