Ansgar Becker
cdb10d8005
Required code updates for recent VirtualTreeview update
2018-12-11 21:50:26 +01:00
Ansgar Becker
1a032ef726
When copying a table, use a column for the INSERT..SELECT query only if it's not a virtual one. Closes #84 .
2018-12-11 20:30:20 +01:00
Ansgar Becker
2a10422373
Issue #8 : provide two color presets for SQL editors in preferences dialog per dropdown, one for dark themes and one for light ones
2018-11-05 20:53:43 +01:00
Ansgar Becker
3759611c34
Issue #8 : convert system colors applied by code into their theme color
2018-10-27 17:47:16 +02:00
Ansgar Becker
9cdcd63145
Issue #213 : Assign system or custom font once, to the application, and let all forms inherit that font, so there is no need to call InheritFont() for each form.
2018-10-25 19:24:45 +02:00
Ansgar Becker
f7b4d0c0b8
Try the same workaround for invisible or black dropdown buttons on Wine as previously only for dropdown toolbuttons ( becd4bdd0e and 61202be058). Probably fixes issue #94 . May also not fix it, as the toolbutton issue was not only on Wine.
2018-02-03 22:47:29 +01:00
Ansgar Becker
5a8a4af29a
Rename helpers unit to apphelpers, to overcome a naming conflict with the FireMonkey unit FMX.Canvas.GPU.Helpers. Closes #102 .
2018-01-22 19:48:17 +01:00
Ansgar Becker
d4b294f35a
Support auto_increment flag on indexes other than primary or unique, on copy table dialog. If that still fails, give the user a hint to select the right index. See https://www.heidisql.com/forum.php?t=23383
2017-02-28 19:23:57 +00:00
Ansgar Becker
7d661df417
Fix SQL error in "Copy table" dialog, in PostgreSQL mode. Use lowercase table and column names in IS.TABLES, so PG can find them. See http://www.heidisql.com/forum.php?t=18847
2015-07-08 16:02:44 +00:00
Ansgar Becker
6e608f157e
Replace out-dated code which does not compile in 64bit mode in helpers.SetWindowSizeGrip. Use a TForm descendant in the new unit "extra_controls". Code parts taken from http://www.delphigroups.info/2/4/326787.html
2013-11-01 14:54:13 +00:00
Ansgar Becker
58b2a66800
Get column names from VIEW per IS.COLUMNS, not per SHOW COLUMNS, to support MSSQL here. Fixes empty grid results for MSSQL VIEWs. See comment #46 of issue #3212 .
2013-08-05 04:15:01 +00:00
Ansgar Becker
d0491f5737
Support auto_increment flag on unique key columns, in copy table dialog. Fixes issue #3250 .
2013-06-25 04:17:51 +00:00
Ansgar Becker
8e02fa9fee
Move helpers:GetIndexIcon to TTableKey.GetImageIndex
2013-06-25 04:15:11 +00:00
Ansgar Becker
e5486ebc5e
* Avoid calling TDBConnection.ClearDbObjects() on active database after copying table. Instead, call actRefresh which takes care of a probably opened table object in the table editor.
...
* Check for table existence via SELECT on IS.TABLES, avoid usage and refresh of db objects here also.
* Fixes issue #3250 .
2013-06-24 04:56:24 +00:00
Ansgar Becker
ea0675bcb5
Copy table dialog:
...
* Clear db cache only once in btnOKclick
* Clear db cache of target db when done, instead of refreshing active db
* Remove unused variables
* Remove empty comment clause from CREATE TABLE code
2013-06-22 05:45:11 +00:00
Ansgar Becker
56b6e103a0
Introduce TDBConnection.FindObject(db, obj). Use that in TDBConnection.QuotedDbAndTableName() and for checks for table existence.
2013-06-22 05:35:36 +00:00
Ansgar Becker
6371ff5557
Issue #3212 : Introduce TDBConnection.QuotedDbAndTableName(), callable with a db and table string. Internally calls TDBObject.QuotedDbAndTableName(), so we get the schema between db and table if required.
2013-06-22 04:45:53 +00:00
Ansgar Becker
645a9f3c7f
Make message strings from const.inc translatable
2012-11-29 06:15:44 +00:00
Ansgar Becker
9d8b4cd83a
Make more inline strings translatable.
2012-11-28 23:27:31 +00:00
Ansgar Becker
f96288fce9
Translate string variables and literals in .pas files. TODO: translate constants.
2012-11-26 05:44:01 +00:00
Ansgar Becker
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
Ansgar Becker
2b0a31194d
AUTO_INCREMENT attribute requires a primary key on the same column. So, in the copy table dialog, if the user unchecks the primary key, we need to auto-remove the AUTO_INCREMENT attribute as well. Otherwise the dialog runs into an error "there can be only one auto column and it must be defined as a key". See http://www.heidisql.com/forum.php?t=11238
2012-10-03 09:22:53 +00:00
Ansgar Becker
65a9011206
Give both dropdown and edit box the same width. See http://www.heidisql.com/forum.php?t=11039
2012-08-22 16:50:26 +00:00
Ansgar Becker
90ab0b6cf1
Refactor logic for reading and writing application and session settings:
...
* Introduce TAppSettings, created in dpr file
* Implement read and write methods, and replace callers of GetRegValue and MainReg.WriteInt/... with these
* Optimize read and write methods for avoiding redundant accesses to registry
* Auto-remove stored default settings from registry to avoid registry spam
* Replace synced MainForm.pref* variables with TAppSettings.Read* calls
* Move SetLocales call to dpr file
* Move MainForm.FDirname* variables to appropriate methods in helpers.pas
* Implement TQueryHistory.Create(SessionPath), reading its items within constructor
2012-08-19 10:55:08 +00:00
Ansgar Becker
5e8bf8306a
Remove unused unit inclusions, detected by CNPack/Uses cleaner
2012-05-01 08:34:12 +00:00
Ansgar Becker
ba14143238
Export whole CREATE VIEW code, not only the VIEW body. Fixes issue #2625 .
2012-02-04 06:52:21 +00:00
Ansgar Becker
3c725b3d76
Quote collation clause in all places. Fixes issue #2479 . Related: issue #1852 .
2011-06-27 19:44:07 +00:00
Ansgar Becker
e96fa77cbd
Do not cache dialog instances any longer. OnCreate code is mostly very quick, and caching them adds quite some pitfalls into the code. Not to mention 30 lines less code in main.pas now :)
2011-06-26 20:01:42 +00:00
Ansgar Becker
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
Ansgar Becker
4fbf2c23dd
Introduce experimental MS SQL support
2011-03-29 23:20:21 +00:00
Ansgar Becker
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
Ansgar Becker
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
Ansgar Becker
9a3211466a
Fix detection of focused db object for usage in copy table dialog. Could happen that a trigger with the same name of the wanted table was taken, instead of the table.
2010-10-26 18:47:59 +00:00
Ansgar Becker
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
Ansgar Becker
5d13d0677b
The 3 procedures Parse(Table|View|Routine)Structure() already do some connection specific stuff, and now even more, so they're moved to TMySQLConnection now. In order to display the right collation even if only the character set was found in a CREATE TABLE code, the default collation per charset is detected via CollationTable. See http://www.heidisql.com/forum.php?t=6348 .
2010-10-08 20:16:53 +00:00
Ansgar Becker
081858679a
Split copy table query into two: a) CREATE and b) INSERT INTO target (..) SELECT (..) FROM src, to avoid "Duplicate column name" error on old 4.0 servers. Fixes issue #2205 .
2010-10-07 21:51:09 +00:00
Ansgar Becker
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
Ansgar Becker
f86a72dd36
Attempt to fix some weird effects on tree node selection and refreshing logic. Unhides "Data" tab after creating a new table. Fixes issue #2148 . Details:
...
* Do process OnFocusChanged also while tree db refreshes, just avoid calling actEditObjectExecute.
* Make SelectedTable a property, rename to SelectedDbObj
* Remove calls to debug(), prefer LogSQL with lcDebug parameter
2010-09-15 23:09:43 +00:00
Ansgar Becker
6fa29605fd
SHOW VIEW may be not allowed. Disable VIEW editor in that case, but do not run regular expression into a no-match AV. Fixes issue #2159 .
2010-09-08 19:48:18 +00:00
Ansgar Becker
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
Ansgar Becker
88e7f7aa05
Implement query profiling in helpers box. Enhance usability of turning the listbox + tabset into a tree, with 5 root nodes instead of 5 tabs. Fixes issue #902 .
2010-08-13 19:42:54 +00:00
Ansgar Becker
33bf95ba12
Foreign key constraint symbol names must be unique in a database. To avoid violation errors the "Copy table" dialog should just leave the CONSTRAINT clause out from the CREATE TABLE code. In that case MySQL auto creates a valid name on demand. See http://www.heidisql.com/forum.php?t=6086
2010-06-30 23:37:23 +00:00
Ansgar Becker
c15baee972
Fix recently broken support for views in "Copy table" dialog.
2010-06-16 22:30:03 +00:00
Ansgar Becker
63be11dd14
Implement recent filters in "Copy table" dialog, selectable via button + dropdown menu.
2010-06-15 18:36:58 +00:00
Ansgar Becker
3444383466
Tweak copy table dialog:
...
- display number of checked/total child nodes per option node
- display row count on "Data" option
- remove plus button from disabled option nodes, and do not check them
- code cosmetic
2010-06-14 22:52:06 +00:00
Ansgar Becker
a6b761ba17
Enhancement: Prompt if target table exists, ask if it shall be dropped before creating the new table copy.
2010-06-14 17:28:54 +00:00
Ansgar Becker
44e21a0fbd
Bugfix: Only disable WHERE memo on first level "Data" node, not on second level nodes.
2010-06-14 17:19:40 +00:00
Ansgar Becker
3f60d711e7
Enhancement: Disable "Indexes" and "Foreign keys" node to indicate they have 0 child nodes
2010-06-14 06:04:39 +00:00
Ansgar Becker
56548f29c0
Bugfix: Mixed check state also means that this node was checked
2010-06-14 06:03:10 +00:00
Ansgar Becker
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