Borland Developer Studio 2006 Release Notes
This file contains important supplementary information that may not appear
in the main product documentation. Borland recommends that you read this file
in its entirety.
For information about installation, deployment, and licensing issues, see the
Install, Deploy, and License files located, by default, at C:\Program Files\Borland\BDS\4.0.
IMPORTANT
The C++Builder 2006 personality included in this release of Borland
Developer Studio 2006 is provided to you as a Technology Preview. We recognize
the importance of a high quality C/C++ personality, and consider this Preview
as the first step in providing that without delaying delivery of the rest of
the studio to you. Borland plans to quickly follow this preview up with a free
update by or before December 31st, 2005, downloadable from http://www.borland.com/downloads
. This will update your Borland Developer Studio installation to the complete
C++Builder 2006 functionality.
Contents
General Notes
- Please update your zlib source files (located in the C:\Program Files\Borland\BDS\4.0\bin,
C:\Program Files\Borland\BDS\4.0\lib, C:\Program Files\Borland\BDS\4.0\include\Indy10,
C:\Program Files\Borland\BDS\4.0\include\vcl, C:\Program Files\Borland\BDS\4.0\lib\debug,
C:\Program Files\Borland\BDS\4.0\lib\Indy10, C:\Program Files\Borland\BDS\4.0\lib\debug\Indy10,
C:\Program Files\Borland\BDS\4.0\source\Indy10, C:\Program Files\Borland\BDS\4.0\lib\Indy10\Protocols,
and C:\Program Files\Borland\BDS\4.0\source\Win32\rtl\common) directories
with version 1.2.3, available from http://www.gzip.org/zlib/.
- Delphi.NET compiler cannot handle variables of Set type containing ANSI
chars. Workaround: Change file format to UTF8 before compiling.
- After you have created a new Delphi or C# ASP.NET Application then you can
create a new Generic Handler in the File/New/Other… gallery dialog. File/New
Generic Handler creates a .ashx markup file and a .pas or .cs code behind
file. The code file contains a method called ProcessRequest that is called
when the user browses to the .ashx file. To try out a new generic handler,
right click on the .ashx file in the project manager and choose “View in Browser”.
You should see “Hello World!”. This text was generated by the Process Request
method. A common use for generic handlers is to dynamically generate images.
For example, a handler could be responsible for generating a pie chart. Another
example is to dynamically generate images containing a text string that is
passed as a query parameter to the handler.
Top
IDE Notes
- Code Completion does not support international (same locale) or Unicode
characters.
- If you undock the ActiveX type Library window, you will not be able to edit
or use the type library.
- The C1WebReport control for ASP.NET is not in the Tool Palette by default.
You can add this ComponentOne control to the Tool Palette using the Installed
.NET Components dialog. Choose Installed .NET Components from the Component
menu, then check the box for C1WebReport.
- If you are using Windows 2003 in its default Internet Security Settings,
the Start Page shows up as being offline and RSS Feeds will not display. Workaround:
Internet securities need to be lowered to Medium in order to view the RSS
Feeds.
- The "Warn on Package Rebuild" option is missing under Tools |
Options | Environment Options | "Compiling and Running". Workaround:
In the registry, set "Warn on Package Rebuild" to "True"
under HKEY_CURRENT_USER\Software\Borland\BDS\4.0\Compiling.
- When debugging applications that involve dragging and dropping from form
to form (as may commonly be done with ECO Autoforms), there is the possibility
that an IDE window will erroneously intercept drag and drop messages and end
up in a deadlock. This will require a forced IDE shutdown. To avoid this,
set the Environment Option "Minimize on Run" to true and avoid dragging
over IDE windows while debugging.
Top
C# Notes
- The change application icon option located under Project | Options | Applications
| Application Icon does not work.
Top
C++ Notes
IMPORTANT: The C++Builder 2006 personality included in this release of Borland
Developer Studio 2006 is provided to you as a Technology Preview. We recognize
the importance of a high quality C/C++ personality, and consider this Preview
as the first step in providing that without delaying delivery of the rest of
the studio to you. Borland plans to quickly follow this preview up with a free
update by or before December 31st, 2005, downloadable from http://www.borland.com/downloads
. This will update your Borland Developer Studio installation to the complete
C++Builder 2006 functionality.
- Known issues are being addressed in multiple areas including the C++ compiler
and COM/ActiveX.
- If you are creating a C++ Package that contains a Delphi unit that uses
the DesignIntf and DesignEditors tools, you must choose Project|Options|Pascal
Compiler|Other Options and then add -LUDesignIDE for the compiler to work
correctly.
- If an older BORLNDMM.DLL is found first on the path, an exception is raised
in vclshmem.cpp
- The dialog for specifying C++ build events accepts the names of batch files
as well as batch syntax. However, the batch syntax creates a separate process
for each line in the dialog. Commands relying on the value of one or more
environment variables set in previous commands might not work correctly. For
example, the following command fails because OUTPUT_DIR is no longer associated
with the set command:
set OUTPUT_DIR=c:\project\bin
copy *.exe %OUTPUT_DIR%
- The project manager does not support moving a file outside of its parent
directory in order to change the build order. You can change the build order
only by moving files around within a directory, or by moving directories within
the project.
For example, if you have 2 files in Dir1 and 2 files in Dir2, the project
manager does not support the following build order:
Dir1/file1
Dir2/file1
Dir1/file2
Dir2/file2
- The debugger/module view does not show symbol files for modules with .tds
files although options are set to generate debug information.
- The context menu of .rc files in the Project Manager does not contain the
compile action option. This is because renamed .txt files are not placed in
the proper container with the associate functions.
- Only Rename Refactoring is available for the C++ personality.
- The refactoring engine fails if you attempt to rename a class name from
a header file that is not part of a project but is getting included.
- Rename Refactoring has known problems when trying to rename components that
are managed by the VCL designer. The refactoring may generate errors or fail
to rename all references. This option is not recommended for use at this point
in time.
- Attempting to redo a refactoring that had been undone will fail. To redo
a refactoring, you should remove the old refactoring from the preview window
and start a new refactoring instead.
- Rename Refactoring on a single instance of a char variable results in a
"Failed to Setup refactoring" error.
- In rare cases, unfolding will fail on code where multiple fold regions start
on the same line. This will give the appearance that much of the code has
disappeared. To correct this state, right-click on the code editor and choose
"Unfold All" or close and reopen the file.
- After dropping Microsoft Office components to Form, building the project
causes C++ fatal error: "Word_XP_srvr.h(1989): F1008 Out of memory"
- Exporting projects to makefile is not currently supported but will be available
in the future.
- Creation of C++ ActiveForms is disabled for the preview.
- Components written using the C++ personality in BDS2005 are not available
to the Delphi personality in the same manner and for the same reasons that
previous C++Builder components may not be used in previous versions of Delphi
- If you have a C++ ActiveX project open and import its type library, you
will get an access violation.
- Compiling an ActiveX library with an Active Form set to "Include About
Box" results in errors.
Top
Caliber Notes
- If you right-click in the Caliber IE pane and choose the "Browser View"
option in the context menu, the pane will switch IE server component into
IE, but there is no option to switch back. In order to switch back, you must
log off then log on again.
Top
Command Line Notes
- The /hm and /hv command line options have been discontinued.
Top
Database Notes
Supported Servers
BDP
- Interbase 7.5sp1, 6.5*, 7.0*, 7.1* (Arch, Ent, and
Pro)
Note: After installing InterBase, you must open the InterBase Manager window, de-select the "Run Interbase as a service" option, and start the server before you can connect to a database.
- Oracle 10g, 9.1.0*, 9.2.0* (Arch, and Ent)
- db2 UDB 8.x, 7.x* (Arch and Ent)
- MSSQL/MSDE 2000 (Arch and Ent)
- MS Access 2000 (Arch, Ent, and Pro)
668
- Sybase 12.5 (Arch and Ent)
- MySQL 4.0.24 (Arch, Ent, and Pro)
* Driver not fully certified with this version of the
database.
dbExpress
- Interbase 7.5, 6.5*, 7.0*, 7.1* (Arch, Ent, and
Pro) Note: After installing InterBase, you must open the InterBase Manager window, de-select the "Run Interbase as a service" option, and start the server before you can connect to a database.
- Oracle 10g, 9.1.0*, 9.2.0* (Arch and Ent)
- db2 UDB 8.x, 7.x* (Arch and Ent)
- MSSQL 2000 (Arch and Ent)
- Informix 9.x (Arch and Ent)
- Adaptive Sybase Anywhere 9, 8* (Arch, Ent, and Pro)
- Sybase 12.5 (Arch and Ent)
- MySQL 4.0.24 (Arch, Ent, and Pro)
* Driver not fully certified with this version of the
database.
dbGo
BDE
- Local databases: Paradox, dBase
Top
General Database Notes
- Opening and closing dbExpress or BDP connections using the TCP/IP protocol
will fail after few thousand connections are opened and closed. If this occurs,
you can change the TIME_WAIT timeout to increase connections. This setting
determines the length of time that a connection will stay in the TIME_WAIT
state before being closed. The default is 240 seconds which, on a busy server,
limits the maximum connections to around 200/sec. Reducing this setting will
increase the maximum connection limit.
Open your registry and create a new DWORD value (or modify an existing
value) called "TcpTimedWaitDelay" in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
Set Data Type to REG_DWORD. Set Value Data to 0x0000001e (30). Exit your
registry. You might need to restart or log out of Windows for the change
to take effect.
- Existing ASP applications involving dbWeb controls need to have the TagPrefix
updated with the full name for the assembly: <%@Register TagPrefix="borland"
Namespace = "Borland.Data.Web" Assembly="Borland.Data.Web,
Version=2.0.0.0, Culture = neutral, PublicKeyToken = 91d62ebb5b0d1b1b"
%>
- Some characters do not display correctly in the preview when the characters
are in an include file. This causes the Websnap demos to not appear in the
Preview pane in the editor. Workaround: open the include file in the editor.
When the include file is open, the preview works properly.
- When using Sybase database backends with the PersistenceMapperBdp, the BlobSize
property in the connection string must be increased significantly if attempting
to evolve the schema or if you are using a DbMappingProvider.
-
The names of some of the database drivers have been changed in this release.
If you are using driver names in your code, please update them as follows:
dbExpress Drivers
BDP Drivers
Top
dbExpress
- dbxconnections.ini and dbxdrivers.ini have been moved to $(BDS)\dbexpress
- When using dbExpress MSSQL, the SchemaName and CommandText properties are
not properly set when you drag and drop stored procedures from the Data Explorer.
Trying to execute the procedure will result in List Index Out of Bounds until
these properties are set.
Top
db2 Notes
-
If the out parameter of stored procedure is a string,
you need to set its length to <max-expected-string-length>
+ 1 to prevent possible string truncation.
For example, if you pass aa to a procedure created with the
following code, the procedure incorrectly returns only a.
CREATE PROCEDURE CHARECHO_DB2(IN IN_PARAM CHAR(2), OUT OUT_PARAM
CHAR(2)) LANGUAGE SQL BEGIN SET OUT_PARAM = IN_PARAM; END
If you increase the output parameter string length to 3, the string is
returned correctly.
- The client library for MySQL Admin 1.0 and 1.1 are not sufficient to connect
to MySQL 4.0.24 through BDP or DBX. Download MySQL 4.0.24 and use libmySQL.dll
from the MySQL\bin directory and verify it is on your system path. If you
have connection problems please verify you are not using "libmySQL.dll"
from 4.1 or 5.0.
Top
Debugger Notes
- Attempting to place a data breakpoint in code may result in program corruption.
For example, placing a data breakpoint on a VMT slot may result in the program
jumping to an incorrect location (the "last" byte of the address will be overwritten
with 0xcc).
- Using a native application as the "Host application" to debug
a managed assembly or package is not supported under Windows 2000. Attempting
this will cause the IDE to give an "Unable to create process" error
message. To debug the managed part of an application that dynamically launches
the compiler, you must use Windows XP.
- The "Debug spawned processes" option (on the "Borland Debuggers"
options page of the Tools | Options dialog) has no effect on the managed debugger.
To debug a managed process that is spawned by a managed process you are currently
debugging, use the "Attach to Process" dialog (select Run | Attach
from the menu to open this dialog) and attach to the spawned process.
- In native code, debugger windows have problems displaying variables of PChar
or PWideChar type. Workaround: use the '@' operator or set the 'Pointer' radio
box in the Watch Property dialog.
- The Web App Debugger depends on an application called ServerInfo.exe to
display information about known WebBroker or WebSnap applications. In order
for the Web App Debugger to invoke ServerInfo.exe it must register itself.
Register ServerInfo.exe by entering the following command: serverinfo
-REGSERVER
If ServerInfo.exe is not registered, then clicking on the ServerInfo hyperlink
displayed in Web App Debugger application window will result in a “Page
not found” message in the web browser.
-
During remote debugging of a Delphi managed application, you can set breakpoints
and evaluate local variables. However, if you attempt to use additional
debugging features, such as Add Watch, Inspect, Evaluate/Modify, and evaluation
using tool tips, the commands will fail and you will see "[compiler
error] symbol is not linked in executable". If you manually copy all
the required .dcpil files from your local machine to the remote machine,
evaluation should work.
- When installing the remote debugger without the required pre-requisites for ASP.NET debugging, you get a warning about the need to install the pre-requisites for ASP.NET debugging. However, the installer lets you proceed but then fails with an error message referring to an error while installing Borland.dbkasp and rolls back the install. Workaround: Choose the Custom Installation and de-select ASP.NET debugging, or load the .NET framework before you run the installer again.
Top
Documentation Notes
- The help topic, 'Web Deploy of Active Form' still includes a reference to
the Project | Web Deploy menu, which no longer exists. You can still deploy
.NET forms, but not through this menu. Instead, there is now a Deployment
Manager dialog.
- The help topic, 'Creating Code Templates' has the incorrect file path. Instead
of saying that a code template is saved, by default, in the Documents and
Settings\.....\X.X(release number)\code_templates directory, it should read,
"is saved, by default into the <BDS>\4.0\Objrepos\code_templates\<language>
directory."
- The C++ help topic, "Reading a String and Writing It To a File"
has incorrect sample code. The code should actually read as follows:
TFileStream *fs const AnsiString str="Hello";
fs = new TFileStream("temp.txt", fmCreate); fs->Write ((void*)str.c_str(),
str.fmCreate); . - The Delphi help topic, "Creating a VCL Forms ActiveX Active Form",
refers to an invalid menu path under its subtopic, "To deploy the active
Form to your Web browser". The menu path Project | Web Deploy was deleted
in Delphi 2005 and is no longer valid for Delphi 2006.
- Under the "What's New in Borland Delphi Studio 2006" link off
the main page, the information under Database/dbExpress about ConnectionString
property should read: The ConnectionString param in dbExpress lets you pass
vendor specific database options and connection information using a single
connection string.
Top
ECO Notes
- If a .ecopkg file is modified by another process, close and reopen your
project.
- When you remove a .ecopkg file from your project, the package is not automatically
removed from the model layer. To remove the package from the model view, do
one of the following:
- Delete the package from the model view manually.
- Remove the .ecopkg file, choose File | Save All, File
| Close All, and then reopen your project.
- If you add a reference to an assembly that contains a UML package, the UML
may not immediately appear in the Model View. To resolve this issue, choose
File | Save All, File | Close All, and then
reopen your project.
- Due to a previous issue in Delphi 2005, where WinForms that contained classes
with international characters would not build, you must change the character
format for your Delphi.NET projects before you can convert them to ECO III.
After opening your project, change the format of all files containing international
characters to UTF-8 (Right-click in the Code Editor, and select File Format
| UTF8 ).
- The IDE cannot handle file names with international characters. This will
prevent ECO code generation when Unicode characters are used in class names.
Workaround: Uncheck "one class per file" in Tools | Options | ECO General
Options.
- The namespace cannot have the same name as one of the classes. You must
give your class or namespace a unique name.
- Re-creating a Sybase table fails on SQL execution for CREATE TABLE with
the claim that "There is already an object named '<ExistingClass>' in the database".
- Trying to create a new instance from All Classes causes ASP.Net AutoForms
for Wrapped databases to fail.
- Wrapped Employees.gdb Customer Details link in ASP.Net AutoForms fails with
exception: [NullReferenceException: Object reference not set to an instance
of an object].
- Role "Add New" links fail for Wrapped Databases in ASP.Net AutoForms.
- When you invoke the Wrapping Wizard on very large databases or tables with
international characters, you might see a message such as "There was
an error when trying to generate code: System.InvalidOperationException: Collection
was modified; enumeration operation may not execute at System.Collections.HashtableEnumerator.MoveNext()".
To avoid seeing this message, turn off the Word Wrap option to automatically
generate code, and remove tables from the wrap. If, after completion of the
Wrap Wizard, tables include international characters, it might also be necessary
to set the file format to UTF8. You can select this file format from the context
menu when you right-click within the Code Editor.
Top
Importing Notes
Top
International Notes
- Breakpoints are not recognized and are marked as "invalid" if
a source file containing non-English characters is placed in the project path.
- If you are using IME (input method editor), a sporadic error caused by a
.NET framework bug might result in a long delay (approximately 5 minutes)
followed by an error message. After two or three times, this error appears
to stop occurring. All language windows are potentially affected.
To avoid this error, create or update the following registry entry:
HKEY_CURRENT_USER\Console
Name LoadConIme
Type REG_DWORD
Data 0
Detailed information from Microsoft regarding this issue is available at
http://support.microsoft.com/kb/872800/EN-US/
Top
NET Porting Notes
- You cannot assign strings to PChar or PWideChar in Delphi 2005. .NET strings
are not modifiable, and you cannot take the address of a character in the
string. Therefore, PChar and PWideChar are not assignment compatible with
String. You need to copy the string data to a local array variable. PChar
and PWideChar will work with local array variables.
- In Win32, floating point values with less than four decimal places assigned
to variants will appear in the variant with a type of Currency. In .NET, the
same values will appear in the variant with a type of Double. This does not
affect the functionality of float values used in variants (arithmetic operations
will produce the same results), but it will affect any source code that extracts
the data type from the variant and expects to see a currency in the variant.
- When porting Win32 packages to .NET, you will need to change the package
names in the requires clause to reflect the following VCL for .NET package
names:
Win32 .NET
rtl Borland.Delphi
and Borland.VclRtl
vcl Borland.Vcl
vclx Borland.VclX
dbrtl Borland.VclDbRtl
bdertl Borland.VclBdeRtl
vcldb Borland.VclDbCtrls
dbexpress Borland.VclDbExpress
dbxcds Borland.VclDbxCds
dsnap Borland.VclDSnap
dsnapcon Borland.VclDSnapCon
vclactnband Borland.VclActnBand
vclado Borland.VclAdoDb
IBXpress Borland.VclIBXpress
Packages can now be installed in the IDE by using Component > Installed
.NET Components > .NET VCL Components.
- When migrating a VCL for Win32 project to VCL for .NET, you need to rename
each of the project's *.dfm files to *.nfm, and, in each .pas file, change
the $R reference from .dfm to .nfm.
- Parameters declared as 'const' on COM interfaces and callbacks to unmanaged
APIs (such as the Win32 API) are not passed by reference. For backwards compatibility,
change any 'const' declarations to '[in] var' as follows:
type
// VCL declaration
TFontEnumProc = function (const lplf: TLogFont; const lptm: TTextMetric; dwType:
DWORD; lpData: LPARAM): Integer;
// VCL.NET declaration
TFontEnumProc = function ([in] var lplf: TLogFont; [in] var lptm: TTextMetric;
dwType: DWORD; lpData: LPARAM): Integer;
This change is not needed for external declarations using the DllImport attribute.
- When associating custom data with ListBox and ComboBox items, mixing the
use of .Items.Objects and sending GETITEMDATA/SETITEMDATA messages to the
Win32 API is not supported. This would interfere with the ListBox's/ComboBox's
internal references maintained to prevent premature garbage collection of
the custom data.
- When porting a VCL and/or database application originally created with Delphi
for Win32, it is necessary to specify the STA threading model for the application.
This is done by adding "[STAThread]" before the begin statement
in the main project file.
- Calling Virtual Constructors from within a Constructor Delphi Win32 behavior
when calling a virtual constructor from within the body of another constructor
of the same class type is to call the virtual constructor as if it were a
virtual method on the current object instance. Delphi for .NET does not implement
this specific aspect of virtual constructors. In Delphi for .NET, a virtual
constructor called from within a constructor body will be executed as non-virtual
call on the current object instance. When the compiler encounters such a call
it will report an unsupported language feature warning. Delphi code that relies
on this particular aspect of constructor polymorphism of the Delphi language
can achieve equivalent results in Delphi for .NET by implementing the polymorphic
parts as virtual methods or virtual class methods instead of virtual constructors.
Virtual methods and virtual class methods are called polymorphically from
within constructor bodies; only virtual constructors are not called polymorphically.
For more information on porting applications, refer to "Porting VCL Applications"
in the online Help.
Top
StarTeam Notes
- The StarTeam context menu contains the following items that open new dialogs:
- Properties
- Labels > New
- Labels > Attach
- Labels > Detach
- Advanced > Convert Archive
- Advanced > Export
- Advanced > Behavior
- Advanced > Item Access Rights
- Advanced > Component Access Rights
- Select > By Query
- Select > By Label
- Find
- Filters > Show Fields
- Filters > Sort and Group
- Filters > Queries
- Filters > Save Current Settings
- Filters > Filters
- Reports
- Charts > Simple
- Charts > Distribution
- Charts > Correlation
- VJ# hotfix, which is not installed as part of the prereqs.exe bootstrap,
must be installed for StarTeam to function properly. It is available in the
Info\StarTeam HotFix folder in Disk 1 of the product.
- After an inability to connect to the StarTeam server, the error message persists. For instance, you may see an error like the following, "No server in your server list matches the host name and port bdnapp.borland.com:49201. Do you want to indicate the server to be used
for this host name and port?" But when you disconnect the server and close the files, it is still there. Workaround: Delete the <StarTeamXXX> tags from project/project locale files by hand.
Top
Together Notes
- After removing Together support from a project, it is not possible to remove
the diagram support files from the Project Manager. To remove these files,
select the IDE main menu item, Project | Remove from Project. The list of
items displayed are the diagram support files. They maybe multi-selected and
removed.
- The MDL Import feature requires:
- Java(TM) 2 Runtime Environment, Standard Edition (preferred version:
build 1.4.2_06-b03 but greater builds should also work)
- The user to update the MDL import config file $(TP)\bin\plugins\mdlimport\jdk.config
and set javahome variable according to JRE installation location. (note
that quotation marks should be omitted even if the path contains spaces).
Example: javahome C:\Program Files\Java\j2re1.4.2_06
- If modeling support is disabled when you select Together refactorings, you
will see a message asking if you want to enable modeling support for project.
You must respond "Yes" to this message in order to use Together
refactorings.
- After moving an association in the Together Model View, all the labels of
the association are repainted on top of each other in the upper left corner
of the diagram. Workaround: Hit the F6 key to Refresh the diagram view.
Top
VCL/RTL Notes
- When changing the FormStyle, BorderStyle, and BorderIcons properties of
a TForm, the form's handle is no longer re-created.
- To improve migration from small to large font systems, the default value
for TForm.AutoScroll has changed to False.
- On Windows 95/98/ME systems, the functions, WideUpperCase and WideLowerCase,
in the SysUtils unit call the Ansi string equivalent function instead of returning
the original string unchanged.
- When changing the Align property of a control to alNone, the control will
return to its original size (before the Align property was set to a value
other than alNone).
- On systems that don't support varInt64 in OleVariant Int64 values can be
converted to varDouble by setting Variants.OleVariantInt64AsDouble to True.
- A new flag, csRecreating, has been added to Controls.TControlState. The
flag is set during the recreation of a TWinControl, and can be used to determine
if a control's handle is being destroyed in response to a CM_RECREATEWND message.
- The new method, TApplication.HelpShowTableOfContents, is the preferred way
to display a table of contents.
- The new property, TApplication.ModalPopupMode, determines the how forms
with PopupMode set to pmNone function when ShowModal is called. The default
value for ModalPopupMode is pmNone, which provides functionality equal to
Delphi 7 and prior releases. For more information about the PopupMode property,
see the online documentation for TForm.PopupMode.
- Performing an Undo of a Rename Refactoring on a simple VCL application results
in an exception. Workaround: Save the application, close it and reopen it.
This will not adversely affect your application - the exception is just for
the designer.
Top
Copyright 2005 Borland Software Corporation. All rights
reserved.