aad99190ae
Table editor: Apply default length/set for new columns as long as user didn't touch it. Fixes issue #2084 .
2010-07-14 10:52:34 +00:00
6b03976eb7
Attempt to fix some memory leaks in TMySQLQuery, when it gets destroyed. Should already be done by the compiler but who knows, probably this fixes issue #2063 .
2010-07-13 17:59:00 +00:00
e7bfca41b4
Add LIMIT 1 clause to grid UPDATE queries, to make these safer on tables without sufficient unique key. Fixes issue #2079 .
2010-07-11 18:56:19 +00:00
7cd1c7b0ab
Add support for ZEROFILL flag in table editor. Introduces a new checkbox column in the columns list. Fixes issue #570 .
2010-07-04 13:35:54 +00:00
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
346e4698eb
Be sure later calls to SetRecNo are executed after discarding a new grid row. Fixes issue #2031 .
2010-06-22 05:39:45 +00:00
3ddf240983
Trim db names to ignore such minor typos. Fixes issue #2036 .
2010-06-21 10:00:15 +00:00
35ea591027
Do not overtake empty strings in semicolon separated list of databases. Fixes issue #2032 .
2010-06-21 06:03:13 +00:00
b215089ada
Make data in VIEWs editable again by fetching table name and column names in a slightly different way. Fixes issue #1999 .
2010-06-20 16:45:17 +00:00
edb9ce1487
Split identifiers with dot only in explicit cases, so column names containing a dot can be loaded and created. Fixes issue #2026 .
2010-06-18 16:52:41 +00:00
e16d1bcc59
Fix wrong "DROP [index name]" clause when turning a normal key into a primary key. Fixes issue #2011 .
2010-06-16 18:55:33 +00:00
e359ad2f98
Reset FRecNo after executing a new query, otherwise SetRecNo does nothing if FRecNo was already 0. Fixes issue #2009 .
2010-06-14 21:50:27 +00:00
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
5bc81b96d2
Make grid scrolling incredibly much faster, by exiting early in SetRecNo if current row is already the right one. See http://www.heidisql.com/forum.php?t=5890
2010-06-11 21:04:52 +00:00
24295f111e
Immediately prepare editing when data grid fetches rows, as that implicitly fixes BLOBs detection and enables "Image preview" action. Fixes issue #1948 .
2010-06-11 19:52:42 +00:00
d81cc6cd7b
Treat BLOBs like required in grid INSERTs and UPDATEs. Bug report: http://www.heidisql.com/forum.php?t=5883
2010-06-04 18:19:30 +00:00
f01823fb56
Fix AV when checking if "Image view" shall be enabled or disabled. Fixes issue #1974 .
2010-05-31 22:18:05 +00:00
7c83d1a01e
mysql_data_seek() is required for cumulated results (datagrid) on the very first row of an added result, to avoid AVs when that result has its cursor at the end or somewhere in the middle. Fixes an AV when exporting grid data.
2010-05-29 00:21:38 +00:00
5351f8df23
New feature: When mouse hovers over status bar panel holding the server version, display various connection related details in a hint.
2010-05-28 19:41:17 +00:00
9984bf0236
Issue #1135 : Implement tabs for multiple batch results in a query tab. Does not yet show multi results of stored procedures. Maximum number of tabs is customizable in Preferences > Data.
2010-05-26 23:11:08 +00:00
53f3010689
Make QuotedDbAndTableName more universal, and let DatabaseName return current db on old servers early.
2010-05-22 07:03:03 +00:00
a353aa3008
Introduce helper function TMySQLConnection.DecodeAPIString() which auto decodes incoming data as required by charset. Also, call this on Field.name when fetching column names in TMySQLQuery.Execute - fixes issue #1943 .
2010-05-15 17:11:53 +00:00
1ab975b0d5
Move responsibility for well formed floats and integers from TMySQLQuery.SetCol() to caller, so new values don't get touched at all, and to avoid double-unformatted numbers in "Duplicate row" feature. Fixes issue #1936 .
2010-05-12 18:33:21 +00:00
d3711b5d62
Work around empty members of PMYSQL_FIELD on servers below 4.1 - org_name and db are empty on such servers, but Heidi needs both to compose safe and valid INSERT/UPDATE/DELETE queries. In order to at least allow grid editing, do some unsafe stuff for old servers: Never take db name into posted queries, neither use original fieldnames (instead, use the normal name). Should be ok as this is just to satisfy 2% of all Heidi users. Fixes issue #1934 .
...
See also: http://dev.mysql.com/doc/refman/4.1/en/c-api-datatypes.html
2010-05-11 22:04:24 +00:00
133de5850a
Remove unused member
2010-05-10 23:35:09 +00:00
1368508685
Do not display grid cells as modified if new value is effectively the same as the old one. Especially minimizes INSERTs for "Duplicate row" feature.
2010-05-10 23:34:36 +00:00
6355102eb0
In editing mode, when cursor points to a virtual edited row, we need to call mysql_data_seek() in SetRecNo, even if FRecNo points the previous row. Do that by checking for nil. Fixes issue #1931 . Fixes issue #1919 .
2010-05-10 23:26:47 +00:00
1319abe2c0
Number magic:
...
* Rewrite UnformatNumber() so it throws away characters other than digits, thousand or decimal separator. This is critical for adding WHERE clauses, where it was previously possible to update a whole table column accidentally: "UPDATE mytable SET numcol=123# WHERE id=567"
* Do not fetch last insert id when user passed a number to it. In that case LAST_INSERT_ID() would return 0
2010-05-10 22:04:21 +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
e258f7ccec
mysql_free_result() frees memory but does not set pointer to nil. Do that by hand, so later checks for nil don't run into AVs. Probably fixes issue #1901 .
2010-05-08 17:49:47 +00:00
ae4b7faacd
Binary column type detection is still a mess. But now TMySQLQuery parses its column names from a SHOW CREATE TABLE grid editing can benefit from the parsed stuff. Effect: data type of LEFT(bincol, 256) in data grid is re-detected when going into editing mode. Still displays these as green text before editing is tried, which could probably be solved by immediately call PrepareEditing for DataGrid result.
2010-05-08 15:53:37 +00:00
634f5cb951
Ensure column correct lengths are set in SetRecNo. Fixes issue #1921 .
2010-05-08 13:50:32 +00:00
db5c5a1dc3
Ensure FCurrentResults is set, also in the special case when result has 0 rows, to avoid AVs in DatabaseName() and TableName(). Fixes issue #1917 .
2010-05-08 10:37:34 +00:00
ede2fab6f1
SaveModifications() should process all virtual rows, but ignore just inserted ones, so we can call InsertRow and then SaveModifications for yet modified rows. Fixes issue #1918 .
2010-05-08 08:14:35 +00:00
646006715b
Avoid access violation in EnsureFullRow when row cannot be found. Just return false in that case and block editing. Fixes issue #1910 .
2010-05-07 15:43:08 +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
dc62492a34
Avoid exceeding range of FColumns within ColAttributes(). Fixes issue #1908 .
2010-05-06 18:17:41 +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
49dce8e08b
Overcome MySQL bug #41907 - SHOW EVENTS shows events in other schema.
2010-04-22 16:24:28 +00:00
97f01a175b
Move database filter again from mainform to session manager, so people without privilege to run SHOW DATABASE are not stuck. Fixes issue #1485 . Also, allow to see available databases when user does a dropdown. Also, simplify logic for refreshing database list in mainform.
2010-04-22 15:16:27 +00:00
71ae99d225
Do not trigger OnDBObjectsCleared in TMySQLConnection.Destroy, to avoid loop backs to connection instance which triggers AVs. Fixes issue #1878 .
2010-04-19 22:20:04 +00:00
43e35c8192
Throw successive result sets from stored procedures away, until we have real support for multi results. Otherwise mysql_ping() crashes on the next query. Fixes issue #1850 .
2010-04-12 21:03:13 +00:00
aef5f3b147
Modify Mainform.SelectedTable so that it always returns a new TDBObject, instead of passing an item of the connection's internal cache. Makes sure that the object editors (table editor e.g.) still has a valid object reference. See also http://www.heidisql.com/forum.php?t=5511#p5514
2010-04-11 13:36:42 +00:00
f451d061eb
Introduce 2 new columns in Host > Databases: "Last modification" and "Events". Plus:
...
* enhance db object lists for storing additional details like last modification and data size
* remove home brown Min() and Max() functions and use those from Math unit which are not restricted to Integers.
2010-04-11 12:03:07 +00:00
728d38b14b
Issue #401 : Close plink.exe also on connection errors.
2010-04-10 09:54:18 +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
ea8574bc1a
Fix some AVs around ListTables by reintroducing recently deleted connection event OnDBObjectsCleared. Required in cases where cache is cleared or refreshed (!) elsewhere and ListTables get repainted later.
2010-04-04 23:30:37 +00:00
f014190c9c
Do not clear cache with db objects in a reconnect situation. Heals several AVs where we rely on some valid TDBObject, also when server stays unreachable. Fixes issue #1819 . Also, this makes it superfluous to have an event fired after clearing the cache.
2010-04-03 21:30:11 +00:00
3c9dcfaaa0
Last tweaks for SSH tunnel, issue #401 :
...
* Only pass SSH port if not empty
* Put right default file extension for selecting a PuTTY private key file (*.ppk)
* Add text hints on more input fields
* Indicate modified session also if SSH host, port or key file was changed.
2010-04-02 07:33:36 +00:00