rosenfield.albert
f148664018
* Zeos: Make SetFieldData() public to provide a way to poke NULL into a field.
...
* Heidi: Use above to set field to NULL when requested by user.
2008-06-25 13:47:15 +00:00
rosenfield.albert
c40b8d680b
Bugfix: Setting a field to an empty string causes a WriteBuffer(nil, 0) which in turn apparently causes Memory to be nil. Therefore, interpret this as empty string rather than NULL. Fixes issue #316 .
2008-06-25 13:05:16 +00:00
rosenfield.albert
ca940f56a2
Bugfix: Missing use of Wide version method. Might fix issue #540 .
2008-06-25 13:02:05 +00:00
rosenfield.albert
d0fd412c03
* Bugfix: Correct cast when retrieving wide data from buffer is PWideChar.
...
* Bugfix: FBlobSize is in bytes, SetString expects a character count.
2008-06-25 13:00:04 +00:00
rosenfield.albert
8f5cc1ac3c
Bugfix: IsEmpty means NULL.
2008-06-25 10:06:43 +00:00
rosenfield.albert
7219960e50
Get rid of some implicit WideString -> string conversions (annoying!). Still missing: FormInsertStatement(), FormDeleteStatement() and FormUpdateStatement().
2008-06-24 17:50:06 +00:00
rosenfield.albert
ef0be0be5b
Bugfix: send prepared statements in widestring to MySQL.
2008-06-24 10:00:02 +00:00
rosenfield.albert
6ec59d8667
Bugfix: fix regression from r1491.
2008-06-24 09:27:45 +00:00
Ansgar Becker
1bd1bb8a6e
Remove preference option to select whether auto limiting should be applied or not, for the benefit of consistency and usability. See bug #282 which complains about the limit not being remembered. This is still the case for large tables now, but GetCalculatedLimit is more a safety check to avoid huge net loads than it wants to annoy the user. A even better compromise could be not to touch the limit number in the GUI if its value is lower than GetCalculatedLimit.
2008-06-23 20:15:37 +00:00
Ansgar Becker
dced2df45e
Make query execution unicode safe, mainly for a bunch of procedures and functions in Heidi itself plus various neighbours in Zeos.
2008-06-17 17:06:01 +00:00
rosenfield.albert
ff71f59fee
Fix compiler warning 1033 by importing units (that the compiler decides to import automatically anyway).
...
Note that PngComponentsD110 builds correctly without PNG or PngComponents built, for some reason, unlike the other runtime/designtime packages.
2008-06-17 09:00:03 +00:00
rosenfield.albert
ee1feb5521
Reimplement ANSI support to keep nutcases armed with v3.23 mysql servers happy.
...
Fixes issue #497 .
2008-06-16 21:20:15 +00:00
rosenfield.albert
ec7e5cf2c2
Fix: only assume that UTF-8 size estimates are in effect if the character set is UTF-8. (Couldn't be bothered to find out where to actually look up the collation codes, so for now just assumes UTF-8 when it's not binary.)
2008-06-16 19:27:47 +00:00
rosenfield.albert
4b601d817b
Update imprecise comments.
2008-06-16 16:34:57 +00:00
rosenfield.albert
d21f0c50b7
* Bugfix: could have sworn that I saw the fields max width at 755 for a varchar(255) column at some point; testing now it seems that the display size is returned as a character count. Fixes issue #549 , issue #547 .
...
* Comments updated.
2008-06-16 15:15:17 +00:00
Ansgar Becker
2ed4507666
Code cosmetic: Sanitize NODETYPE_BASETABLE constant from superflous "BASE"
2008-06-14 12:48:04 +00:00
rosenfield.albert
c265dd2f94
Workaround: make Zeos work with less imaginative column names. Fixes issue #545 .
...
Extremely imaginative names can still fail (think ZEOS_RESERVED etc).
2008-06-13 15:22:02 +00:00
rosenfield.albert
505cf7b443
Cosmetic: Keep the 'Bytes' variable counting length without the null terminator (shuffle around some +1's).
...
Bugfix: Delphi 2007's Utf8ToUnicode malfunctions and causes an access violation when given a 1-byte UTF8 buffer containing only the null terminator.
2008-06-13 13:54:10 +00:00
rosenfield.albert
4b37671f18
* Bugfix: Zeos expects ColumnInfo.Precision to designate the number of characters, until now the Zeos MySQL driver stored the number of bytes instead. Fixes issue #498 and issue #261 , possibly issue #339 too.
...
* Bugfix: Forgot to switch from ANSI to Unicode strings here and there. Sort of annoying that you cannot cause automatic Wide->Ansi conversion to just assert with an exception with an option. Could perhaps modify the VCL to do it.
2008-06-13 12:02:28 +00:00
rosenfield.albert
f880e3b21b
* Poke around with a stick in Zeos, trying to fix some more Unicode issues.
...
* Add "assertions" (well, small logic bombs that will explode in your face, rather) in places that I couldn't be bothered to fix or couldn't figure out.
* Zeos doesn't do anything terribly intelligent with it's row buffer, it simply stuffs columns into it from one end until it overflows. Instead of actually fixing this by, I dunno, mapping the smallest columns into the buffer first and stopping when it's full, just decreased the threshold at which ZMySQL declares something to be a stream rather than a string.
2008-05-27 20:12:56 +00:00
rosenfield.albert
1e31edc0c0
Sanity check: assert that row buffer length is not exceeded at a proper time, instead of dereferencing a broken pointer later on, which has random consequences (given that range checking is off).
2008-05-27 14:16:36 +00:00
Ansgar Becker
88d25c902d
Add option "Also check for updated nightly builds" to preferences dialog and implement needed logic in updatecheck dialog and main unit.
2008-05-25 19:35:58 +00:00
Ansgar Becker
ab5cbe1421
Opt-out for the auto-check-for-updates option by default, as discussed.
2008-05-25 19:02:55 +00:00
Ansgar Becker
18f7e4ac38
Remove no longer needed Delphi 10 packages.
2008-05-18 18:20:29 +00:00
rosenfield
3a05545dc7
Fix compiler warning by removing unused variable (from r1381).
2008-05-13 23:34:18 +00:00
rosenfield
7586134572
* Bugfix: in order to get SQL statements all the way into the stomach of the Zeos MySQL driver (aka TZMySQLStatement.Execute()), make sure that there are no characters lost via conversions from WideString to String on the way.
...
* Also update other drivers so they still compile, now using the WideString interfaces. Haven't Unicode-enabled any of them, just inserted an explicit cast from 16-bit to 8-bit strings in their respective Execute() methods.
2008-05-13 23:31:31 +00:00
rosenfield
a2595c2a41
Bugfix: regression due to untestable (at the time) code in r1381.
2008-05-13 22:04:36 +00:00
rosenfield
cb18638372
Bugfix: Delphi's DB.pas::TWideStringField.SetAsWideString() puts a PWideChar into the buffer before calling this, so deserializing it as a PWideString is probably wrong.
2008-05-13 19:39:29 +00:00
rosenfield
72c5d3f415
Add preliminary Unicode support.
...
(Requires a newer libmysql.dll, so you may want to get the strict_dll patch which is not in Zeos AFAIK.)
2008-05-13 18:33:04 +00:00
Ansgar Becker
d4c32d56d7
Implement a completely new user manager (look + feel + logic):
...
- Accounts and existing privileges are presented in a pulldown which makes it as easy to use as a toy
- Adding privileges calls the new SelectDBO dialog which is basically a tree like childwins dbtree
- Updating accounts canonicalizes various odd/legacy mechanisms in the MySQL user system
- Fullfills feature request #1547437 (btw)
- Wants to be tested heavily on different servers
A result of a team work. 1000 thanks to rosenfield for the admin friendly logic implementation, tons of fixes and usability ideas.
2008-05-08 20:45:51 +00:00
rosenfield
ad68b92264
* Uniformity: also use 'libsuffix' for png components.
...
* Include png components when installing design-time controls in the IDE.
2008-04-28 11:09:22 +00:00
rosenfield
e9bf0cfe8b
Same as previous commit, this time for Delphi 10.
2008-04-28 11:07:46 +00:00
rosenfield
13b8f15ab9
Remove *.res references, they cause build_everything from a scratched install to fail.
2008-04-28 11:00:49 +00:00
Ansgar Becker
1c52b14e11
Get rid of "N/A" constant, consistently use empty an string where that was used.
2008-04-11 20:54:58 +00:00
Ansgar Becker
bba3d2afc1
Implement option to prefer SHOW TABLES over SHOW TABLES STATUS, as discussed on the mailing list. Fix relevant AVs and detection of VIEW/BASETABLE in GetDBObjectType (at least for 5.0.2+ servers).
2008-04-11 19:23:47 +00:00
rosenfield
f9f311adf0
Revert some of the changes to SynEdit.inc; just use the common compiler include file.
2008-03-29 15:29:44 +00:00
Ansgar Becker
8226fae2be
Kill option to manually specify value of initial limit (DataLimitEnd) in preferences. Keeping the checkbox for autocalculating while rephrasing its caption. Now the limit number is set either automatically by GetCalculatedLimit() or not at all if the option is disabled. (Un-)checking the CheckboxLimit in Mainform now toggles this option permanently.
2008-03-24 00:11:38 +00:00
Ansgar Becker
f64daf6917
New feature: VIEW editor, can create and edit views. Rather a simple dialog with only the most important options on it. The toolbuttons on mainform are partly moved around, that's the reason for the myriad of changes there.
2008-03-19 21:20:28 +00:00
Ansgar Becker
de12c10721
Refactor Maintenance dialog to fullfill reasonable user wishes in bug #1865477 :
...
- Rename components with reasonable names
- Use caching mechanism from Childwin.FetchDBTableList to fill tables listbox
- Make form resizable, store and restore customized dimensions
- Keep form instance alive and recycle that instance as long as Mainform lives
- Fix confusion with action item (wasn't really used in both menuitems)
- Add documentation
2008-03-18 20:58:03 +00:00
Ansgar Becker
112ea167a5
Add basic support for views, without changing too much GUI logic:
...
- Give them their own icon in dbtree and ListTables
- Disable pure table actions (like "Alter table", "Optimize" etc.) in context menus when a view is selected
- Add new column in ListTables: "Type" which is filled either with "Base table" or "View"
- Introduce new property "NodeType" in TVTreeData record, used currently to store NODETYPE_VIEW or NODETYPE_TABLE. This new property is meant to be used for various purposes in other VirtualTrees in the future.
- Introduce Childwin.SelectedTableType, corresponding to Childwin.SelectedTable
- Make DropTable action fit for also dropping views (and surely a list with a mixture of views and tables)
- Don't fetch rowcount from views in DisplayRowCountStats to fix bug #1844952
2008-03-17 20:35:50 +00:00
Ansgar Becker
8d4d04a7ed
Create Delphi10 packages for PNGComponents
2008-03-05 13:03:15 +00:00
Ansgar Becker
ba98cb0cc9
Automatic change by D11 IDE. Probably caused by the "ImplicitBuild" option.
2008-03-05 12:39:01 +00:00
Ansgar Becker
bd597d0c1d
Use a PNGImageList and find replacements for nearly all icons in the application.
...
Sources:
- Mark James' Silk icons
- Everaldo's Crystal icons
Todo: Load icons at runtime
2008-03-04 00:20:38 +00:00
Ansgar Becker
be80dc2de2
- Create Delphi 11 package for PngComponents (D10 to come)
...
- Replace Thany.inc by using compilers.inc
- Set correct output and search directories
2008-03-01 00:24:10 +00:00
Ansgar Becker
45bc241c26
Adjust PngComponents files to match standard directory names.
...
TODO: Create seperate packages for D10 + D11 - not doable by this commit after having renamed the packages directory and its files.
2008-02-29 23:38:58 +00:00
Ansgar Becker
7b4ce12864
New component: PngComponents by Martijn Saly, downloaded from http://www.thany.org/article/18/VCL and committed as is.
...
License:
Redistributable in unmodified form. Statement from the author on the above website: "Do with them what you want. Improve them, republish them, as long as my legacy can live on"
2008-02-29 23:28:50 +00:00
Ansgar Becker
7e4bfafbe1
Fix access violation in Database tab when at least one view exists: TField.AsFloat on a NULL value throws this AV. User report can be found here: http://www.heidisql.com/forum/viewtopic.php?p=1812
2008-02-27 20:17:04 +00:00
Ansgar Becker
b584aa5ae4
Introduce automatism for calling the updatecheck dialog. User can set the interval how often this is done in preferences dialog (default interval: 3 days, can be completely disabled). The automatic calling of this dialog should not disturb anyone as it's closed immediately if there are no updates available or if a developer version with an unknown revision is used.
...
Some GUI controls on the dialog had to be moved around as well as some lines of code so everything works well with the automatic dialog closing.
2008-02-19 19:44:33 +00:00
Ansgar Becker
52c85ddabc
Introduce APPDOMAIN constant (= http://www.heidisql.com/ ), for usage in various methods.
2008-02-08 21:11:08 +00:00
Ansgar Becker
4e23728aa2
- Move all hardcoded preferences names (registry) plus their default values to const.inc to fix inconsistencies like the one described here: http://www.heidisql.com/forum/viewtopic.php?p=1739
...
- Consequently use Mainform.GetRegValue() to read these values, an overloaded method with either Boolean, String or Integer result. These methods keep a global TRegistry object (regMain) open while the application runs, rather than creating a new one for each caller.
- Remove Mainform.SaveRegValue() which was used in one or two callers. Rather use a TRegistry object and do that by hand. There's no significant advantage in using a SaveRegValue method currently.
2008-02-06 00:00:52 +00:00