C
CJ
Unregistered / Unconfirmed
GUEST, unregistred user!
Corporate Info
Inprise Vision
Management Team
Investor Info
Executive Insight
Directions
White Papers
Press Releases
Awards
Case Studies
Year 2000
Employment
Quotes
Recent News
Tech Corner
Delphi 5 fixes and known issues
DATABASE SECTION
--------------------------------------------------------------------------------
Areas of concentration under: database
ado
core vcl
data access controls/tdataset
data access controls/tdbdataset
data access controls/ttable
data aware controls/tdbctrlgrid
data aware controls/tdblookupcombobox
data module
data module/designer
database tools/sql explorer
decision cube controls
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 46347
Status: Fixed in Delphi 5
Date Reported: 2/24/99
Severity: Serious
Type: Basic Functionality Failure
Problem:
Parameter binding of fields of type ftInteger:
Select * from table where intfield = ?
add Parameter using default type of ftInteger,
set active = true, get error.
'the given type name was not recognized'
Note: the TField.Size property is returning 0 for this
field type.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 69234
Status: Open
Date Reported: 8/20/99
Severity: Commonly Encountered
Type: Basic Functionality Failure
Problem:
When an ADO dataset has an OnFilterRecord
event and a new row is inserted at the end of the
dataset, an EOLEException occurs.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 71440
Status: Open
Date Reported: 9/21/99
Severity: Commonly Encountered
Type: Minor Functionality Failure
Problem:
TADOConnection.GetTableNames does not list
views along with the table names.
Workaround:
Use OpenSchema method instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 71471
Status: Open
Date Reported: 9/22/99
Severity: Serious
Type: Basic Functionality Failure
Problem:
In ADO datasets, garbage values may be displayed
in lookup fields when columns are resized or
reordered, or when new records are inserted.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 71601
Status: Open
Date Reported: 9/23/99
Severity: Commonly Encountered
Type: Minor Functionality Failure
Problem:
When a DBGrid is connected to a ado dataset with
the cursorlocation set to clUseServer, all records
end up being fetched up front by the call to
RecordCount.
Workaround:
Use client side cursor or
Turn off the vertical scrollbar in the grid.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 71630
Status: Open
Date Reported: 9/24/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
In a Master/Detail setup using two TADOTable
components if the detail table is closed, then
opened again the filter is lost, and the whole table is
displayed.
Workaround:
Use a query instead of a table for the detail.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 71908
Status: Open
Date Reported: 9/28/99
Severity: Commonly Encountered
Type: Minor Functionality Failure
Problem:
Parameterized INSERT or UPDATE queries may
cause VARCHAR fields to be stored with trailing
spaces. Primarily occurs updating through Midas.
Workaround:
If using SQL Server, modify the table so that it is
created with ANSI_PADDING set to OFF.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72274
Status: Open
Date Reported: 10/4/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
When the master dataset contains no records
(because it is filtered), all records are displayed from
the detail dataset instead of no records.
Workaround:
Use a query instead of a table for the detail.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72493
Status: Open
Date Reported: 10/6/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
CancelBatch does not cancel Edit mode.
Workaround:
Call Cancel before calling CancelBatch.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72494
Status: Open
Date Reported: 10/6/99
Severity: Infrequently Encountered
Type: Basic Functionality Failure
Problem:
TADODataSet.CancelUpdates does not work as
documented. It should do the same thing as
CancelBatch.
Workaround:
Call Cancel & CancelBatch instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72498
Status: Open
Date Reported: 10/6/99
Severity: Infrequently Encountered
Type: Basic Functionality Failure
Problem:
Calling ClearFields on an ADO dataset results in an
invalid variant exception.
Workaround:
Use a for loop and clear the fields individually
instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72580
Status: Open
Date Reported: 10/7/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
After deleting all records in a dataset, then calling
CancelBatch to restore them, no data is displayed.
Workaround:
Add this code after the CancelBatch call:
ADODataSet1.MoveFirst;
ADODataSet1.First;
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72795
Status: Open
Date Reported: 10/12/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
Scrolling through an ADO dataset with
CursorLocation = cllUseClient is significantly slower
than the equivalent operation usiing straight ADO.
Problem is the call to Recordset.AbsolutePosition
which is made in the InternalGetRecord method
call.
Workaround:
Use a server side cursor instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72804
Status: Open
Date Reported: 10/12/99
Severity: Commonly Encountered
Type: Basic Functionality Failure
Problem:
Calling Clear on a TBlobField in an ADO dataset
does not clear the field.
Workaround:
Assign a Null value directly to the underlying
recordset and then call resync.
ADODataSet1.UpdateCursorPos;
ADODataSet1.Recordset.FieldByName['BlobField'].
Value := Null;
ADODataSet1.Recordset.Update(EmptyParam,
EmptyParam);
ADODataSet1.Resync([]);
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72896
Status: Open
Date Reported: 10/13/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
Using the LoadFromFile method on an ADO dataset
fails with an exception when there is no associated
Connection component or ConnectionString.
Workaround:
Associate a connection component.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 72996
Status: Open
Date Reported: 10/14/99
Severity: Commonly Encountered
Type: Minor Functionality Failure
Problem:
When using Lookup fields, inserting a record will
generate "An unknown error has occured"
exception in some cases.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73040
Status: Open
Date Reported: 10/14/99
Severity: Infrequently Encountered
Type: Crash
Problem:
An AV occurs when writing to the ParamValues
property of TParameters with multiple values.
Workaround:
Use Value property instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73117
Status: Open
Date Reported: 10/15/99
Severity: Infrequently Encountered
Type: Crash
Problem:
Callling the AppendRecord or InsertRecord
methods after closing and reopening the dataset
may cause an Access Violation.
Workaround:
Call Edit then Cancel in the AfterOpen event of the
dataset.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73119
Status: Open
Date Reported: 10/15/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
Calling the AppendRecord methods with a grid
attached to an empty dataset may result in an
invalid parameter exception.
Workaround:
Use Insert or InsertRecord instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73122
Status: Open
Date Reported: 10/15/99
Severity: Commonly Encountered
Type: Crash
Problem:
An infinite loop may result if using the
OnFilterRecord event and returning Accept = False
from the event.
Workaround:
Use a filter string instead if possible.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73164
Status: Open
Date Reported: 10/17/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
In Midas, when providing from ADO datasets using
non-nested master/detail, it is possible to receive a
"Key violation" error when you scroll to a master
record that has no detail records.
Workaround:
Use nested master/detail instead.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73383
Status: Open
Date Reported: 10/19/99
Severity: Commonly Encountered
Type: Basic Functionality Failure
Problem:
When the IndexName property is set, the
IndexFieldCount and IndexFields properties are not
updated. (Note that ADO only supports the
Recordset.Index property for the Jet provider using
an Access database).
Workaround:
Use the IndexDef information instead.
var
IndexDef: TIndexDef;
FList: string;
begin
if Active and (IndexName < > '') then
begin
IndexDefs.Update;
IndexDef := IndexDefs.Find(IndexName);
if IndexDef < > nil then
FList := IndexDef.Fields else
FList := '';
end else
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73441
Status: Open
Date Reported: 10/20/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
Calling the seek method on an empty dataset
results in an EOLEException saying there is no
current record.
Workaround:
Check the IsEmpty property before calling Seek.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73478
Status: Open
Date Reported: 10/21/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
When posting a record from a disconnected (RDS)
dataset, garbage values will display in required
fields that are not initialized.
Workaround:
Set the required property to True on fields which are
required on the source dataset.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73553
Status: Open
Date Reported: 10/22/99
Severity: Commonly Encountered
Type: Basic Functionality Failure
Problem:
When using an ADO dataset with MIDAS under
MTS a missing connection error is generated when
applying updates if the connection is closed.
Workaround:
Open the connection in code in the
BeforeUpdateRecords event.
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73735
Status: Open
Date Reported: 10/27/99
Severity: Serious
Type: Basic Functionality Failure
Problem:
After attempting to delete a record which causes an
error, subsequent attempts to scroll through the
dataset will result in additonal invalid errors.
Workaround:
In the OnDeleteError event add this code:
ADODataSet1.RecordSet.CancelUpdates;
--------------------------------------------------------------------------------
Area: database/ado
Reference Number: 73788
Status: Open
Date Reported: 10/28/99
Severity: Infrequently Encountered
Type: Minor Functionality Failure
Problem:
When assigning a TParam with a null value to a
TParameter the datatype is not set, resulting in an
invalid parameter error when executing the
command. This affects Midas applications when
calling ApplyUpdates after setting a field to null.