40 Commits

Author SHA1 Message Date
51c27f7a27 * Silence various compiler warnings about non initialized variables.
* Globally turn off platform warnings
2013-07-16 04:45:28 +00:00
9a7a66d13c Add page control to trigger editor, and show CREATE code of triggers in separate tab. Fixes issue #3240. 2013-07-07 06:35:30 +00:00
f96288fce9 Translate string variables and literals in .pas files. TODO: translate constants. 2012-11-26 05:44:01 +00:00
ca1d94c87b Issue #557: Include gnugettext.pas from https://dxgettext.svn.sourceforge.net/svnroot/dxgettext/trunk/dxgettext/sample/ . And add basic code to all FormCreate events to translate their components in the future. 2012-11-10 14:28:44 +00:00
5e8bf8306a Remove unused unit inclusions, detected by CNPack/Uses cleaner 2012-05-01 08:34:12 +00:00
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