Commit Graph

195 Commits

Author SHA1 Message Date
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
c0610ef70d Add support for renaming tables in MS SQL. Fixes issue #2981. 2012-10-04 19:04:05 +00:00
Ansgar Becker
3ff4bba55c Enhance MS SQL compatibility in table editor:
* Introduce specifities for ADD/CHANGE column clauses. Fixes issue #2532.
* Remove unsupported DROP DEFAULT for MS SQL
* Remove unsupported LENGTH/SET attribute for relevant data types
2012-09-29 07:43:00 +00:00
Ansgar Becker
f96f4de2b7 Prefer displaying checkboxes in a disabled style, over displaying no checkbox at all, for not applicable table attributes 2012-09-08 06:29:10 +00:00
Ansgar Becker
04f65eea51 Do not allow NULL, and force NOT NULL, on primary key columns. See http://www.heidisql.com/forum.php?t=11156 2012-09-08 05:57:10 +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
276797ed52 Code cosmetic: Move MODIFIEDFLAG to const.inc 2012-04-26 04:44:36 +00:00
Ansgar Becker
0d0fad6745 SelectNode triggers a potentially set OnFocusChanged event, benefit from that logic in some places where I used to assign Focusnode := xyz. 2012-03-13 22:21:53 +00:00
Ansgar Becker
4de1b3012d Move code from GetSQLSplitMarkers and SplitSQL into TSQLBatch class. Enables me to access details like string size of batch. Preparation for query history. 2012-03-06 21:52:57 +00:00
Ansgar Becker
af3f590723 Use one color pulldown for setting grid text colors, not one per data type. Use all TDBDatatypeCategory's here, so this introduces a separate color for floats and integers, which were "numeric" before. 2012-02-27 22:16:05 +00:00
Ansgar Becker
d521a5eb2e End grid cell editor in foreign key list if current tab changes. Fixes issue #2740. 2012-02-24 20:28:58 +00:00
Ansgar Becker
b5e28f43db Refreshing datagrid result while connection is cut triggers SelectedTableColumns to reset implicitly in ConnectionReady > DBTreeFocusChanged > ParseSelectedTableStructure. Add an explicit Connection.Ping(true) before firing any query in DatagridBeforePaint, and merge code from ParseSelectedTableStructure into DBTreeFocusChanges. Fixes issue #2644. 2011-12-14 21:11:51 +00:00
Ansgar Becker
a69041d17d Add support for Windows 7 task button progress. Unify all callers of ProgressBarStatus in a set of 5 functions in main unit instead of helpers, as this is where the progress bar is placed and also we need the handle of the main window. 2011-11-08 22:27:52 +00:00
Ansgar Becker
deb75f5c6a Revert r3938, and add backticks around identifiers again, so ParseTableStructure can detect column for "copy columns" feature. Fixes issue #2540. 2011-10-01 06:58:33 +00:00
Ansgar Becker
85457c45b4 Delete node so treeIndexes.Repaint does not expect old children in moved up node. Todo: Bind FKeys to tree nodes if that's possible with deleted keys. Fixes issue #2557. 2011-10-01 06:28:16 +00:00
Ansgar Becker
94c1ecc81a Remove redundant backticks in table editors CREATE and ALTER code. See http://www.heidisql.com/forum.php?t=9056 2011-08-24 05:50:51 +00:00
Ansgar Becker
0bc9030acd Allow NULL when selecting NULL as default value. See http://www.heidisql.com/forum.php?t=8790 2011-06-27 21:34:53 +00:00
Ansgar Becker
98c872909c Support virtual columns in MariaDB 5.2. Fixes issue #2451. 2011-06-10 23:36:38 +00:00
Ansgar Becker
c8cfc39c99 Avoid AVs by referring to DBObject.Connection instead of MainForm.ActiveConnection, which is nil for milliseconds when the tree focused node changes. Fixes issue #2418. 2011-05-30 17:21:25 +00:00
Ansgar Becker
2e3c71e443 Disable "Remove index" button after click on "clear". See http://www.heidisql.com/forum.php?t=8610 2011-05-29 15:26:58 +00:00
Ansgar Becker
80634bd952 Avoid calling Mainform.ActiveDatabase when we have TDBObject.Connection.Database. Probably fixes issue #2418. 2011-05-27 17:37:18 +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
478c0306c7 Use modern TaskMessageDlg as a replacement for MessageDlg where appropriate. 2011-05-26 06:08:19 +00:00
Ansgar Becker
592b2d98b0 Disable save button if 0 columns. Fixes issue #2411. 2011-05-14 13:55:27 +00:00
Ansgar Becker
52c57c84e3 Fix follow up problems introduced in r3795: DROP DEFAULT on renamed column took the old column name, and the old table name is used also when it was renamed. Revert r3795, move DROP DEFAULT clauses before the main ALTER query, and introduce a .OldDataType property on TTableColumn to check if that can have a default value. 2011-04-30 05:07:50 +00:00
Ansgar Becker
90a7cd1941 Drop default value *after* data type was altered, to avoid "can't have a default value". Fixes issue #2361. 2011-04-23 08:05:14 +00:00
Ansgar Becker
cb0e54068c Remove redundant functions IsMSSQL and IsMySQL. 2011-04-19 23:07:52 +00:00
Ansgar Becker
14d21a9925 Exclude text and blob columns for ALTER col DROP DEFAULT query. Fixes issue #2361. 2011-04-17 08:50:31 +00:00
Ansgar Becker
9bb2df8d80 Rename columns occurrences in indexes when user renames a column, so the GUI shows the column still as indexed. Fixes issue #2347. 2011-04-07 22:21:56 +00:00
Ansgar Becker
bef2d5278d Support long table comments on newer servers. http://www.heidisql.com/forum.php?t=8105 2011-04-02 06:00:58 +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
06d7a97798 Handle multiple queries in table editor's apply action. This way, special queries for edited foreign keys and dropping defaults are revealed in the "ALTER code" tab. Moved from ApplyModifications. 2011-02-19 08:22:17 +00:00
Ansgar Becker
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
Ansgar Becker
06ae6b9c8c Drop default column value if user selects "No default". Fixes issue #2311. 2011-02-16 19:46:03 +00:00
Ansgar Becker
b0362f3ec0 Only pass ROW_FORMAT clause into CREATE TABLE query if explicitly set. 2011-02-03 22:29:02 +00:00
Ansgar Becker
0ecbae3342 Cell editor is not repositioned when moving field up or down. Force editor to exit in these cases. Fixes issue #2287. 2011-02-01 21:59:51 +00:00
Ansgar Becker
65148c596d Redo r3571 - seems that was not the cause of slowness. 2011-01-11 07:01:58 +00:00
Ansgar Becker
d2fdeef0fb Revert r3571, to test if that caused slowness described in issue #2266 - of which I am unsure. 2011-01-10 22:57:49 +00:00
Ansgar Becker
40791c52a9 Do what's needs to be done to tell a node it has children now. 2011-01-10 20:42:45 +00:00
Ansgar Becker
ea4f87f4d0 Skip filtered nodes in various GUI actions, e.g. "drop objects" and "export as csv". Fixes issue #2255. 2010-12-20 22:00:46 +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
32c63790c3 Increase minimum width of icon column so upper numbers are not cut away. 2010-10-26 18:34:08 +00:00
Ansgar Becker
e2cc3482c0 Paint one icon per index in a column editor row, not only for the first key. Fixes issue #2211. 2010-10-25 23:29:17 +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
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
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
a13493959e Refresh column names in helper tree after altering a table. Fixes issue #2141. 2010-09-05 22:23:52 +00:00