ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/changelog
Revision: 27
Committed: Tue Apr 14 13:10:23 2015 UTC (8 years, 11 months ago) by tony
File size: 14749 byte(s)
Log Message:
Committing updates for Release R1-2-3

File Contents

# User Rev Content
1 tony 27 IBX Change Log version (1.2-3) Tue, 14 Apr 2015 14:11:17 +0100
2    
3     1. TIBStoredProc. Prepare now called by ParamByName to avoid need to always
4     call Prepare before setting parameter values.
5    
6     2. Error message on ParamByName (all cases) not found now includes name of missing parameter.
7    
8     3. Code tidyup and more robust handling of dsql information result vector.
9    
10     4. Support for centralised handling of transaction status changes. TIBTransaction
11     has been given additional events "AfterEdit", "AfterInsert", "AfterDelete", "AfterPost"
12     and "AfterExecQuery". The first three are called after the same event is called
13     for an IBCustomDataSet descendent using the Transaction. The fourth is called
14     after a call to TIBSQL.ExecQuery, again using this transaction. These new events
15     enable monitoring of transaction status changes for a given transaction to be
16     handled in a single place. For example, when a change to the dataset occurs
17     an indicator can be set that shows the user that in order to save changes,
18     the transaction should be committed. Rather than doing this per dataset, this
19     can now be done per transaction.
20    
21     5. TDataSet.CheckBrowseMode automatically posts changes to the current row when
22     the dataset is scrolled. However, any changes to the current row are, by default,
23     discarded when the dataset is closed. TIBDataSet, TIBQuery and TIBTable now
24     have a new property "DataSetCloseAction" that adds automatic posting of changes
25     on dataset close. If this property is set to dcDiscardChanges (default) then the
26     behaviour is unchanged from previous versions. if the value is set to dcSaveChanges
27     then IBX will attempt to post any unsaved changes before the dataset is closed
28     (and after the BeforeClose event handler is called). The exception is when the
29     dataset is being closed as a result of a transaction rollback. In this case,
30     no action is taken and any unsaved changes are discarded. This avoids both
31     unnecessary overhead and the risk that a validation error may occur in the Post
32     raising an exception and thereby preventing a rollback.
33    
34     6. String Field sizes and Display Widths should now be correct for multi-byte character sets.
35     In earlier versions, the Display Width was set to the maximum byte width rather than the character
36     width. Display Widths are now corrected by dividing by the max byte width per character.
37     For UTF8 character sets, the byte width is four and hence the Display Width will be
38     the byte width divided by 4. The byte width of each character set is determined
39     dynamically when the database connection is estabished from the RDB$CHARACTER_SETS
40     system table. (see also http://bugs.freepascal.org/view.php?id=27766).
41    
42     7. SQLParser will now correctly parse SQL Text which contains ':' within quoted string.
43    
44     8. IBLookupComboEditBox: List should now always be restored to full list when the
45     control loses focus. Default Key press default interval reduced to 200ms.
46    
47     9. DBControlGrid: Ensure that selection is changed to newly appended row, even
48     when dataset rows are less than visible rows.
49    
50     10. IBDynamicGrid: Editor Panel is not shown on indicator click if Datasource
51     does not exist or DataSet is empty. More responsive on dataset open. New event
52     OnRestorePosition. Column sort disabled if no header row.
53    
54     11. IBTreeView: improved handling of response to "Add Node". Avoid scrolling dataset
55     while dataset state is dsInsert. Avoids posting errors.
56    
57     12. IBControls: New mechanism for distributing UpdateSQL and UpdateParams events. This is to
58     avoid conflict with DisableControls/EnableControls with Master/Detail linked tables.
59    
60     13. IBLookupComboEditBox: Now avoids SQL Errors when combo box text contains single quotes.
61    
62     14. TIBDataSet and TIBQuery: new Event - OnValidatePost. This event has been introduced
63     to solve a specific problem. That is when the dataset cursor is moved (e.g. by
64     a grid mouse click and the current row is being edited or inserted. In this case, TDataset
65     always "posts" the current record regardless or whether or not it may be more appropriate
66     to cancel any changes; the post occurs before the "BeforeScroll" event fires due to the way the
67     "MoveBy" function is implemented by TDataSet. The OnValidatePost event is called
68     as the first action of the "Post" method and allows the handler to convert the Post
69     into a Cancel if that is the appropriate action on moving to a different row. This is
70     achieved by returning with "CancelPost" argument set to true. Note that an exception could be
71     raised here, but it may still be more appropriate to validate a post and signal
72     a problem in the "BeforePost" event handler. See readme.automaticposts.xhtml)
73    
74     15. On Unix derived systems, the Firebird library name can now be given as a colon
75     separated list. Each library name on the list is tried in turn, in left to right
76     order with the first found being used as the firebird library. By default, on Linux,
77     the library name list is 'libfbembed.so.2.5:libfbembed.so.2.1:libfbclient.so.2'. This can be
78     overidden by the FBLIB environment variable or the OnGetLibraryName function.
79    
80     Note: when using the libfbembed.so, if you prefix the database name with "localhost:"
81     then it will still attempt to access the database via the Firebird Server and will
82     require a username and password. If only the pathname is given, then the username
83     and password should be omitted and the unix file permissions are used to grant
84     access.
85    
86 tony 25 IBX Change Log version (1.2-2) Sat, 14 Mar 2015 11:35:04 +0000
87 tony 23
88     1. A new IBControl - TDBControlGrid has been added. TDBControlGrid a lookalike
89     rather than a clone for the Delphi TDBCrtlGrid. TDBControlGrid is a single column grid
90     that replicates a TWinControl - typically a TPanel or a TFrame in each row. Each row
91 tony 27 corresponds to a row of the linked DataSource. Any data aware control on the
92 tony 23 replicated (e.g.) TPanel will then appear to have the appropriate value for the row.
93    
94     2. As suggested by Julio Jiménez, a new property "SQLHourGlass" has been added to TIBDatabase.
95 tony 25 When set to false (default true), the Hour Glass cursor is supcpressed and no cursor change
96 tony 23 takes place during database access. This may be useful when there are performance issues with
97     the change of cursor. Setting the property to false suppresses the change of cursor.
98    
99     3. As suggested by Julio Jiménez, a new property "AutoCommit" has been added to TIBDataSet, TIBQuery
100     and TIBTable. When set to acCommitRetaining (Default: acDisabled), a call is made to
101     Transaction.CommitRetaining immediately after every Post or Delete. This has the effect of
102     making all changes permanent immediately rather than when the transaction is explicitly
103     committed.
104    
105 tony 25 4. Experimental support for the Firebird 3 SQL_BOOLEAN type has been added while still
106 tony 27 using the legacy Firebird API. Thanks to Gabor Boros for helping to test this feature.
107 tony 23
108 tony 25 IBX Change Log version (1.2-1) Fri, 13 Mar 2015 11:14:15 +0000
109    
110     Development version only.
111    
112 tony 21 IBX Change Log version (1.2-0) Thu, 26 Feb 2015 10:34:04 +0000
113    
114     1. An internal select SQL Parser is now available for TIBCustomDataset descendents.
115     This is typically used during an "OnBeforeOpen" event handler to manipulate the
116     "Where" and "Having" clauses to implement user specified filters of arbitrary
117     complexity.
118    
119     2. A new Component Palette entry "Firebird Data Controls" is now available. This has
120     three new data aware controls dependent on IBX and which make use of the SQL Parser.
121     These are:
122    
123     - TIBLookupComboEditBox
124     - TIBDynamicGrid
125     - TIBTreeview
126    
127     TIBLookupComboEditBox is a TDBLookupComboBox descendent that implements "autocomplete"
128     of typed in text and "autoinsert" of new entries. Autocomplete uses SQL manipulation
129     to revise the available list and restrict it to items that are prefixed by the
130 tony 25 typed text (either case sensitive or case insensitive). Autoinsert allows a
131 tony 21 newly typed entry to be added to the list dataset and included in the available
132     list items.
133    
134     TIBDynamicGrid is a TDBGrid descendent that provides for:
135     - automatic resizing of selected columns to fill the available row length
136     - automatic positioning and sizing of a "totals" control, typically at the
137     column footer, on a per column basis.
138     - DataSet resorting on header row click, sorting the dataset by the selected column.
139     A second click on the same header cell reversed the sort order.
140     - Support for a "Panel Editor". That is on clicking the indicator column, the row
141     is automatically expanded and a panel superimposed on it. The panel can have any
142     number of child controls, typically data aware controls with the same datasource
143     as the grid allowing for editing of additional fields and more complex editors.
144     - Reselection of the same row following resorting.
145     - A new cell editor that provides the same functionality as TIBLookupComboEditBox.
146     Its properties are specified on a per column basis and allows for one or more
147     columns to have their values selected from a list provided by a dataset.
148     Autocomplete and autoinsert are also available. The existing picklist editor
149     is unaffected by the extension.
150    
151     TIBTreeView is a data aware TCustomTreeView.
152    
153     3. When getting a field value using FieldByName.AsVariant, an SQL_INT64 with a
154     zero scale will no longer return an error. An Int64 will be returned instead.
155    
156     4. TIBTransaction now has events for Before and After Transaction End and a new function
157     "GetEndAction" allowing the EndAction to be accessed by these event handlers.
158    
159     5. TIBQuery can now handle correctly queries which contain the same keyword parameter
160     repeated multiple times.
161    
162     6. TIBUpdateSQL will no longer return an error when "RowsAffected" is <> 1. This error
163     check used to get in the way of using Stored Procedures, and "Update or Insert"
164     statements.
165    
166     7. Insert, Modify and Delete property Editors now support Query Generation from
167     Stored Procedures.
168    
169     8. Three new examples illustrate the use of the new IB Controls
170    
171    
172 tony 19 IBX Change Log version (1.1-0) Mon, 07 Jul 2014 14:01:07 +0100
173    
174     1. TIBXSQLVAR code clean up and optimisation to improve client side "prepare" and parameter
175     setting performance. See "readme.field+param.names in the doc folder.(Thanks to
176     Gabor Boros for reporting this problem and for testing the improvements).
177    
178     2. IBX can now support dialect 3 quoted column names that contain spaces and which differ only in their case.
179     See readme.field+param.names in the doc folder.
180    
181     3. IBX SQL Editors will now automatically add double quotes around column names when the database
182     dialect is "3" and the column name contains spaces or is a Firebird 2.5 SQL Reserved Word.
183    
184     4. Param Type LargeInt now supported in TIBQuery and TIBStoredProc
185    
186     5. TIBSQL.ExecQuery retry on failure removed to avoid problems with "at most once"
187     actions.
188    
189     6. TIBTransaction.SetDefaultDatabase uses SetObjectProp instead of mis-using SetOrdProp (with
190     thanks to Yuriy Kopnin for pointing this out).
191    
192     7. GenerateParamName is now a published property of TIBSQL, TIBQuery and TIBDataSet.
193    
194     8. varWord, varShortInt and varInt64 added to TIBXSQLVAR.SetAsVariant and hence now available as variant types
195     for both fields and parameter setting.
196    
197     9. Changes to the Select SQL in an IBCustomDataset descendent should now be
198     visible in the Fields Editor immediately afterwards - rather than only after cycling the "active" property.
199    
200     10. TIBSQL SQL editor will operate correctly and not report an SQL syntax error on SQL test,
201     when DSQL ('?') parameter placeholders are used and the TIBSQL.GenerateParamNames property is set to true.
202    
203     11. TIBTable now has a property editor for "MasterFields"
204    
205     12. SQL Property Editors now include a checkbox "Allow DSQL Placeholder". This corresponds to the
206     GenerateParamNames property and should be set when using DSQL (i.e. '?') style parameters.
207    
208     13. The IBTransaction editor now has a radio button ("Unspecified") which is set when the combination
209     of settings is unrecognised. Selecting this radio button has no effect on the settings.
210    
211    
212 tony 17 IBX Change Log version (1.0-5) Sat, 28 Dec 2013 19:22:23 +0000
213    
214     1. TBookmark change conditional compile changed to >= 2.7.0 to match revised availability of change.
215    
216 tony 15 IBX Change Log version (1.0-4) Thu, 28 Feb 2013 16:56:13 +0000
217    
218     1. In a TIBCustomDataset descendent, a generator now only sets the value when
219     it is null. This allows for alternative user defined setting of the generator
220    
221     Many thanks to Julio Jiménez for this fix
222    
223     2. An Error Dialog is now displayed in the Lazarus IDE if IBX cannot find the Firebird Library
224     and suggests that the user may have forgotten to install it.
225    
226 tony 13 IBX Change Log version (1.0-3) Thu, 22 Nov 2012 22:53:39 +0000
227    
228     1. Conditional compilation used to limit registration of TIntegerField to
229     Lazarus versions less than 1.1
230    
231     2. When a database connection is created, character set is now by default set
232     to UTF8 (Unix) or to the current Windows code page (Windows) if in the range
233     1250 to 1254.
234    
235    
236 tony 11 IBX Change Log version (1.0-2) Tue, 09 Oct 2012 09:10:30 +0100
237    
238     1. TBookmark change conditional compile changed to > 2.6.2 to match expected availability of change.
239    
240    
241 tony 9 IBX Change Log version (1.0-1) Sun, 05 Aug 2012 20:00:04 +0100
242 tony 7
243     1. In IBCustomDataset. Changed CurBookmark from string to TBookmark for compiler versions > 2.6.0
244     Necessary because of TBookmark type and TDataSet.Bookmark property change in fpc 2.7.1
245    
246     2. IBX now registers TIntegerField as a "No Icon" component. This may be removed if the fpc DB
247     package is changed to do this (which it should do).
248    
249     IBX Change Log version (1.0-0) Sat, 28 Apr 2012 16:43:00 +0100
250    
251     1. Add "if active then active := false" to TIBCustomDataset destructor. (Avoid error on database close).
252    
253     2. Make use of $STATIC conditional in IBSQLMonitor (Needed for FPC 2.6.0 compliance)
254    
255     3. Database Property Editor: Character Set drop down box now uses "OnChange" rather than "OnCloseUp" to react to changes
256    
257     4. Property editors should now correctly resize.
258    
259     5. In IBDatabaseEdit.TestClick, the LoginPrompt is now set to the state of the LoginPrompt Checkbox
260     (restored original functionality)
261    
262     6. Under OSX, if IBX fails to load libfbclient.dylib, it will now try and load the firebird
263     library using the absolute path /Library/Frameworks/Firebird.framework/Firebird.