📄 changelog.txt
字号:
=============
KNOWN ISSUES:
=============
V1.2.08202002 (20-aug-2002)
- Generated code is not CLSCompliant due to the fact that the protected members of the abstract
base class are seen as public methods by FxCop and the compilers, allthough they'll be private
in an inherited class. This can be fixed easily in the generator but it will result in the
breaking of current custom classes which rely on the interface of the current base class
DBInteractionBase. Therefor, to keep current code working, I decided to move this feature to
a later version, probably v2.0.
- Weird characters in Table names and field names are not handled correctly. F.e. a '$' in a table
name, will result in non-compilable code. Because it's bad practise to use those kind of characters
in table names and field names, no fix is provided, allthough v2.0 will probably be handling this
type of characters better.
- Fields with a Default Value constraint are properly handled by the generated code, however due to
the nature of T-SQL, the default value is emitted hard-coded in the T-SQL stored procedure. This is
done to allow users to Insert values for fields with a default value, even if there is a default
value. When the default value constraint changes for a particular field, the stored procedures for
the table should be regenerated. The .NET code is not changed. When a default value constraint is
removed from a field, plus it's not NULLable, the .NET code for that table should be regenerated,
together with the stored procedures, if the developer wants NULL value checks for the property of
that field: fields with default value constraints don't have NULL value checks.
- When LLBLGen is started from a network share, or a shared drive, it may crash in a security violation.
This is due to the fact that the default security settings are that strict that an application which
is ran from a network share and which creats an instance of a class, will fail to do so. You can
work around this by OR copying the LLBLGen executable (including the manifest) to your local harddrive,
OR adjusting the security settings for the LLBLGen assembly to full trust.
=============
CHANGES:
=============
--------------------------------------------------------------------------------------------------
V1.2.08202002 (20-aug-2002)
- FIXED: When ObjectPooling is selected as a COM+ service, a method CanBePooled() wasn't created in the
abstract base class.
- FIXED: When a field is marked as Excluded and it has a Default Value constraint, LLBLGen will use that
Default Value instead of the LLBLGen's default for the particular type of the field.
- FIXED: When a field has a default value constraint and the field isn't NULLable, an extra ISNULL()
check is emitted in the INSERT stored procedure, to prevent the insertion of NULL's and to
insert the default value instead. The default value is hardcoded in the stored procedure and
requires a regeneration of the stored procedures when that value changes in the table/field
definition. It's not very common to use default value contraints with non-NULLable fields
however nor are default value constraints changed a lot.
- FIXED: Timestamp fields weren't excluded from INSERT and UPDATE queries. This has been fixed. Also,
the wrong default value for Timestamp fields has been removed: it's not used anymore.
- FIXED: ADO.NET contains a bug which doesn't allow a precision which is larger than 38. However,
SQLServer's float datatype has a precision of 53. Generated code contains this precision
of 53 and fails at runtime. LLBLGen now contains a workaround for this bug and limits
the precision to 38. When MS fixes this bug (if ever), this workaround is removed.
- FIXED: In the frmDirPicker code, when the start directory supplied doesn't exist, LLBLGen will crash.
This has been fixed: the first root node (probably 'A:') will be selected instead.
- FIXED: When the fonts are enlarged in windows, the gui sizes are not, which means that the texts on
the controls look horrible. This is fixed. It appears to be a bug in the .NET windowsforms
renderer: when a tab page is added at runtime, the controls on it aren't auto-resized to meet
the requirements of the large fonts. This is avoided now, by adding all tab pages at the start
of the program, but disabling all controls on the tab pages except the controls on the connection
tab.
- ADDED: Added a known issues chapter to the documentation, plus changed the font into verdana which is much
more readable than Tahoma.
--------------------------------------------------------------------------------------------------
V1.2.08112002 (11-aug-2002)
- FIXED: Fixed some bug in the docs and a bug in the INSERT stored proc generator for SQLServer 7
--------------------------------------------------------------------------------------------------
V1.2.08022002 (02-aug-2002)
- FIXED: Fixed some textual errors in the generated code comments ('IDispose' is
ofcourse IDisposable etc.)
- ADDED: Added some more feedback text to generator
- FIXED: The progress bar now reflects the amount of work done correctly.
- FIXED: The SQL type 'real' was suffixed with a length, like real(24), this is
incorrect, it should be just 'real'.
- FIXED: Sometimes in VB.NET, the propertynames were caMel case, not PasCal case.
This is corrected.
- FIXED: Added '[' and ']' around property names in VB.NET code, which avoids conflicts
in VB.NET code with fieldnames which are also reserved words in VB.NET
- FIXED: When generating VB.NET code, values returned in parameters are not CType()-ed,
but are passed along to the SqlType in question, which seems to be a violation
of the Option Strict On rules. This is corrected.
- ADDED: Added a Connection Provider class to the LLBLGen generated classes, which will
create the database connection object. This class has methods which reflect the
ADO.NET transaction methods. When a data-access tier object is created, also
this Connection Provider object should be created and should be passed to the
data-access tier object. This data-access tier object will then use the
connection object of this Connection Provider object to perform all database
actions. This way, a data-access tier calling layer can start transactions
using ADO.NET methods and avoids using COM+ services which can be quite expensive.
- ADDED: Added SelectOne methods for all fields which are NOT part of the Primary Key
and which have one or more of the following properties: a UNIQUE constraint,
is an Identity column, is a RowGUID column.
- FIXED: When no key is defined, OR when identity / rowGUID fields are not part of the
PK, identity fields and rowGUID fields will result in SelectAllW<fieldname>Logic
stored procedures. This is not correct, since these will result in 1 row, at most.
These two fieldtypes in that situation should result in a different SelectOne
routine, not a SelectAll routine. (thus SelectOneW<Fieldname>Logic), because
selecting on identity field or rowGUID will always limit your resultset to 1 row
at most. This is corrected.
- FIXED: SCOPE_IDENTITY() is not supported under SQLServer 7. This is corrected now: when
SQLServer 7 is used, LLBLGen will generate code which uses @@IDENTITY.
- FIXED: When a NULL value is passed for an SqlBinary or [n]text field, the [.Value].Length
property is invalid, which means the SqlParameter creation code fails. A null
value test is emitted when a field CAN be null and when there is a possibility that
the SqlParameter creation code will cause a nullvalue exception.
- FIXED: When no fields are returned by the query which retrieves all fields plus info,
LLBLGen should report that and should SKIP that table. No fields are returned with:
empty tables and with faulty constructed tables, f.e. with field with more than 1 FK
constraint. This is corrected now: the table is skipped and a remark is emitted in the
stored procedure code.
- ADDED: Added code to the SelectOne methods which will populate all properties with the
data read from the table which was stored in the DataTable.
- FIXED: Added better member type grouping in generator. LLBLGen did produce f.e. 2 sections
of SqlString member declarations will appear, because different SQLServer types
result in the same C# / VB.NET type: SqlString (varchar, char, text, ntext etc.
all do). Now, LLBLGen sorts on C#/VB.NET type.
- ADDED: Added View support, so Views can also be selected as 'tables' to generate code for.
(insert/selectall methods only due to the lack of PK/FK constraints)
- FIXED: When there is just 1 updatable field / insertable field, the SET clause or FIELDS list
will contain a dangling ',' because it uses suffixes, not prefixes. This is corrected
now. Thanks to Colin Young for the patch-code.
- FIXED: When a user excluded one or more fields or when a table did include a computed field,
these fields weren't generated in the class member list nor as a property. This is
corrected.
- FIXED: Some errors in the VB.NET code generator when COM+ services were selected.
- FIXED: Several minor glitches which made the generated code not compilable nor useable in
some odd circumstances.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -