bd8cc387ca
Add context menu with copy, cut, paste and select all items to all db object editors which have a TSynMemo. Fixes issue #2765 .
2012-03-24 22:20:09 +00:00
2d548b5ef6
Introduce some wrapper functions for message and error dialogs in order to have less code and to avoid hidden titles on Windows XP. Fixes issue #2425 .
2011-05-27 04:48:21 +00:00
b4a5a91572
Definer column not available in 5.0.16 and earlier. Fixes issue #2394 .
2011-04-28 18:09:33 +00:00
4fbf2c23dd
Introduce experimental MS SQL support
2011-03-29 23:20:21 +00:00
49a97584e6
Code preparation for non-MySQL connections: Extract abstract stuff into a new TDBConnection class, and let TMySQLConnection derive from that. Same with TDBQuery / TMySQLQuery. See issue #1008 .
2011-03-17 23:03:54 +00:00
b50659135c
Again, move code for loading libmysql.dll - the right place is now the connection object itself, which loads the library on demand, in SetActive(). This enables the application to start independently of an existent library, raising an error when pressing the connect button. Also, this is a first step towards multi-dbms.
2011-02-17 00:26:53 +00:00
6f95a796e1
Modify identifier quoting logic:
...
- Move QuoteIdent() and DeQuoteIdent() out of TMySQLConnection, make them classless
- Remove TMainForm.mask(), instead always use QuoteIdent()
- Introduce a third parameter to QuoteIdent(): "AlwaysQuote" - setting this to false will quote only if required
- Set AlwaysQuote to false for all stuff which drops some code into the query editor, see http://www.heidisql.com/forum.php?t=6986
2010-11-24 23:12:13 +00:00
6c2a100945
Implement combo box for definer in routine + view + trigger editor. Fixes issue #2189 . Some related changes here:
...
- Remove ensureValidIdentifier() and its partly uncatched exceptions. Instead, disable "OK" buttons for empty table/view/proc name.
- QuoteIdent and DeQuoteIdent now take the glue char instead of a "HasMultiSegments" boolean param, so they're more exact when "user@host" or "db.name" come in.
2010-10-12 22:13:08 +00:00
0fa6c15c9d
Implement multiple connections per window. DBtree and friends now have their nodes bound to TDBObject instances. Fixes issue #2144 .
2010-10-05 23:06:29 +00:00
f323420ef1
Enable TDBObject instances to return and cache their own CREATE code, and replace various manual SHOW CREATE xyz occurrences with this new function call. Additionally, modify ParseViewStructure so it takes the CREATE code instead of just the VIEWs name, so it works similar to ParseTableStructure and ParseRoutineStructure. Finally, take this CREATE code to detect all settings for a VIEW, instead of taking them from information_schema.VIEWS. Fixes issue #2131 .
2010-09-07 20:58:48 +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
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
b57153c956
For DROP TRIGGER there is no IF EXISTS clause, so we just ignore errors. Important if trigger was dropped before, tried to recreate for the second or later time. Fixes issue #1788 .
2010-03-20 16:05:58 +00:00
532713e51a
No need to check if a trigger exists if we're already in edit-mode. MySQL 5.0 seems to not support the IF EXISTS clause anyway. Fixes issue #1763 .
2010-03-13 13:59:03 +00:00
d35815de77
Code cosmetic: rename showstatus to ShowStatusMsg
2010-03-08 23:21:34 +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
58857e5348
Fill default content of trigger body with a BEGIN END block. Fixes issue #1653 .
2010-02-03 22:12:11 +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
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
b48ef9406d
Gracefully ignore it when a trigger does not exist in editing mode. Important for cases in which the user has SQL errors in his trigger body. Fixes issue #1558 .
2009-12-23 14:27:01 +00:00
e356cb7ed7
Sanitize all "uses" clauses from unneeded unit references.
2009-12-22 23:19:56 +00:00
7272ba3bc3
Remove handling of crashed tables - there is no difference to normal tables in the way we handle them.
2009-12-19 21:25:59 +00:00
1bca351dd1
Performance: When editing a trigger, fetch its attributes from a SHOW TRIGGERS command rather than by SELECTing information_schema.TRIGGERS which is slow. Related to issue #1529 .
2009-12-19 19:15:20 +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
d1cc99e29f
Fix staying hourglass mouse cursor when editing a view, routine or trigger.
2009-12-15 22:22:36 +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
8520f97fff
Hack editor class descendants so that Delphi sees them as TFrame subclasses instead of TDBObjectEditor. Works around Delphi bug 73397 - see http://qc.embarcadero.com/wc/qcmain.aspx?d=73397
2009-12-13 14:29:18 +00:00
3aef5bb5e5
Unify Init() method of database object editors.
2009-12-13 07:32:46 +00:00
2dcf02feb3
Implement a parent class for all database object editors (table, view, routine, trigger) and let these editors derive from this class. Could simplify code in the future.
2009-12-11 18:20:16 +00:00
b4cca2ea1f
Implement handling of triggers as separate database objects, on the same level as tables, routines and views. Means we have a trigger editor frame, a new icon and various code extensions. Fixes issue #806 .
2009-12-11 16:07:59 +00:00