Commit Graph

347 Commits

Author SHA1 Message Date
rosenfield.albert
ec3fe33f8a * Set Zeos 'Writable' and 'ColumnName' properties to make the result set metadata usable for creating update statements. 2008-07-11 19:45:49 +00:00
Francisco Ernesto Teixeira
0c81870436 Added the missing LIBSUFFIX for Delphi 11 packages of PNG Component. 2008-07-09 02:04:05 +00:00
Ansgar Becker
1d3bfe6219 Fix and simplify delimiter customizing, now that the dropdown was moved to the mainform and didn't fire the OnExit event any longer for some reason. The new mechanism just uses a button (surely including a new icon, sigh...) which asks via InputQuery for the new value. Delimmiter "validation" is only done when setting the value per button, not in parseSql() any longer - avoids being bug-per-bug compatible with MySQL's SQL parser at least in the non interactive mode.
(Hope that code is ok with Franciscos original implementation. At least the old validation IF's are adapted)
2008-07-06 20:22:16 +00:00
Ansgar Becker
b145877d95 Finally move ToolbarQuery and relevant code to main unit. 2008-07-02 19:32:27 +00:00
Ansgar Becker
3e8080ff48 Move toolbar with field actions from tabTable to main controlbar.
TODO: Find more distinct icons for add|edit|delete field buttons.
2008-06-28 07:01:19 +00:00
Ansgar Becker
a8022acb8b Important toolbars should live on the main controlbar. Move toolbar from database sheet there. Plus:
- Remove redundant buttons on it ("view data" + "table properties")
- Move table related buttons from ToolbarStandard to the new ToolbarDatabase ("delete table" + "create table").
2008-06-26 17:10:31 +00:00
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