[All]
RAD Studio 2007 - List of Fixes to Delphi.NET in December Update
By: Chris Pattinson
Abstract: List of 157 fixes (40 from Quality Central) for RAD Studio 2007, Delphi.NET personality in the December Update
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
| When using "composite controls" in the designer the Control does not render correct (it shows as a small square thus being cropped). Once in the design mode, of the control is moved, it will paint correctly, however; toggling to aspx and back to design will again mispaint the control. |
Open attached project Click on design tab. Expected (see attached bmp): Two textBoxes and a button Actual: small little box (composite) Move the control to the right. Notice the "actual" control renders |
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
| Format specifiers have no effect in the evaluator. |
Set a breakpoint on the line marked #1 and run.
Evaluate the following expression.
IntegerVar,h
See the following result.
42
The value expected was 2A or $2A.
program Test;
{$APPTYPE CONSOLE}
var IntegerVar: Integer;
begin IntegerVar := 42; WriteLn(IntegerVar); // #1 end. |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| In .NET 2.0 the CLR introduced new overloaded methods to System.String.Split. One new overload takes a string array which is ambiguous with the char array version. |
Compile the following against .NET 2.0.40607:
procedure OverloadSplitTest(S: System.String); var splits: array of string; begin splits := S.Split([',','.']); end;
It will now fail with an ambiguous overload error.
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
Hard-coded string in source (see comment from Takeshi Arisawa for specifics).
Original bug description follows: ----------
One Filelist-Entry is not translated "ASP.NET Files" should be "ASP.NET-Dateien" |
1. Click on DATEI - ÖFFNEN 2. open the Dateiliste 3. Scroll to ASP.NET Files |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
#6 - For SqlConnection.GetTableNames the tablescope property is not being respected for either dbxmss30.dll when you include tsSysTable in addition to tsTable.
For MsSql you are calling sp_table_rowset which only accepts 1 table type, and not a set of table types. If you specify just tsSysTable then it works.
|
|
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
please change the layout of the "Select UML Packages for the ECO Space" dialog for localization. "Cancel" button does not fit into the dialog after we translate. ------------ "Cancel" button in ECO's Select Packages wizard is slightly truncated. |
- Open a new ECO WinForm; - Go to EcoSpace Designer and click a grey folder icon in the lower left corner; //"Select UML Packages for the ECO Space" dialog opens; // See the attached screenshot. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Packages |
| Description: |
Steps: |
HOT FIX ROLL UP 1-10
Object ref not set on shut down of IDE if you uncheck a Win32 package, while you have a .NET app open.
STACK TRACE Attached |
boot IDE New VCL.NET App Save All Tools | Options - set Save Project Desktop ON Save All Shut down IDE Start IDE // VCL.NET app should be open Component | Install Packages uncheck one OK Close IDE
//Object Ref not found
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Help |
| Description: |
Steps: |
Press F1 in Delphi.Net's WinForm or ASP WebForm's code editor got error
Error --------------------------- Abstract Error. --------------------------- OK Details >> ---------------------------
[HelpUpdate] |
1. File | New | Delphi.Net | WinForm Application (or ASP Application) 2. click Code tab 3. click any keyword, ie : type or uses or anywhere 4. press F1
//Abstract Error. + $12[00347E7A]{rtl110.bpl } SysUtils.SysUtils.AbstractErrorHandler (Line 14258, "sys\sysutils.pas" + 0) + $12 + $6[209D9271]{coreide110.bpl} EditorControl.EditorControl.TCustomEditControl.HelpKeyword (Line 4428, "EditorControl.pas" + 8) + $6 + $17[209DF0D8]{coreide110.bpl} EditorControl.EditorControl.TCustomEditControl.AutoInvokeCodeCompletion (Line 7255, "EditorControl.pas" + 1) + $17 + $6[0047D115]{vcl110.bpl } Controls.Controls.TWinControl.WndProc (Line 8923, "Controls.pas" + 129) + $6 + $6[0047C8A8]{vcl110.bpl } Controls.Controls.TWinControl.MainWndProc (Line 8659, "Controls.pas" + 3) + $6 + $0[0037107C]{rtl110.bpl } Classes.Classes.StdWndProc (Line 11596, "common\Classes.pas" + 8) + $0 + $6A[77D48731]{USER32.dll } GetDC + $6A + $14A[77D48811]{USER32.dll } GetDC + $14A + $17F[77D4B4BB]{USER32.dll } DefWindowProcW + $17F + $1CD[77D4B509]{USER32.dll } DefWindowProcW + $1CD + $10[7C90EAE0]{ntdll.dll } KiUserCallbackDispatcher + $10 + $44[77D5F3DE]{USER32.dll } SendMessageA + $44 + $1B[209C9C7A]{coreide110.bpl} VClient.VClient.KeyBindingProc (Line 2644, "VClient.pas" + 20) + $1B + $2C[2099A20E]{coreide110.bpl} IDEKbd.IDEKbd.@interpret_bmi_macro$qqrp5BMI_tpcp11CmdMapTableppc (Line 30, "bmi.cpp" + 5) + $2C + $10[20998E0A]{coreide110.bpl} IDEKbd.IDEKbd... (Line 132, "kbpublic.cpp" + 88) + $10 + $18[209C73B0]{coreide110.bpl} VClient.VClient.KbdFileOpen (Line 460, "VClient.pas" + 2) + $18 + $8[20A6EA94]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 723, "KbClient.pas" + 141) + $8 + $5[20A6E519]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.KeyboardChanged (Line 517, "KbClient.pas" + 6) + $5 + $2[20A6E829]{coreide110.bpl} KbClient.KbClient.TIDEKBDFrameAPI.ProcessKeyStroke (Line 585, "KbClient.pas" + 3) + $2 + $2[20A6F55C]{coreide110.bpl} KbClient.KbClient.TIDEKBD |
39104
| QC# |
Project |
Area |
| 39104 |
Delphi.Net |
ECO\Persistence Layer |
| Description: |
Steps: |
[QC Short Description] ECO crashes when selecting data conditionally from SQL 2005 when the number or rows exceeds certain amount.
[QC Description] Attached is the test project I created. Please correct the connection string in order to connect to your own SQL server. The EcoSpace is setup to use GUID as the keys; and the only ECO class is named "Class_1" with only one boolean attribute "Active". The winform contains 3 buttons, the "+ 10" would create and add 10 rows to the DB. the "All" would bind the datagrid to the expression "Class_1.allInstances" and the button "Active" would bind the datagrid to the expression "Class_1.allInstances->select(Active)"
1. setup SQL server and generate the schema 2. run the program and add 10 rows 3. check the "All" and "Active" buttons work properly 4. press 2 more times of the add buttons to add 20 more rows 5. check again the "All" and "Active" buttons work 6. close and restart the program 7. the "All" button works but the "Active" button would crash the program with exception "Conversion failed when converting from a character string to uniqueidentifier."
Reset the EcoSpace to use AutoInc as keys and repeat the test would result in exception: "Error executing SQL: SELECT Class_1_ALIAS.ECO_ID, Class_1_ALIAS.ECO_TYPE, Class_1_ALIAS.Active_COL FROM Class_1 Class_1_ALIAS WHERE Class_1_ALIAS.ECO_ID IN (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )"
P.S. my config: Windows XP SP2 with all updates, BDS 2006 Update 1 with all hotfixes, MS SQL 2005 Express QC Entry 39104
|
1. setup SQL server and generate the schema
2. run the program and add 10 rows
3. check the "All" and "Active" buttons work properly
4. press 2 more times of the add buttons to add 20 more rows
5. check again the "All" and "Active" buttons work
6. close and restart the program
7. the "All" button works but the "Active" button would crash the program with exception "Conversion failed when converting from a character string to uniqueidentifier."
Reset the EcoSpace to use AutoInc as keys and repeat the test would result in exception: "Error executing SQL: SELECT Class_1_ALIAS.ECO_ID, Class_1_ALIAS.ECO_TYPE, Class_1_ALIAS.Active_COL FROM Class_1 Class_1_ALIAS WHERE Class_1_ALIAS.ECO_ID IN (, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , )"
|
| QC# |
Project |
Area |
|
Delphi.Net |
VCL |
| Description: |
Steps: |
Access Violation in module rtl100.bpl when pressing F1 on a menu item (in this test case - the File menu)
//note - I notice no help is linked to these menu items. Is that related? CP
//This can put the IDE into a state where you need to close it, since the AV dialog keeps coming back up.
========== jt add ========= this is VCL Actionband component problem, new steps added.
regression from D2006, in D2006, no AV only "No context-sensitive help installed." pop up, which is as expected.
// Francois Piette I still see it with build 2700.
|
---- See actionband steps for VCL.NET ----
Infrequent, but I can get this to reproduce and crash the IDE after doing three times
Project | Options Click help to open minimize the Help viewer Open File menu mouse over 'Open...' click F1
//typically this is where the A/V occurs.
=================== jt add =================== 1. File | New | VCL Win32 Application 2. drop a TActionManager, TActionMainMenu, TMemo on designer 3. double click TActionManager, add Edit category standard Action 4. drag Edit Category from Customize Dialog to ActionMainMenuBar1 5. Run with debug 6. in Running application, click File 7. mouse hover on "Paste" menu item 8. press F1 ---------------------------
--------------------------- Access violation at address 00439918 in module 'Project1.exe'. Read of address 00000040. --------------------------- OK ---------------------------
9. click OK then ---------------------------
--------------------------- No context-sensitive help installed. --------------------------- OK ---------------------------
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Refactoring\Rename |
| Description: |
Steps: |
ORIGINALLY REPORTED FOR JA... BUT CAN REPRODUCE THIS ON EN.
[FUNCTION ISSUE] Rename function is wrong. It was not changed definitely, for example, when I changed variable name from 'i' to 'test'. See attach image. |
1. Startup | CodeGear RAD Studio 2. File | New | VCL Forms Application - Delfhi for .NET 3. Coding 4. Refactoring | Rename "..." |
48693
| QC# |
Project |
Area |
| 48693 |
Delphi.Net |
IDE\HTML\ASP\Designer\Web Controls |
| Description: |
Steps: |
[QC Short Description] You cannot bind properties to values in resource files using the expression dialog
QC Entry 48693
|
1) Create a new asp.net web application
2) Go to the designer for webform1.aspx and add a asp.net label to the designer surface
3) In the object inspector, inspect the label and click on the expressions property value to launch the label1 expressions dialog
4) select text as the bindable property
5) set expression type to resources
6) In the expressions properties, classkey and resourcekey are available properties
expected: you should be able to enter a value for resourcekey
actual: it appears to be readonly
Note:
If you modify the markup by hand
ie
<asp:Label id="Label1" runat="server" Text="<%$ Resources:Resource, Welcome %>"></asp:Label>
Then classkey is set to Resource and resourcekey is set to Welcome
Unfortunately The text property in the inspector is empty, it should be
Expression: Resource, Welcome |
47453
| QC# |
Project |
Area |
| 47453 |
Delphi.Net |
IDE\Docking |
| Description: |
Steps: |
[QC Short Description] Dock Tabs appear at wrong position
[QC Description] If for instance in the delivered Default Layout the Object Inspector is unpinned, it's caption appears as a vertical tab on the left of the structure view. Saving this layout, switching to another one and switching back makes the tab appears to the right of the structure view. Reselecting the current layout brings the tab back where it belongs. QC Entry 47453
|
if necessary, copy the factory "Default Layout.dst" from "<program files>\CodeGear\RAD Studio\5.0\bin" to "<Application Data>\Borland\BDS\5.0\" (Borland???)
- start IDE
- select "Default Layout"
- unpin Object Inspector
- save current layout overwriting Default Layout
- select Debug Layout
- select Default Layout
exp: Object Inspector tab left from Structure View
act: Object Inspector tab right from Structure View
- select Default Layout
exp: Object Inspector tab left from Structure View
act: Object Inspector tab left from Structure View
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Help |
| Description: |
Steps: |
| No help found for context" message when you click the Help button in the Template Libraries dialog. |
1. File | New | Other 2. Right-click in right pane 3. Select Template Libraries... |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Parameters |
| Description: |
Steps: |
parameter tooltip is not displayed correctly in this test case. Tooltip is not displayed for one of the parameters.
looks like code parameters are not working for membership provider.
(jpg attached) |
1. Create ASP .NET App 2. On Page_Load function in Default.pas, write following Membership.ValidateUser( // exp: ValidateUuser has two parameters, username and password, so expect to have tooltip for "username" after "(" is entered // act: tooltip for password is displayed
try FormsAuthentication.RedirectFromLoginPage also. Code completion displays the correct parameter, but parameter tooltips are completely wrong. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| Full source codes for the ASP.Net providers are not delivered in the build. |
The following files should be delivered:
$(BDS)\source\dotNet\asp\provider\aspnet_regdb.dpr $(BDS)\source\dotNet\asp\provider\aspnet_regdb.dproj $(BDS)\source\dotNet\asp\provider\aspnet_regdb.inc $(BDS)\source\dotNet\asp\provider\Borland.Web.Commands.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Management.AdoWebEventProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Management.DbSetup.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Profile.AdoProfileProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.dpk $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.dproj $(BDS)\source\dotNet\asp\provider\Borland.Web.Provider.inc $(BDS)\source\dotNet\asp\provider\Borland.Web.Security.AdoMembershipProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Security.AdoRoleProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Strings.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.UI.WebControls.WebParts.AdoPersonalizationProvider.pas $(BDS)\source\dotNet\asp\provider\Borland.Web.Utilities.pas $(BDS)\source\dotNet\asp\provider\License.txt
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi.Net: Show generic parameters of functions on the class icon. Now only class with generic parameters has distinction from ordinar class, it would be better if generic functions as well have distinctions. The better way to show these parameters as a part of name.
|
A = class function F<T>:Integer; // now is shown as F, but F<T> is expected procedure P<Y>; // the same end; |
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
| The API signature information, such as method signatures, is missing in a lot of the documentation. For instance, the topic "Borland.Data.AdoDbxClientProvider.TAdoDbxDataAdapter.DeleteCommand" doesn't have a description of the method. |
1. Go to topic "Borland.Data.AdoDbxClientProvider.TAdoDbxDataAdapter.DeleteCommand" at ms-help://borland.bds5/delphivclwin32/Borland_Data_AdoDbxClientProvider_TAdoDbxDataAdapter_DeleteCommand.html. Note there is no line with the method signature. 2. By contrast, look at the topic "TCustomActionCombo.DragDrop Method" at ms-help://borland.bds5/delphivclwin32/ActnCtrls_TCustomActionCombo_DragDrop@TObject@Integer@Integer.html. There are lines describing the method both in C++ and Delphi. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Implement TDBXBinaryLongSequenceGenerator
Use new TDBXBlobSequenceGenerator has getBytes and getString method. |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Implement TDBXBinarySequenceGenerator
Use new TDBXBlobSequenceGenerator has getBytes and getString method. |
|
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
When creating a WebForm app and a model package at the same time, the initialization of the EcoSpaceUnit fails with a designer error
|
1) File | New | Other | Eco | Eco Delphi.Net Project Wizard 2) Select the preset, Webform application and set the checkbox ON for "In separate assembly. click OK //result: EcoSpaceUnit opens in the designer with this error: An error occurred while loading the document. Fix the error, and then try loading the document again. The error message follows: Could not find type 'EcoSpaceUnit.PersistenceMapperSharer'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built. The variable 'PersistenceMapperSharer1' is either undeclared or was never assigned. 3) In Project Manager, double-click PersistenceMapperProvider.pas to open it 4) Click on the Design tab //result: Similar Designer errors // comment from Jonas: The project compiles without problems. if you close the project and reopen it, the designer works just fine.
If you create the project with the model in the same project as the rest (uncheck "In Separate assembly"), the same ecospace opens up just fine the first time.
The exception that actually occurs in the IDE is the following:
=== A first chance exception of type 'System.ComponentModel.Design.Serialization.CodeDomSerializerException' occurred in System.Design.dll
Additional information: The variable 'PersistenceMapperSharer1' is either undeclared or was never assigned. ===
callstack (see attached) |
50936
| QC# |
Project |
Area |
| 50936 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] Attempting to create users results in the error DuplicateProviderUserKey when the provider is attached to MySql via the AdoDbxClient
[QC Description] The membership provider does not work against mysql and the adodbxclient QC Entry 50936
|
1) Create a mysql database
I'm using version 5.0.41-community-nt MySQL Community Edition (GPL)
2) Create a connectionstring in machine.config and run aspnet_regdb against that database
3) Open the supplied example
4) Modify the connectionstring in web.config so that it connects to your MySql database
5) Open CreateAccount.pas and set a breakpoint on
procedure TWebForm4.CreateUserWizard1_CreateUserError(sender: TObject; e: System.Web.UI.WebControls.CreateUserErrorEventArgs);
begin
end;
7) Run the application and you should end up with CreateAccount.aspx in the browser
8) Enter all the user details and hit the create user button
actual:
The breakpoint is hit
inspect e._error and its 10(0xa) 'DuplicateProviderUserKey'
run the application
The message below is displayed in the browser
Your account was not created. Please try again.
expected:
The user should be created
Note: I have successfully run this application against System.Data.SqlClient and Blackfish, so I think its something about about mysql or the dbxclient
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi .Net and Win32: it should be possible to rename a procedure inplace in the diagram. Now new name is rejected and old one is kept. Note 1: functions are renamed inplace ok Note 2: the same procedures are renamed ok from Object Inspector.
[Highlander Update] |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Patterns |
| Description: |
Steps: |
Delphi.Net and Win32: Stub implementation: don't loose parameter's modifiers.
[Highlander Update] |
1. Original code (e.g. for Win32): Interface1 = interface procedure Proc1 (const name: string; Var param1 : Integer; out param2 : Integer); end; Class1 = class (TInterfacedObject, Interface1) end; 2. Now for Class1 generated Stub Implementation. Results: Class1 = class (TInterfacedObject, Interface1) procedure Proc1( name : String ; param1 : Integer; param2 : Integer); end; So, all parameters' modifiers (const, var, out) are lost and the code is not compilable. |
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
deployJds.html deployment chapter is missing sections from sshaughnessy on how to deploy slip license files.
Also needs latest update for $(BDSCOMMONDIR)\license as one of the dirs to search for licenses.
I have provided content to Kim and Dee. Waiting for response that work is complete. |
This refers to the Blackfish SQL Developer's Guide which is not in the help system. It is downloadable at: http://cc.codegear.com/Item/24980.
You can use the PDF search to find the section on slip licenses.
Thanks Emeli! -Dee |
51076
| QC# |
Project |
Area |
| 51076 |
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
[QC Short Description] Stored procedures cannot be dropped from the database if the dotnet implementation no longer exists
[QC Description] If I have a Blackfish stored procedure in the database called SOMEOTHERMETHOD and I rename the method in the Delphi implementation I am no longer able to drop the method in Data Explorer QC Entry 51076
|
1) Create a new Blackfish Remote database in Data Explorer
2) Open the supplied example and compile
3) Copy the assembly to wherever Blackfish is looking for assemblies
4) Register the method with Blackfish
CREATE METHOD SomeOtherMethod as 'Other::Other.TMyStoredProcedures.SomeOtherMethod'
5) Stop the Blackfish service
6) Open Other.StoredProcedures in the edtior and rename the method SomeOtherMethod to AnotherSomeOtherMethod
7) Build and copy the assembly to the same place as step (3)
8) Start the Blackfish server
9) In dataexplorer example the stored procedure list SomeOtherMethod is listed but there are no parameters
10) In a sql window attempt to drop the method
drop method "SomeOtherMethod"
expected:
stored procedure should be dropped
actual:
an error message is displayed
[line1, col 1] A method with the name "SOMEOTHERMETHOD" doesn't exist
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
For Oracle, Boolean parameters are retrieved as Unknown Type.
[Nov Update] |
1. For an Oracle db:
CREATE PROCEDURE BOOLEAN_ECHO_ORACLE(IN_PARAM IN BOOLEAN, OUT_PARAM OUT BOOLEAN) AS BEGIN OUT_PARAM := IN_PARAM;END;
2. In Data Explorer, navigate to this stored procedure and double click on it to view it's parameters
Exp. Value field blank Act. Value field contains Object reference not set to an instance of an object |
51094
| QC# |
Project |
Area |
| 51094 |
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
[QC Short Description] The Smart Task Menu doesn't get displayed when the control is in a Panel or an UpdatePanel
[QC Description] When the control is in a Panel, it's smart task menu doesn't be displayed. Please see the steps for details. QC Entry 51094
|
- Download and open the sample project that I've attached.
- Open Default.aspx in the designer and scroll down to the GridView.
- Right click on the GridView.
- Select Smart Task from this context menu.
Actual:
- Nothing happens.
- However, there isn't the smart task's arrow in the top corner of the control.
Expected:
- The Smart Task shows up.
Also the smart task indictator that is normally displayed in the top right hand corner of the control isn't visible
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling |
| Description: |
Steps: |
Delphi Win32 and .Net: add parameters with var/out/const modifier to global procedure/function using "Add/Remove Parameters for Operation" dialog both to interface and implementation sections. Now only in interface sections parameters with modifiers are partially set. Adding parameters without modifier happens ok. Adding paramerters with modifier to procedure/function within a class happens ok.
[Highlander Update] |
1. Source code: unit Namespace1; interface procedure p; implementation procedure p; begin end; end. 2. case a. Now select p in Model View and try to change parameters from Object Inspector using "Add/Remove Parameters for Operation" dialog. Add one parameter and set any modifier var/out/const for it - parameter is added to both parts, but modifier is present only in interface part: unit Namespace1; interface procedure p(out param0 : Integer); implementation procedure p( param0 : Integer ); // out is lost begin end; end.
2. case b. Using the same dialog as in case a, try to add 2 parameters and modifier set only for first one (it's important that it should be a parameter after parameter with modifier). Result: exception dialog (see attachement). Resulting code: unit Namespace1; interface procedure p(out param0 : Integer ; param1 : Integer); implementation procedure p( param0 : Integer ); // out and other parameters are lost begin end; end.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Missing required disk space size information at Setup Cache page during standalone Help_Setup process, attached screen shot. |
- install HL w/out Help - start IDE and register it - close IDE // used Highlander.Help/0828.1/* - install Help via Setup /upgrade
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
Putting a TSqlConnection on a VCL.Net form automatically pulls in the unit DBXpress. This is a virtually empty unit, it only contains a uses clause or two. the problem is that it is deprecated, so the compiler will issue a warning everytime it is used.
Holger pointed it out in the first place :)
the reason it is pulled in is because of:
procedure TSQLConnectionSelectionEditor.RequiresUnits(Proc: TGetStrProc); begin Proc('DBXpress'); end;
in <tp>\app\dotnetlib\db\Borland.Vcl.Design.DbxCtrlsReg.pas
description of the RequiresUnit: Should call Proc with all the units that are needed to be used when using this class. The form designer automatically ensures the unit the class was declared in and all its ancestor's units are used in the user's program when they use this component. Sometimes, however, an event will use a type in one of its parameters that is not in its unit nor any of its ancestor's units. If this is the case a selection editor should be registerd that implements RequiresUnits and it should call Proc for each unit that declare the types needed by its events |
new VCL.Net app drop TSqlConnection on the form compile
exp: compiles wihtout warnings act: [DCC Warning] Unit1.pas(16): W1006 Unit 'Borland.Vcl.DBXpress' is deprecated |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
Generic constraint checking fails spuriously for instantiation of a descendant of the constraint, using another type parameter in declaration of descendant (see example code)
More complicated generic solutions need this flexibility to reduce redundant dependent types when declaring descendants, since .NET doesn't have a typedef-in-template equivalent like C++. |
This program doesn't compile:
Error: E2515 Type parameter 'U' is not compatible with type 'TBaseAlpha<TConcrete<T>.T>'
---8<--- {$apptype console}
type TBaseAlpha<T> = class private F: T; public property P: T read F write F; end; TBase<T; U: TBaseAlpha<T>> = class public F: U; procedure M(x: T); end; TConcreteAlpha<T> = class(TBaseAlpha<T>) end; TConcrete<T> = class(TBase<T, TConcreteAlpha<T>>) end;
procedure TBase<T;U>.M(x: T); begin F.P := x; end;
var x: TConcrete<Integer>; begin x := TConcrete<Integer>.Create; x.F := TConcreteAlpha<Integer>.Create; x.M(42); Writeln(x.F.P); end. --->8---
For comparison, here's the same program in C#:
---8<--- using System;
class TBaseAlpha<T> { T F; public T P { get { return F; } set { F = value; } } }
class TBase<T, U> where U: TBaseAlpha<T> { public U F; public void M(T x) { F.P = x; } }
class TConcreteAlpha<T> : TBaseAlpha<T> { }
class TConcrete<T> : TBase<T, TConcreteAlpha<T>> { }
class App { static void Main() { TConcrete<int> x; x = new TConcrete<int>(); x.F = new TConcreteAlpha<int>(); x.M(42); Console.WriteLine(x.F.P); } } --->8---
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| Overloading generic method with open array method fails with internal error / AV |
Code fails to compile:
---8<--- {$apptype console}
type C2 = class class procedure P<T>(const x: array of T); overload; class procedure P(const x: array of string); overload; end;
procedure Go; begin C2.P([42]); // ##OUTPUT: array of T C2.P(['42']); // ##OUTPUT: array of string end;
class procedure C2.P<T>(const x: array of T); begin Writeln('array of T'); end;
class procedure C2.P(const x: array of string); begin Writeln('array of string'); end;
begin Go; end. --->8--- |
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Overloading |
| Description: |
Steps: |
| Spurious ambiguous overload problem when generic class has overloaded methods taking open arrays, and one of the open array parameters is of a type parameter type |
Code (fails to compile with ambiguous error):
---8<--- {$apptype console}
type C<T> = class class procedure P(const x: array of T); overload; class procedure P(const x: array of string); overload; end;
procedure Go; begin C<Integer>.P([42]); // ##OUTPUT: array of T C<string>.P(['42']); // ##OUTPUT: array of string end;
class procedure C<T>.P(const x: array of T); begin Writeln('array of T'); end;
class procedure C<T>.P(const x: array of string); begin Writeln('array of string'); end;
begin Go; end. --->8--- |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Project Manager\Add reference |
| Description: |
Steps: |
Together issue. Removing a reference to System.Windows.Forms.dll from a VCL project causes a catastrophic error
the exception occurs in platformProjectImpl.cs, line 343.
IOTAReferences refs = p.References; for (int i = 0; i < refs.Count; i++) { IOTAReference iotaRef = refs[i]; string refName = iotaRef.Name; <<<< Here
bugfind credits goes to Holger
Workaround: Close the project, and reopen. Project builds and reference is removed. |
Steps: * New VCL .net form * switch to model view tab * enable modelling * answer yes to all save dialogs * Add reference to System.Windows.Forms.dll * Remove the reference again
exp: reference gone act: Catastrophic failure ------------------ ADDITIONAL: Project | Build results in a catastrophic faliure. ------------------ callstack on managed side: [Managed to Native Transition] > Borland.Studio.Together.dll!Borland.Studio.Together.Impl.Project.PlatformProjectImpl.updateReferences() Line 343 + 0x9 bytes C# Borland.Studio.Together.dll!Borland.Studio.Together.Impl.Project.PlatformProjectImpl.onModified(object sender = {Borland.Studio.Interop.InteropModuleService.OTAProject}, System.EventArgs args = {System.EventArgs}) Line 955 + 0x7 bytes C# [Native to Managed Transition] [Managed to Native Transition] Borland.Studio.Interop.dll!Borland.Studio.Interop.InteropModuleService.OTAModule.Borland.Studio.Interop.IInteropNotifier.Modified() Line 2063 + 0x15 bytes C# [Native to Managed Transition]
callstack on native side: [5304E633]{dotnetcoreide100.bpl} ToolsAPIWrapper.TInteropModule.Modified (Line 2577, "ToolsAPIWrapper.pas" + 3) + $2A [4000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [5217DA56]{coreide100.bpl} DocModul.TCodeIDocModule.NotifyModifiedEvent (Line 2355, "DocModul.pas" + 2) + $5 [0173666A]{designide100.bpl} ToolUtils.ForEach (Line 90, "ToolUtils.pas" + 5) + $F [5217DAF0]{coreide100.bpl} DocModul.TCodeIDocModule.NotifyModified (Line 2362, "DocModul.pas" + 1) + $11 [5217A791]{coreide100.bpl} DocModul.TDocModule.Modified (Line 1235, "DocModul.pas" + 6) + $3 [520EB66E]{coreide100.bpl} ProjectModule.TBaseProject.Modified (Line 1204, "ProjectModule.pas" + 1) + $3
|
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger\Interaction with IDE |
| Description: |
Steps: |
| You are unable to change either the Working directory or the Debug source path for an ASP.net app if the ASP.net option "Host with web server" is enabled |
Create a new delphi.net ASP.Net application Run | Parameters Note that the all the controls on the "Debugger" page are disabled. Only the Host application and Parameters fields need to be disabled in this case
Note: If you uncheck "Host with web server" on the ASP.Net options page, then you can set the source path and working directory. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
Find a solution to canhas projects with the same structure (names) in one folder.
[Highlander Update] |
1. Create Delphi.Net Package project (Package1) in the default folder for projects. 2. Create namespace (Namespace1) in the project and Class (Class1) in this namespace. 3. Create another project (Package2) in the same folder. 4. Repeate item 2. for project Package2.
Class2 is not created.
AD : SCI asks VFSProject (for 'Package2') to create file with name 'Namespace1.pas' which already exists (in project 'Package1').
Now Class 2 is created and code is Ok. But when project Package1 is opened, it can be noted that Class 2 is appeared. |
51165
| QC# |
Project |
Area |
| 51165 |
Delphi.Net |
IDE\Code Editor |
| Description: |
Steps: |
[QC Short Description] Code Folding: incorrect for generic classes/methods
[QC Description] Code folding is sometimes missing, sometimes misplaced when a unit contains generic classes, interfaces and the methods of their implementations.
There is no obvious pattern to this behaviour, i.e. it is not always the first, second, etc. Neither is it resolved by scrolling and redrawing. QC Entry 51165
|
open attached .pas file.
see code folding missing on line 43
-------------- Write a couple of generic classes/interfaces in the same unit. Ensure that they have a few methods each in the implementation section. |
51114
| QC# |
Project |
Area |
| 51114 |
Delphi.Net |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
[QC Short Description] ErrorInsight reports valid Methods as errors
[QC Description] error-insight seems to report some entries that are actually correct. A valid and existing method gets red-dotted. QC Entry 51114
|
Please take the following example wich compiles fine:
---------------------
uses System.Collections.Generic;
type
TApfel = class(TObject);
TMyAepfelList = List<TApfel>;
procedure Foo;
var Apfel : TApfel;
List1 : TMyAepfelList;
begin
Apfel:= TApfel.Create;
List1:= TMyAepfelList.Create;
List1.Add( Apfel ); // <-- error here 'Add' is red-dotted
end;
--------------------- |
51096
| QC# |
Project |
Area |
| 51096 |
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description] class completion duplicates field of qualified type
[QC Description] When class completion is invoked on a class having a property with a qualified type name (one with at least one dot), the corresponding field is created for each invocation.
This is as mainly seen in .NET where qualified types are common, but also reproducable in Win32.
I actually stumbled across it using ECO where each ECO form has an EcoSpace property of type Eco.Handles.DefaultEcoSpace. Thus each invoked class completion adds another field for that property. QC Entry 51096
|
- start IDE
- create new VCL Form Application
- move to the public section
- enter: "property Foo: System.Int64 read FFoo;"
- press Ctrl-Shift-C for class completion
- field FFoo: System.Int64 is created
- press Ctrl-Shift-C for class completion again
exp: nothing happens
act: another field FFoo: System.Int64 is created |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Dom |
| Description: |
Steps: |
Create ASP's event got
procedure Button1_Click(sender: TObject; e: System.EventArgs);
when it should be
procedure Button1_Click(sender: System.Object; e: System.EventArgs); |
1. File | New | ASP Application 2. drop an asp:button 3. double click Button to Onclick // procedure Button1_Click(sender: TObject; e: System.EventArgs);
// notice "TObject" should be "System.Object"
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
ASP.NET application with Interbase, IIS.
Connecting to the interbase fails with the following error.
Could not load file or assembly 'Borland.Data.DbxDynalinkDriver, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f' or one of its dependencies. The system cannot find the file specified.
I wonder how the .Net picked up the publickeytoken when it's not specified in the connectionstring because the publicKeyToken specified in the error message is different from what I have in my gac.
******* See RESOLUTION history |
1) Install Product and Interbase client on a clean VM 2) Run and do a new ASP.NET web application using Cassini 3) Modify the IBCONNECTION in DataExplorer to point a valid IB 2007 database connection containing the ASP.NET provider schema. I was using "medington4:d:\databases\interbase\aspnet.gdb" which is all setup and accessible if you want to use it as well. 4) Open web.config for the application and change the connection string to be:
<add name="BlackfishSqlAspNet" connectionString="connectionnName=IBCONNECTION" providerName="Borland.Data.AdoDbxClient"/> 5) Drop a login control on the default web form 6) Run without debugging 7) type something into the login control username and password and click the login button
//exp: Invalid username/password error //act: assemply load error message with a wrong publickey tokey:
Could not load file or assembly 'Borland.Data.DbxDynalinkDriver, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=a91a7c5705831a4f' or one of its dependencies. The system cannot find the file specified.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
BlackfishSQL All the exception classes should be deserializeable.
i.e. they must implement: a constructor and a GetObjectData since the base class implements ISerializeable
|
TODO: Add testcase which causes an exception, saves it to file and restored the exception object. |
51423
| QC# |
Project |
Area |
| 51423 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Methods with different constraints will not always compile
[QC Description] Depending on which constraints are placed on methods of a class, the code of one of the methods will or will not compile.
This won't compile:
type Tester = class function AreEqual<T: IEquatable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer; end;
function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean; begin Result := List[Index1].Equals(List[Index2]); end;
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; begin Result := List[Index1].CompareTo(List[Index2]); end;
I get the error "undeclared identifier: 'CompareTo'". But the next code will compile, and 'CompareTo' is not undeclared anymore:
type Tester = class function AreEqual<T: IComparable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean; function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer; end;
function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean; begin Result := List[Index1].CompareTo(List[Index2]) = 0; end;
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; begin Result := List[Index1].CompareTo(List[Index2]); end;
Note that the following will also compile, so is it perhaps that I am doing something wrong?
type Tester2 = class function AreEqual<T: IEquatable<T>>(Item1, Item2: T): Boolean; function Compare<Z: IComparable<Z>>(Item1, Item2: Z): Integer; end;
function Tester2.AreEqual<T>(Item1, Item2: T): Boolean; begin Result := Item1.Equals(Item2); end;
function Tester2.Compare<Z>(Item1, Item2: Z): Integer; begin Result := Item1.CompareTo(Item2); end;
Hmmm... This also compiles, even with different constraints:
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer; var Element: Z; begin Element := List[Index1]; Result := Element.CompareTo(List[Index2]); end;
So how come the compiler can't recognize List[Index1] as implementing IComparable, but it can recognize Element doing that? Actually, even the cast IComparable(List[Index1]) was rejected. Note, if both methods have the same constraint, this seems to be unimportant. QC Entry 51423
|
* Start a new Delphi for .NET console app
* Change the code of the app to:
program Project13;
{$APPTYPE CONSOLE}
uses
SysUtils,
System.Collections.Generic;
{ $DEFINE SAMECONSTRAINT}
type
Tester = class
{$IFDEF SAMECONSTRAINT}
function AreEqual<T: IComparable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean;
{$ELSE}
function AreEqual<T: IEquatable<T>>(List: IList<T>; Index1, Index2: Integer): Boolean;
{$ENDIF}
function Compare<Z: IComparable<Z>>(List: IList<Z>; Index1, Index2: Integer): Integer;
end;
Tester2 = class
function AreEqual<T: IEquatable<T>>(Item1, Item2: T): Boolean;
function Compare<Z: IComparable<Z>>(Item1, Item2: Z): Integer;
end;
function Tester.AreEqual<T>(List: IList<T>; Index1, Index2: Integer): Boolean;
begin
{$IFDEF SAMECONSTRAINT}
Result := List[Index1].CompareTo(List[Index2]) = 0;
{$ELSE}
Result := List[Index1].Equals(List[Index2]);
{$ENDIF}
end;
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer;
begin
Result := List[Index1].CompareTo(List[Index2]); // error!!
end;
function Tester2.AreEqual<T>(Item1, Item2: T): Boolean;
begin
Result := Item1.Equals(Item2);
end;
function Tester2.Compare<Z>(Item1, Item2: Z): Integer;
begin
Result := Item1.CompareTo(Item2);
end;
begin
try
{ TODO -oUser -cConsole Main : Insert code here }
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
* Build
exp: compiles
act: [DCC Error] Project13.dpr(37): E2003 Undeclared identifier: 'CompareTo'
* remove the space before the $ in the $DEFINE line
* Build
exp: same error
act: compiles
* Also note: no error in class Tester2.
* remove $DEFINE
* Change the code of Tester.Compare<Z> to:
function Tester.Compare<Z>(List: IList<Z>; Index1, Index2: Integer): Integer;
var
Item: Z;
begin
Item := List[Index1];
Result := Item.CompareTo(List[Index2]);
end;
* Build
exp: error again
act: compiles
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Code Editor |
| Description: |
Steps: |
| Code completion moves cursor to position before left ( of methods so that the user has to manually move behind it. |
1. new vcl forms app 2. add System.IO to any uses 3. double click form 4. type System.IO.Directory.<wait> 5. select getParent 6. press enter
exp: cursor right of ( act: left of ( |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| When installing Architect Trial the Wise Owl Demeanor checkbox is ON and disabled (making it appear that Wise Owl will and must be installed) |
Install the latest build using a trial key //act: Wise Owl Demeanor checkbox is ON and disabled //exp: Wise Owl Demeanor checkbox is OFF and disabled |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
| The Web Administration Tool does not recognize our provider |
1. Create a new ASP.NET application. 2. Drop a login control 3. Run the app. 4. Enter anything for username/password 5. Press Login button (database will be created). 6. Close application 7. In Project Manager, right click the project name and select ASP.NET Configuration 8. Select the Provider tab
exp: Our provider is listed along with the MS provider act: Only MS provider is listed |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Object Inspector |
| Description: |
Steps: |
ObjectInspector throws nullreference exceptions.
The problem is a timing issue between the obejctinspector and the design surface. when the collection editor is closed, the designsurface regains focus, and this will cause the designsurface to resync the OI. THis will dispose all the existing instances of InteropProperty. When the original property tries to apply the value from the property editor, it will find that the internal field "property" has been cleared.
Suggested fix (in propInspInterop.cs, line 1500)
DesignerTransaction trans = property.BeginTransaction(); try { Object oldValue = property.PropertyValue; Object newValue = property.UITypeEditor.EditValue(this, this, property.PropertyValue); if (newValue != oldValue) { property.PropertyValue = newValue; if (subProperties != null) subProperties.Clear(); CheckRefresh(); } } finally { if (trans != null) trans.Commit(); }
DesignerTransaction trans = property.BeginTransaction(); try { // keep a local copy of the actual property if the interopproperty // is disposed while the editor is open ObjectProperty tempProp = property; Object oldValue = tempProp.PropertyValue; Object newValue = tempProp.UITypeEditor.EditValue(this, this, oldValue); if (newValue != oldValue) { tempProp.PropertyValue = newValue; if (subProperties != null) subProperties.Clear(); CheckRefresh(); } } finally { if (trans != null) trans.Commit(); }
|
New Eco VCL application Open the diagram for Pacakge_1 in the ModelView Add two classes select class 1 in the OI, open the property editor for "Constraints" click OK (to close it) select class 2 in the OI, open the property editor for "Constraints" click OK (to close it)
exp: works just fine act: Nullreference exception NOTE: i got Object ref not set. stack trace in Comments. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
After Upgrade from D2007, IDE gets error on start-up with Rave, and IntraWeb.NET app cannot be compiled.
you need following software to see attached video:
http://download3.vmware.com/software/wkst/VMware-moviedecoder-6.0.0-45731.exe
//original report When upgrading from Delphi2007(Spacely) to Highalnder,
I got two error dialog at startup time, and any personalities are not loaded.
Once exit IDE, and restart, everything OK.
It looks like "as design" but too silly user experience.
//ttsuchiya, 1) base is RAD Studio 2007 (Spacely Update1+Cogswell) Ent RTM case, got same two error dialog at 1st time launching of IDE (did not launched IDE from Installer), 2) base is Cogswell Pro RTM case, got two same error dialog at 1st time launching of IDE (launched IDE from Installer) and seemed to loaded Architect personalities as far as saw Tool Palette but did not loaded Design personalities (checked with UML-2.0 sample and got error of no Design-Personality) although all is fine since 2nd time launching of IDE. |
- Delphi2007 (RTM) Install - Execute Highlander's setup.exe from Highlander's install directory - Enter Highalnder's Architect serial
After complete installing, execute IDE.
- Two AV dialogs are show up.
|
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
| Webservice applications cannot be created using the Eco Project Wizard. The files being generated contain placeholders that need to be replaced and the IDE does not pick up the pas files. |
1. Start HL 2. File / New / Other... 3. select tab ECO / New project 4. select Webform app, check Webservice 5. select no model at all 6. select dbx persistence 7. click ok
exp: project can compile and is set up properly act: Webservice1.asmx is missing the pas file in the ide. if you browse the file you find parts like this that contain placeholders.
uses System.Collections, System.ComponentModel, System.Data, System.Diagnostics, System.Web, System.Web.Services, Eco.ObjectRepresentation, Eco.Handles, EcoSpaceUnit, <NONE>;
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Use DbxDataSource in ASP do not work.
Failed to find path location for assembly 'Borland.Data.AdoDbxClient'
Please see attached screenshot.
Update: 1) when user select "DBXDataSource" or "EcoDatasource", project should automatically add corresponding referenced assembly, fail to do so will cuase project has problem.
2) First time after IDE start try the step will work, assembly is added without problem, test case only exist in second and thereafter. |
1. File | New | ASP Application 2. drop a gridView 3. select "New DataSource" 4. select "DbxDatabase" 5. in Configure Data Source dialog, click dropdown list, select a EmployeeClientServer 6. Next, Next, select Address table, click Next, click Finish // GridView show: There was an error rendering the control. Failed to find path location for assembly 'Borland.Data.AdoDbxClient'
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
System.OverflowException: {"Value was either too large or too small for an Int32."}
When requesting metadata for columns where the precision is larger than Int32.MaxValue |
Run:
TDBXBugsSuite.Native.exe connection=mysqlconnection -s:oTestRaid_255241 or TDBXBugsSuite.Managed.exe connection=mysqlconnection -s:oTestRaid_255241 |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
BlackfishSQL.slip file is not delivered into the $(BDSCOMMONDIR)\license directory.
This keeps the local driver from finding the license. This is also the documented directory. |
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
When upgrading from Spaely/Cogswell, Some registry entries still use old value.
For example.
HKEY_CURRENT_USER\Software\Borland\BDS\5.0\AssemblyFolders\BorlandComponents
Under Spacely/Cogswell, this vaule is
@="C:\\Program Files\\Common Files\\Borland Shared\\BDS\\Shared Assemblies\\5.0\\"
For Highlander, it should be
@="C:\\Program Files\\Common Files\\Codegear Shared\\BDS\\Shared Assemblies\\5.0\\"
[See 255182] |
See 255182 |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Exception occurs after name edit name in diagram and then change focus to the Object Inspector
Bug is unstable. I have reproduced two times. |
approximate steps:
1. Add Namespace or Class-> focus is set to inplace editor 2. Change focus to the Object Inspector
Exception occurs
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text ************** System.NullReferenceException: Object reference not set to an instance of an object. at Borland.Together.Diagram.Core.InplaceEditorManager.b() at Borland.Together.Diagram.Core.InplaceEditorManager.b(IInplaceEditor ) at Borland.Together.DrawingSurface.InplaceEditor.TextFieldInplaceEditor.c() at Borland.Together.DrawingSurface.InplaceEditor.TextFieldInplaceEditor.b(Object , EventArgs ) at System.Windows.Forms.Control.OnLostFocus(EventArgs e) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.TextBoxBase.WndProc(Message& m) at System.Windows.Forms.TextBox.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
|
51598
| QC# |
Project |
Area |
| 51598 |
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
[QC Short Description] Connection added to wrong node
[QC Description] When using the Data Explorer (integrated in the Project Manager), I get new connections in wrong places.
Steps to reproduce:
1. Start Highlander 2. Click on the Data Explorer tab 3. Right-click on the INTERBASE node, select "Add New Connection" 4. In the dialog, select MSSQL as Provider Name (this is the problem) 5. specify a name, like "This should be an MS SQL connection" 6. Click OK.
The new connection is now a subnode of the INTERBASE node, and not of the MSSQL node.
It seems like the choice for "Provider Name" in the Add New Connection dialog is ignored.
BTW, wasn't that term (Provider) part of the deprecated BDP, and shouldn't we now see a term like "Driver Name" instead? This may be related to the fact that the choice for Provider Name is ignored... QC Entry 51598 [Nov Update]
|
Steps to reproduce:
1. Start Highlander
2. Click on the Data Explorer tab
3. Right-click on the INTERBASE node, select "Add New Connection"
4. In the dialog, select MSSQL as Provider Name (this is the problem)
5. specify a name, like "This should be an MS SQL connection"
6. Click OK.
The new connection is now a subnode of the INTERBASE node, and not of the MSSQL node.
It seems like the choice for "Provider Name" in the Add New Connection dialog is ignored.
BTW, wasn't that term (Provider) part of the deprecated BDP, and shouldn't we now see a term like "Driver Name" instead? This may be related to the fact that the choice for Provider Name is ignored... |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
typo in IDE message "Database create suceeded"
[Nov Update] |
1.Click Database Explorer tab 2 <Rclick ADO.NET BlackFish node>Add New Connection //enter with any name i.e BFConn 3 <Rclick BFConn> Modify Connection 4 Set UserName=sysdba, Password=masterkey and Database:c:\temp\mytest99 5 Click 'Test Connection' button 6 It will prompt to create database. Click OK "Database create suceeded" |
51660
| QC# |
Project |
Area |
| 51660 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Compiler F2084 Internal Error: T776 when compiling a unit defining a class or record involving a generic type.
[QC Description] Code in Steps produces Internal Error in compiler.
If you move the definition of TResult into the main program, it compiles OK.
Using latest version of DCCIL stuff. QC Entry 51660
|
program IntErr;
{$APPTYPE CONSOLE}
uses
System.Collections.Generic,
u2IntErr in 'u2IntErr.pas';
type
TMyClass = class
public
function Load: TResult;
end;
var
MyCats: TResult;
MyClass: TMyClass;
function TMyClass.Load: TResult;
var
Cats: List<String>;
begin
Cats := List<String>.Create;
Result.Cats := Cats;
end;
begin
MyClass := TMyClass.Create;
MyCats := MyClass.Load;
end.
==================================================================
unit u2IntErr;
interface
uses System.Collections.Generic;
type
TResult = record
Cats: List<String>;
end;
implementation
end. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Regression from recent build and BDS 2006
Missing Design Personality feature in Architect SKU, therefore it cause error when open UML-2.0 sample and also there's no Design Projects gallery.
Help file having topic of UML 2.0 sample project but cannot use it, too bad. |
- File | New, Other // act: No Design Projects gallery - File | Open Projects // open Modeling\UML-2.0 sample // act: error |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| The files version_cpp.txt and updates.ini should not be in the install directory. It should be deleted from the iso image. |
Open the ISO, look at the install directory for version_cpp.txt |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Launching the install.exe from the RAD Studio DVD raises 'unknown publisher' |
Insert DVD Run install.exe //note that it appears to not be digitally signed. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Update 3 - regression
SQLWindow layout changed after applying installing Highlander (using old keys). You will see a large grey area where you cant type anything and below you find a white area
Marking this one as WUpdate since we might also want to fix 255412.
Emeli: I was able to resize the grey area. After you get a grid to show you can resize the grid by moving it up making the grey area smaller. |
Install Highlander using Cogswell or Spacely keys Run Data Explorer //exp: check before.bmp attached //act: check afterupdate3.bmp attached
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Relate to 255282, 255298, 255248
I installed RAD Studio Pro SKU via network install and registered product. I descided to upgade it to RAD Studio Architect SKU so re-invoked Setup.exe and selected Upgrade option then entered Architect key and proceeded installation. There're so many problems. 1) In Feature list page, required disk space is shown in negative number (see Cap4.png). Results in 2)NO UPGRADE TO Architect SKU, Aboutbox/Spalsh screen still say Professional SKU and also NO ECO main menu (see Cap6.png), 3) click data Explore tab produced object reference is not set to instance error (see Cap7.png), re-click tab opend data Explore page but 4) NO(lost) Ado.NET conections (see Cap8.png). Attached step by step screen shots, see Cap1 through Cap8.png |
- install RAD Studio Pro SKU (3AKP-STADEA-GKB5BF-????) via network install (download Setup.exe from http://installers.codegear.com/release/radstudio/11.0.2804.9245/ into local drive and invoke Setup.exe) - start IDE and register product - Terminate IDE then reinvoke Setup.exe - select Upgrade option, enter Architect key (3ADN-DRD8EA-FFG5AG-????), proceed installation // Note: you'll see negative required disk space in feature list page - Launch IDE and examine properly upgraded to Architect SKU // Note: no Eco menu, still Professional SKU, missed Ado.NET Connctions in data Explore |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
It is impossible to compile Delphi project with included namespace
[dpr support]
[vi]Investigation note: This same happens of course in namespaces 2nd and more levels created in an ordinar namespace. After class adding to a namespace a pas file with 2 Unit1 is created, though unit statement contains only one Unit1. Then dpr file contains only reference to this incorrect named pas file. Workaround: rename pas file from Project Manager to remove extra Unit1. After it the code is compiled ok.
[Highlander Update] |
1. Create Delphi .NET Console Application and switch on Modelling support 2. In the ModelView create included namespace Namespace1 using Project## namespace node (node with icon "{}") 3. Add class to the Namespace1. 4. Try to compile sources - you will receive error:
1) In the text editor in the ProjectXX.dpr file you will see the line with duplicated Unit1! - this is error "uses ... Project##.Namespace1.Unit1.Unit1 in 'Project##.Namespace1.Unit1.Unit1.pas';" 2) After navigation to the compile error you will see Unit file with duplicated Unit1 part in the file name: Project##Namespace1.Unit1.Unit1 - this is error in filename But the source of this file contains single Unit1 - "unit Project##.Namespace1.Unit1;" - it is right
The namespace of 3rd level contains duplicated "Unit1" word too! |
51753
| QC# |
Project |
Area |
| 51753 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] DynamicBoxCentered CSS template </form> in </div>
[QC Description] In the DynamicBoxCentered template, the last four lines in MasterPage1.master are:
</form> </div> </body> </html>
The order of </form> and </div> should be swapped - </form> should be outside the last </div>.
Objrepos\DelphiDotNet\DynamicBoxCentered\MasterPage1.master needs a small fix. QC Entry 51753
|
I checked the .aspx contents of some generated CSS projects and found the following:
DynamicBoxCentered template:
The last four lines in MasterPage1.master are:
</form>
</div>
</body>
</html>
The order of </form> and </div> should be swapped - </form> should be outside the last </div>.
This is file Objrepos\DelphiDotNet\DynamicBoxCentered\MasterPage1.master that needs a small fix. |
51669
| QC# |
Project |
Area |
| 51669 |
Delphi.Net |
ECO\Persistence Layer\Evolution |
| Description: |
Steps: |
[QC Short Description] Cannot evolve model after changing persistence mapper for enumerated type attribute
[QC Description] I have changed an ECO model so that an attribute with an enumerated type now uses the GenericEnumAsInteger persistence mapper. When I attempt to evolve the DB, I get the following output in the ECO Messages tab :-
Eco.SqlMeta| Detecting changes Eco.SqlMeta| Initializing Script Eco.SqlMeta| Detecting type clashes... Eco.SqlMeta| Analyzing new tables... Eco.SqlMeta| Analyzing new columns... Eco.SqlMeta| Analyzing new instances... Eco.SqlMeta| Analyzing data movements... Eco.SqlMeta| Analyzing old instances... Eco.SqlMeta| Analyzing old columns... Eco.SqlMeta| Analyzing old tables... Eco.SqlMeta| Optimizing script... Eco.SqlMeta| Drop column INVOICE.STATUS Eco.SqlMeta| Add column INVOICE.STATUS Failed to detect changes: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list. at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) at System.String.Format(IFormatProvider provider, String format, Object[] args) at System.String.Format(String format, Object[] args) at Eco.Internal.TBoldDataBaseEvolutor.DetectMapperChange(ClassDefinition NewClassDef, ClassDefinition OldClassDef, StructuralFeatureDefinition NewMemberMapping, StructuralFeatureDefinition OldMemberMapping, Object Param) at Eco.Internal.TBoldDataBaseEvolutor.ForEachMemberMappingPair(TBoldMemberMappingPairAction Action, Boolean IgnoreInstances, Object Param) at Eco.Internal.TBoldDataBaseEvolutor.GenerateWarnings() at Eco.Windows.Forms.DBEvolutionForm.EvolveDB(IServiceProvider serviceProvider, IDBEvolutor evolutor, Boolean silent) QC Entry 51669
|
- Download the attachment and unzip
- Open ContractManager.groupproj
- Open the Project Manager window
- Expand the ContractManager.exe node
- Double-click on the EcoSpaceUnit.pas node
- Right-click on the EcoSpaceUnit design surface and select 'Evolve Schema' |
51619
| QC# |
Project |
Area |
| 51619 |
Delphi.Net |
ECO\Other |
| Description: |
Steps: |
[QC Short Description] Sorting the columns in quick prototype does not work
[QC Description] I opened a quick prototype with data in it (of a model I made). Then I sorted the table with a click on the column title. When I double clicked on the cell to bring up the autoform of the current row, it brought up the data for another row. The row that had been in that spot prior to sorting. This happened with both persistent columns and derived columns. QC Entry 51619
|
Make a model
Open in quick prototype
Select a table (add data if not already in there)
Click on the column title to sort
Double click on gray cell at left side of row to bring up auto form
If the rows rearranged during sort, the data borught up will not match the selected row. |
51541
| QC# |
Project |
Area |
| 51541 |
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description] Class Completion Fails with Generics on Right Side of = Sign
[QC Description] My experience has been that ANY < after the equal sign in a class definition will cause class completion to not work. And not just in the class you are trying to complete! You get the error message on the first < in your code (on the right hand side of an equal sign).
So, I have to code class definitions until they will compile with only missing externals, then go through all my class defininitions and comment out the generics on the right side of the equal sign (which causes Error Insight to complain about each of those lines), then do class completion of each of the classes (which now works because the < characters are now in comments), and finally go back and restore all the commented out generics on the right side of the equal sign! Now it will compile, and I just have to add the code in the body of each method. If you want to define ANOTHER class, you have to go back and comment out all the generics stuff on the right hand sides in order to do class completion on the new class.
I thought it might be "easier" to just type the procedure/function headers myself in the implementation section, but with generics, the class name before the method name can be a lot to type each time!
Am I missing something in using generics? Having to follow this procedure to use generics in the editor REALLY sucks... QC Entry 51541
|
program ClassCompl;
{$APPTYPE CONSOLE}
uses
System.Collections.Generic;
type
IntegerComparer = class(IComparer<Integer>)
public
function Compare(I1, I2: Integer): Integer;
end;
begin
end.
Load above into IDE. Try class completion on IntegerComparer class. See? |
50587
| QC# |
Project |
Area |
| 50587 |
Delphi.Net |
ECO\Presentation Layer |
| Description: |
Steps: |
[QC Short Description] Bound TDBLookupComboBox not showing list contents correctly
[QC Description] If a TExpressionHandle is bound to a TDBLookupComboBox, the contents of the dropdown list doesn't display until the dropped down list is clicked, if an item has already been selected. The list is dropped down, but is empty. QC Entry 50587
|
- Download LookupComboBind.zip and extract
- Open LookupComboBind.dproj
- Select 'Run|Run' from the main menu
- Click the button to the right of the Combobox to invoke the dropdown list
- Select 'Item 1' from the list
- Click the button to the right of the Combobox to invoke the dropdown list
Expected: The list will display all possible selection values
Actual: An empty list is shown
- Click the list. The list will now be populated, and a value can be selected. |
51842
| QC# |
Project |
Area |
| 51842 |
Delphi.Net |
ECO\Persistence Layer\Mapping |
| Description: |
Steps: |
[QC Short Description] InvalidCastException when attempting to persist class with enumeration
[QC Description] If I have a class that has an attribute with an enumeration as its type, and I've configured the enumeration to use the GenericEnumAsInteger persistence mapper, I get an InvalidCastException when I attempt to call save changes to a BlackfishSQL database. QC Entry 51842
|
- Download EnumTest.zip and unzip
- Open EnumTest.dproj
- Select Run|Run from the IDE main menu
- Click the 'Button1' button
Expected: A Foo instance with its Bar property set to BarEnum.Bar1 will be created and saved to the BlackfishSQL database
Actual: An InvalidCastException is thrown when EcoSpace.UpdateDatabase is called |
51844
| QC# |
Project |
Area |
| 51844 |
Delphi.Net |
Compiler\Linker |
| Description: |
Steps: |
[QC Short Description] Internal Error ILLK3387 aliasing System.Collections.Generic.Dictionary
[QC Description] I am attempting to alias System.Collections.Generic.Dictionary and am using this type alias to expose a public property in a class. When this property is consumed by another application or assembly, compilation fails with 'F2084 Internal Error: ILLK3387'. If the class resides in the same assembly as the consuming code, the internal error doesn't happen, and the project compiles without error. QC Entry 51844
|
- Download GenericTest.zip and unzip
- Open ProjectGroup1.groupproj
- Select 'Project|Build all projects' from the IDE main menu
Expected: The assembly and console application will compile without error
Actual: Compilation fails with 'F2084 Internal Error: ILLK3387'
- In the source for Project1.dpr, comment out the {$DEFINE IN_ASSEMBLY} line
- Select 'Project|Build all projects'. This time both projects will compile without error |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Try to use the Triggers
NewRow.IsModified()
causes a NullReferenceException |
NDataStore.DBX.JdsTest.Managed.exe -s:TestTrigger |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Please generate a name to unnamed constraints.
[Nov Update] |
In DataExplore create a blackfishSQL table and keep the primary key check mark.
Try ALTER => failure !! |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Triggers
Try accessing GetValue like GetInt32 on OldRow during an AFTER DELETE trigger.
=> exception |
NDataStore.DBX.JdsTest.Managed.exe -s:TestTrigger |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Editing template parameters in-place on a diagram or in IO constantly fails.
[Highlander Update] |
|
51839
| QC# |
Project |
Area |
| 51839 |
Delphi.Net |
IDE\Project Manager |
| Description: |
Steps: |
[QC Short Description] Cryptic error when opening a Delphi Win32 .dproj in Delphi .NET
[QC Description] If I open a Delphi Win32 .dproj with only Delphi .NET personality running, I get an error like this:
--------------------------- Error --------------------------- Unable to load project C:\Documents and Settings\Hallvard\My Documents\RAD Studio\Projects\EnumerationEnumerator\EnumerationEnumeratorDemo.dproj.
|
REGRESSION: BDS2006 gave an error message similar to the expected listed below.
- Run Delphi Win32 - File | New | Delphi for Win32 Console App - Save project - Exit Delphi - Run Delphi .NET (no other personalities loaded) - Open project saved above
exp: Message la: "This project requires the Delphi Win32 personality to be loaded" act:
--------------------------- Error --------------------------- Unable to load project C:\Documents and Settings\Hallvard\My Documents\RAD Studio\Projects\EnumerationEnumerator\EnumerationEnumeratorDemo.dproj. --------------------------- OK Details >> ---------------------------
[209DA602]{coreide100.bpl} ProjectFileUtils.MSBuildLoadProjectFile (Line 941, "ProjectFileUtils.pas" + 41) + $2C [209DA630]{coreide100.bpl} ProjectFileUtils.MSBuildLoadProjectFile (Line 944, "ProjectFileUtils.pas" + 44) + $10 [21688EFA]{delphicoreide100.bpl} BaseDelphiProject.TDelphiProjectFileModuleHandler.FileOpen (Line 3173, "BaseDelphiProject.pas" + 2) + $B [20A62636]{coreide100.bpl} DocModul.TFileOpenHandler.FileOpen (Line 3091,
---snip--- |
51841
| QC# |
Project |
Area |
| 51841 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Overloads with generics are position-dependent
[QC Description] If one overloaded has an addtional parameter to the other, the one without the additional parameter won't be found if it is declared after the one with the extra parameter. But if changed around, the other is said to have too many parameters.
IOW, only the first of the overloads is recognized. The other isn't.
This does not happen if the overloads are not generic.
See steps.
QC Entry 51841
|
* Start a new Delphi for .NET console application
* Change the code to make it look like this:
//----------------------------------------------------------------------------------------------------------------------
program BraindeadOverloads;
{$APPTYPE CONSOLE}
uses
System.Collections.Generic,
SysUtils;
type
Algos = class
class function MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer; overload; static;
class function MinElement<T>(List: IList<T>): Integer; overload; static;
end;
class function Algos.MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer;
begin
Result := -1;
end;
class function Algos.MinElement<T>(List: IList<T>): Integer;
begin
Result := -1;
end;
var
L: IList<Integer>;
C: IComparer<Integer>;
begin
try
Writeln(Algos.MinElement<Integer>(L)); // line 31
Writeln(Algos.MinElement<Integer>(L, C)); // line 32
Readln;
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
//----------------------------------------------------------------------------------------------------------------------
* Try to compile it:
exp: compiles
act: [DCC Error] BraindeadOverloads.dpr(31): E2250 There is no overloaded version of 'Algos.MinElement<System.Int32>' that can be called with these arguments
Now change the class declaration to look like this:
type
Algos = class
class function MinElement<T>(List: IList<T>): Integer; overload; static;
class function MinElement<T>(List: IList<T>; Comparer: IComparer<T>): Integer; overload; static;
end;
* Try to compile now
exp: compiles
act: [DCC Error] BraindeadOverloads.dpr(32): E2034 Too many actual parameters |
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\Other |
| Description: |
Steps: |
| ECO license dialog pops up when Windows Update patches Visual Studio or when Visual Studio is run. It is especially problematic if you have multiple user accounts on a machine as the dialog pops up without Windows being able to show it and you get reminders about the message not being shown constantly again and again. |
0. Install VS 2005 or any product that comes with parts of it, e.g. MS SQL Server 2005 1. Install HL
exp: any other product is not affected act: ECO license dialog pops up when VS-dependant product is being used
|
51954
| QC# |
Project |
Area |
| 51954 |
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
[QC Short Description] Attempting to use an assembly results in a Internal Error: ILIMP11518
[QC Description] I downloaded and built the source code from this url
http://www.codeplex.com/blogengine
If I then attempt to add a reference to one of the assemblies from this project to a Delphi package I get the following errors
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'BlogEngine.Core' not found
Note:
The assembly that is causing problems is in the lib directory of the attachment QC Entry 51954
|
1) Open the supplied example 2) Build
(JJS: On the command line, the following can be used.)
dccil blackfishblogprovider.dpk
expected:
project should compile without errors
actual:
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'BlogEngine.Core' not found
|
51963
| QC# |
Project |
Area |
| 51963 |
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
[QC Short Description] Attempting to reference ngenerics assembly in an application results in a catastrophic failure in the compiler
[QC Description] I downloaded a generics library from here
http://www.codeplex.com/NGenerics/Release/ProjectReleases.aspx?ReleaseId=2027
and I then added a reference to the assembly in a vcl.net application
Attempting to compile results in an error
[DCC Error] Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
note:
the library is included in the lib directory of the project QC Entry 51963
|
1) Open the supplied example 2) Compile
expected:
compile should be successful
actual:
dcc error occurrs
[DCC Error] Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
(JJS: A simpler test is also attached.)
Compile with the following command line.
dccil bts255366 -luNGenerics
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\Class Completion |
| Description: |
Steps: |
Doing a class completion with a Generic in the procedure results in an error of: --------------------------- Error --------------------------- Expected ')' but '<' found in class TForm1. --------------------------- OK Details >> |
+ Copy and paste the following code: ===================== TForm1 = class(TForm) private { Private declarations } public function StringFromWordArray(words: ReadOnlyCollection<RecognizedWordUnit>; &type : WordType) : string; procedure Problem(ASender : TObject; e: AudioSignalProblemOccurredEventArgs); end; ===================== + Press Ctrl+C to complete the class //exp: Class to be completed //act: --------------------------- Error --------------------------- Expected ')' but '<' found in class TForm1. --------------------------- OK Details >> ---------------------------
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
The following code will generate incorrect IL and crash the runtime.
|
Compile and run the attached application below.
See the following exception error at runtime.
Unhandled Exception: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at BTS255374.Units.BTS255374.BTS255374()
program BTS255374;
{$APPTYPE CONSOLE}
type
TArray<T> = array[] of T;
TArrayReverser = class private procedure Swap<T>(var A: T; var B: T); public function ReverseIt<T>(const A: TArray<T>): TArray<T>; end;
function TArrayReverser.ReverseIt<T>(const A: TArray<T>): TArray<T>; var I: Integer; begin Result := A; for I := 0 to (Length(Result) - 1) div 2 do Swap<T>(Result[I], Result[Length(Result) - 1 - I]); end;
procedure TArrayReverser.Swap<T>(var A: T; var B: T); var Temp: T; begin Temp := A; A := B; B := Temp; end;
var Reverser: TArrayReverser; IntArray: TArray<Integer>; I: Integer;
begin SetLength(IntArray, 10); for I := Low(IntArray) to High(IntArray) do IntArray[I] := I * 10;
Reverser := TArrayReverser.Create; IntArray := Reverser.ReverseIt<Integer>(IntArray);
for I := Low(IntArray) to High(IntArray) do Writeln('IntArray[', I, '] = ', IntArray[I]);
Readln; end.
|
52040
| QC# |
Project |
Area |
| 52040 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Internal Error T776 when defining two methods returning same generic type
[QC Description] The steps describe this best. If I change both result types to IList<T>, the internal error does not occur. QC Entry 52040
|
* Start a new Delphi for .NET console application * Add a new Delphi for .NET unit to it * Change the code of the unit to make it look like:
unit UListTools;
interface
uses System.Collections.Generic; type ListTools = class function ListFromArray<T>(A: array of T): List<T>; function ListWithCount<T>(Num: Integer): List<T>; end;
implementation
function ListTools.ListFromArray<T>(A: array of T): List<T>; begin Result := nil; end;
function ListTools.ListWithCount<T>(Num: Integer): List<T>; begin Result := nil; end;
end.
* Try to compile the project exp: compiles act: [DCC Error] UListTools.pas(24): F2084 Internal Error: T776
* Change the result type of the first method to IList<T> * Try to compile the project exp: same error act: compiles
Note: you can also change the result type of the second routine to IList<T>, as long as there is only one List<T> result type. Note: making the function body of the second method empty removes the problem.
|
52042
| QC# |
Project |
Area |
| 52042 |
Delphi.Net |
Compiler\Language\Classes |
| Description: |
Steps: |
[QC Short Description] In classes with generic methods, generic types are not recognized as returning the constrained type.
[QC Description] If, for instance, I declare a method with a a constraint <T: IComparable<T>> and have a parameter like List<T>, then the items of the List<T> are not recognized as items implementing IComparable<T>. Types declared direclty as T are recognized. QC Entry 52042
|
* Create a new Delphi for .NET console application
* Change the code of the .dpr to this:
program IndirectGenerics;
{$APPTYPE CONSOLE}
uses
System.Collections.Generic,
SysUtils;
type
TTest = class
procedure Confuse<T: IEquatable<T>>(list: IList<T>);
procedure Test<T: IComparable<T>>(list: IList<T>);
end;
procedure TTest.Confuse<T>(list: IList<T>);
begin
end;
procedure TTest.Test<T>(list: IList<T>);
begin
if list[0].CompareTo(list[1]) < 0 then
Exit;
end;
begin
end.
* Compile the code
exp: code compiles
act: [DCC Error] IndirectGenerics.dpr(21): E2003 Undeclared identifier: 'CompareTo'
* Change the code of TTest.Test<T> to:
procedure TTest.Test<T>(list: IList<T>);
var
item: T;
begin
item := list[0];
if item.CompareTo(list[1]) < 0 then
Exit;
end;
exp: same error, plus error at assignment of list[0] to item
act: compiles
Note that if procedure Confuse<T: IEquatable<T>> is removed, or if its type parameter is constrained as IComparable<T> instead of IEquatable<T>, the original version of Test<T> will compile.
|
52043
| QC# |
Project |
Area |
| 52043 |
Delphi.Net |
Compiler\Language\Parameterized Types |
| Description: |
Steps: |
[QC Short Description] Arrays are not recognized as implementing interfaces
[QC Description] Arrays are not recognized as implementing IEnumerable<T>, or IList<T>, when used as parameters:
type Algos = class class function MinElement<T>(list: IList<T>; comparer: IComparer<T>): Integer; end;
You can't simply pass an array of Integer to:
x := Algos.MinElement<Integer>(myIntegerArray);
You'll have to do:
x := Algos.MinElement<Integer>(myIntegerArray as IList<Integer>);
Similarly, this doesn't compile either:
lst := List<Integer>.Create(myIntegerArray);
You must do:
lst := List<Integer>.Create(myIntegerArray as IEnumerable<Integer>); QC Entry 52043
|
* Create a new Delphi for .NET console application
* Change its code to:
program ArraysAsInterfaces;
{$APPTYPE CONSOLE}
uses
System.Collections.Generic,
SysUtils;
type
Algos = class
class procedure First<T>(list: IList<T>); static;
end;
class procedure Algos.First<T>(list: IList<T>);
begin
end;
var
ints: List<Integer>;
arr: array[0..1] of Integer = (1, 2);
begin
ints := List<Integer>.Create(arr); // line 23
Algos.First<Integer>(arr); // line 24
end.
exp: compiles
act:
[DCC Error] ArraysAsInterfaces.dpr(23): E2250 There is no overloaded version of 'Create' that can be called with these arguments
[DCC Error] ArraysAsInterfaces.dpr(24): E2010 Incompatible types: 'IList<System.Int32>' and 'Array'
* Change the code in the main block to:
begin
ints := List<Integer>.Create(arr as IEnumerable<Integer>); // line 23
Algos.First<Integer>(arr as IList<Integer>); // line 24
end.
Now the errors are gone.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\Errors & Warnings |
| Description: |
Steps: |
ILLK3387 when compiling Delphi.NET project.
|
1. Extract all files (inclusive of Folder nam) in the attached zip to C:\cases\TimJarvis. 2. Open PluginGroup.groupproj. 3. Compile all projects.
ACT: [DCC Error] F2084 Internal Error: ILLK3387 EXP: Compiles successfully.
This is from Tim Jarvis, our evangelist in Australia.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Delphi .Net and Win32: Remove property "params" from properties. Now dialog "Add/Remove parameters for Operation" appears and then after some parameters adding and OK pressing only exception happens. No parameters are applied (ok).
[Highlander Update] |
Exception text:
[21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8 [20E0BD4A]{vclide100.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 579, "IDEListBtns.pas" + 8) + $11 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [201400D7]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7168, "Controls.pas" + 1) + $9 [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 [2004A426]{rtl100.bpl } Contnrs.TComponentList.GetItems (Line 380, "common\Contnrs.pas" + 1) + $4 [201625C8]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8103, "Forms.pas" + 21) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
| You cannot use Blackfish stored procedures from a TSQLDataset component. |
TDBXHighlanderBugsSuite.Managed.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446
-------------------------------
1. Create a connection to the sample EMPLOYEE database. 2. Create a new Delhpi for .Net package. 3. Add a unit, and in the unit, add the an empty class 4. Add the following code to the class as a stored procedure for Blackfish
class function TSprocDemo.GetSpecificEmployee(aConnection: DBConnection; aEMPNO: integer): DBDataReader; var TempCommand: DbCommand; TempParameter: DbParameter; begin TempCommand := aConnection.CreateCommand; TempCommand.CommandText := 'Select * From EMPLOYEE WHERE EMP_NO = ?';
TempParameter := TempCommand.CreateParameter; TempParameter.DbType := DbType.Int32; TempParameter.Direction := ParameterDirection.Input; TempParameter.Value := aEmpNO;
TempCommand.Parameters.Add(TempParameter); Result := TEmpCommand.ExecuteReader end;
5. Register it with the database.....
CREATE METHOD GetSpecificEmployee AS 'SprocDemo::uSprocDemo.TSprocDemo.GetSpecificEmployee'
(Adjust the assembly name and unit name as needed)
6. Open an SQL Window and run it with
CALL GETSPECIFICEMPLOYEE(2)
This should work.
7. Create new VCL applicaction. 8. Drop connection, hook up to the connection used above. 9. Drop a TSQLDataset 10. Set CommandType to StoredProcedure, and the CommandText to "GETSPECIFICEMPLOYEE" 11. Open params property, not that the parameters are correct. 12. Set the parameter value for AEMPNO to 2 13. Set Active to True.
EXP: The Sproc opens. ACT:
---------------------------
Error
---------------------------
Syntax Error: [line 1, col 18] SELECT expected, but <identifier> found.
---------------------------
OK Details >>
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\SCI |
| Description: |
Steps: |
Delphi .Net and Win32: It should be possible to add parameters to delegate/delegate as function via Object Inspector. Now only exception happens.
[Highlander Update] |
[21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8 [20E0BD4A]{vclide100.bpl} IDEListBtns.TListButton.WMLButtonUp (Line 579, "IDEListBtns.pas" + 8) + $11 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [201400D7]{vcl100.bpl } Controls.TWinControl.IsControlMouseMsg (Line 7168, "Controls.pas" + 1) + $9 [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 [20163641]{vcl100.bpl } Forms.TApplication.StopHintTimer (Line 8672, "Forms.pas" + 3) + $6 [201625C8]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8103, "Forms.pas" + 21) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
From Daniel Magin:
there is a bug in GET_INDEX_COLUMNS(string catalogPattern, string schemaPattern, string tablePattern, string indexPattern)
thee indexPattern Parameter did not work. only fyi |
Run the nunit test: NDataStore.JdsTestSuite_NDSCONNECTION.dll SqlBugs.bug255455
or in Java: SqlBugs.bug255455 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
DB2 - transactions
When committing a transaction or rolling back a transaction; the DB2 driver does not set the connection back to auto-commit mode. |
Testcase to be developed. (Steve B, could you...) |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Class Diagram |
| Description: |
Steps: |
Delphi .Net and Win32: Dont' lose design links on container namespace copy-paste. Now elements are kept, but links are lost. Note: copy/paste of only design diagram happens ok - links are kept.
[Highlander Update] |
1. create a namespace 2. within it create a design diagram (e.g. UseCase), add a couple of elements and a link between them 3. now copy the container namespace and paste it beside 4. open an UseCase diagram from pasted namespace - it contains only elements and there is no links. |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
| ASP designer does not handle Dynamic properties. the generated code from the codedom does not load and the webconfig file is corrupted |
* new D.Net WebServiceApplication * Drop a DataStoreConnection on designer (or any other connection component) * set connectionstring to "abc" * Make the connectionstring as a dynamic property * Switch to code * Switch to designer
exp: designer shows act: Designer broken
* save All
exp: connectionstring in webconfig along with the old data act: _ONLY_ connectionstring in webconfig |
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Designer |
| Description: |
Steps: |
ASP designer does not store integer values correctly in web.config when they are marked as dynamic properties.
This might be exactly the same as in Raid 255473, but this shows that not only strings have problems. |
* new D.Net WebServiceApplication * Drop SerialPort component on designer * set baudrate to 9999 * Make the baudrate a dynamic property * Switch to code * Switch to designer
exp: BaudRate = 9999 act: BaudRate = 9600
* change it back to 9999 * save All
exp: baudrate in webconfig along with the old data act: _ONLY_ baudrate in webconfig
* close Webservice * Open webservice
exp: Baudrate = 9999 (since it is now actually in the web.config) act: baudrate = 9600
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling |
| Description: |
Steps: |
Delphi .Net and Win32: Don't lose design elements and diagram on copy/paste a namespace with a classifer.
[Highlander Update] |
1. add in a namespace a class, a note, a constraint, an object, a design diagram (e.g. usecase) with some elements. 2. save all (it doesn't matter) 3. copy the namespace and paste it beside -> new namespace contains only the class and one of design elements (probably this doesn't have regularity - in one case a note was kept, in another an object). All other design elements and the design diagram are lost. But they should be kept. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
In dbxdrivers.ini, for Informix, VendorLib is set to isqlb09a.dll. It should be set to clidll.dll.
Correction, we switched the dbxdrivers.ini to use isqlt09a.dll ('b' replaced with a 't'). |
|
52503
| QC# |
Project |
Area |
| 52503 |
Delphi.Net |
IDE\HTML\ASP\Projects |
| Description: |
Steps: |
[QC Short Description] CRS destroys directory structure in asp.net application
[QC Description] When you try to add a custom control that is in a subdirectory, the entire directory structure gets destroyed and the project file becomes corrupted.
Same problem exists in Borland Studio 2006 too.
The same problem occurs with normal webpages. How in the heck are we to create a site with different authentication levels on different directories if the IDE keeps removing any and all form of directory structure... QC Entry 52503
|
1) Create a new New ASP.NET application.
2) Create a directory structure like this:
projectdir
|----- customctrls
| |--------- control1
| |--------- control2
Put some pre-created custom control's in control1 and control2 directories.
They can be empty, it's just the .ascx file and the .pas file that's really needed to show the problem.
3). In project manager rightclick the project, and select "add", then browse for the custom control in the subdirectory control1.
4). Notice now that the control is under the root directory of the project in project manager, the files have been moved and the entire structure is destroyed.
Repeat step 3 several times, and the project file is irreparable corrupted and CRS crashes.
Recommended Fix:
Rewrite the Add functionality so that it leaves the directory structure intact as is.
The rest of the IDE can handle things fine if the controls are in a subdirectory, because:
Workaround:
Manually edit the project files.
It's a hell of a job to find out, but it works fine once you know what to put where..
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
TDBXTimestampSequenceGenerator generates invalid DateTime values for MSSQL. You get:
‘SQL State: 22018, SQL Error Code: 0 Invalid character value for cast specification’ |
DataAccess.Managed.exe connection=mssqlconnection -s:oTestReadWriteAll |
52536
| QC# |
Project |
Area |
| 52536 |
Delphi.Net |
IDE\HTML\ASP\Deployment |
| Description: |
Steps: |
[QC Short Description] The list of external files for a deployment is outdated
[QC Description] The list of external files needs to be updated to take into account that the bdp was depreciated QC Entry 52536
|
1) Create a new asp.net web application
2) Rich click on the deployment node in the project manager and select "new asp.net deployment"
3) When the deployment window appears, right click left hand listbox and select "external files"
Expected
I think the list should include the CodeGear asp.net provider files and newer dbx ones
ie Borland.Web.Provider, Borland.VclRtl and the dbx ones
I don't think the bdp files should be listed since they are depreciated
actual:
It seems to list bdp files |
52581
| QC# |
Project |
Area |
| 52581 |
Delphi.Net |
Database\Data Explorer\Integrated |
| Description: |
Steps: |
[QC Short Description] Data entered into a BlackfishSQL table via Data Explorer is not persisted
[QC Description] If the integrated Data Explorer is used to enter data into a BlackfishSQL table, the data is not persisted, and all changes are lost. QC Entry 52581
[Nov Update] |
- Switch to Data Explorer - Expand the 'Ado.Net' node - Right-click on the 'BlackfishSQL Remote Provider' node and select 'Add New Connection' - Enter 'DataTest' in the 'Connection Name' field - Right-click on the 'DataTest' node and select 'Modify Connection' - Enter 'sysdba' in the 'User Name' field, 'masterkey' in the 'Password' field, and 'D:\Data\DataTest.jds' in the 'Database' field - Click the 'Advanced...' button - Under the 'Logging' category, set the 'Connect' property to 'True', and click the 'OK' button - Click the 'Test Connection' button - Click 'Yes' when prompted to create the database - Click the 'OK' button to confirm database creation - Click the 'OK' button to close the 'Add Connection' dialog - Expand the 'DataTest' node in Data Explorer - Right-click on the 'Tables' node and select 'New Table' - Enter 'Field1' in the 'Name' column - Right-click on the 'Table Design:DataTest' tab and select 'Close Page' - Enter 'DataTable' as the table name and click the 'OK' button - Expand the 'Tables' node - Double-click on the 'DATATABLE' node in Data Explorer - Enter '1' in the 'FIELD1' column and press the down arrow - Enter '2' in the 'FIELD1' column and press the down arrow - Right-click on the 'Ado.Net:DataTest: DATATABLE' tab and select 'Close Page'
Expected: Prompt to save changes. Actual: Closes without saving.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
| Don't install ECO for VisualStudio integration in BDS installation |
1. I have installed VisualStudio 2005 with Together for VS 2006. 2. I have installed Highlander - release HighlanderFT_ARCH_v11.0.2804.9245.4 3. Now when I create any Together for VisualStudio project I am prompted to enter license number for ECO - this is the bug. BDS installation should not install plugin for VisualStudio 4. When I uninstall ECO - all Together for VS functionality will be disabled - this is the bug too. Only when I reinstall Togethger for VS - Together functionality will be restored
In the "ECO_setup.msi" the feature ECO\ideinteg\VSInteg doesn't use any condition and have Install Level=1. - remove this feature at all - or change Install Level to 200 - or add any condition for this feature |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| Borland.VclDbExpress.dll needs to be installed with a Win32 only install of Highlander. Raid 255414 covers Spacely + Update 3. |
1. File|New|VCL Forms Application - Delphi for Win32 2. Drag drop any table from Data Explorer to the form
Exp. Components added, no error Act. System.IO.FileNotFoundException: Could not load file or assembly 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' or one of its dependencies. The system cannot find the file specified. File name: 'Borland.VclDbExpress, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b' at Borland.Data.Explorer.DataExplorerIDEImpl.CreateDBXConnection(TreeNode aNode) at Borland.Data.Explorer.DataExplorerIDEImpl.DragDrop(Object Sender, ItemDragEventArgs Event) at Borland.Data.Explorer.DataExplorerControl.a(Object , ItemDragEventArgs ) at System.Windows.Forms.TreeView.OnItemDrag(ItemDragEventArgs e) |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
| dbExpress does not throw an exception if an unspported data type is specified for a parameter. |
TDBXHighlanderBugsSuite.Managed.exe connection=blackfishsqlconnection -s:TestRaid_255570 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
Blackfish SQL remote ADO.Net connection to JDataStore database fails when trying to get meta data or executing a SQL Statement.
Errors are get Read -1 Needed 10 Error and No Product name for Data Provider. No meta data can be provided |
1. Select Data Explorer in Rad Studio 2. Add new connection under ADO.Net | Blackfish SQL Remote Provider 3. Host=ngyrn-nt.inprise.com (or some other server running JDS Server) 4. Path=c:\jdatastore7\samples\jdatastore\datastores\employee.jds (or some other legal path) 5. user=sysdba 6. Password=masterkey 7. click OK. 8. Open Tables node, get Read -1 Needed 10 Error 9. Open SQL Windows, get No Product name for Data Provider. No meta data can be provided 10. Enter a SQL statement in the SQL Window, get error: Network error: Read -1 Needed 10 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress\TSQLStoredProc |
| Description: |
Steps: |
Seems to be problems with parameter metadata for stored procs that return readers. SqlExpr GetParameterType seems to expect 'RESULT' value to indicate a return value. Metadata for BlackfishSQL and maybe others returns 'RETURN'. I changed the code to treat both the same.
Seems like user must set the data type for this parameter to ftCursor to allow readers to be loaded into the dataset. Would be nice if apps did not have to set the datatype for a return parameter. |
Reuse this test case:
TDBXHighlanderBugsSuite.Managed.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446 |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
For ASA, unable to insert a Boolean value of True. Inserting False works correctly. Error is:
[Sybase][ODBC Driver][Adaptive Server Anywhere]Value -1 out of range for destination. Error code = -158, SQL state = 22003 |
DataAccess.Managed.exe connection=asaconnection -s:oTestReadWriteAll |
52669
| QC# |
Project |
Area |
| 52669 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] If a web application is deployed and the provider assembly is not present an error is raised attempting to initialize SqlClient
[QC Description] If a web application is deployed and the application is configured to use Borland.Data.BlackfishSQL.RemoteClient.dll as the provider, if that assembly is not present SqlClient appears to be initialized QC Entry 52669
|
To reproduce this easily, just follow step #1 and then remove Borland.Data.BlackfishSQL.RemoteClient from the GAC before running the application.
1) Create a new asp.net web application and build it 2) Using the asp.net deployment feature, deploy the application to a machine that has never had Delphi installed on it
i.e I installed on my web hosting provider
3) Also deploy
Borland.Delphi.dll Borland.VclRtl.dll Borland.Web.Provider.dll to the bin directory
4) Run the application
actual:
Server Error in '/' Application. Configuration Error Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: An error occurred while attempting to initialize a System.Data.SqlClient.SqlConnection object. The value that was provided for the connection string may be wrong, or it may contain an invalid syntax. Parameter name: ConnectionString
Source Error:
Line 172: <remove name="AspNetAdoRoleProvider"/> Line 173: <add name="AspNetAdoRoleProvider" Line 174: type="Borland.Web.Security.AdoRoleProvider, Borland.Web.Provider, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b" Line 175: connectionStringName="BlackfishSQLAspNet" Line 176: applicationName="/"/>
expected:
An exception should be raised that the provider Borland.Data.BlackfishSQL.RemoteClient.dll cannot be found, rather than trying to start to use System.Data.SqlClient
|
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Inspector |
| Description: |
Steps: |
Delphi .Net and Win32: Inspector: it should be possible to add a parameter with array type via "Add/Remove Parameters for Operation" dialog. Now a parameter of default type is created and there is an exception.
[Highlander Update] |
* create new Delphi Win32 app, * save all somewhere, * click Model View tab, enable modeling, * right-click project node in Model Tree, choose Add|Namespace, * right-click the newly created namespace node, choose Add|Class, * right-click the newly created class node, choose Add|Procedure, * select the procedure, select Params in OI, click ellipsis.
Try to add a parameter with type array[1..5] of Integer or array of TObject
Exception: [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [2000A455]{rtl100.bpl } System.@CheckAutoResult (Line 18047, "sys\system.pas" + 6) + $0 [21E2C06F]{dotnetcoreide100.bpl} DotNetPropInsp.TDotNetProperty.Edit (Line 891, "DotNetPropInsp.pas" + 1) + $39 [20AB53C8]{coreide100.bpl} PropInsp.TPropertyInspector.PropListEditDblClick (Line 855, "PropInsp.pas" + 18) + $1C [20E0ED7D]{vclide100.bpl} IDEInspListBox.TInspListBox.DoEditDblClick (Line 967, "ideinsplistbox.pas" + 2) + $A [20E10B3B]{vclide100.bpl} IDEInspListBox.TInspListBox.ListButtonClick (Line 1660, "ideinsplistbox.pas" + 2) + $2 [2013C9F8]{vcl100.bpl } Controls.TControl.Click (Line 5229, "Controls.pas" + 9) + $8
|
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
Help Update
When invoking F1 for components under VCL .NET we get the same Topic Found with same 3 titles : Components and Containers, Component Members and Component Class
|
Emeli note: as per Chris White this fix is not in Update1.
drop sqlconnection or tmainmenu to a VCL.NET select component and <F1>
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update - UNINSTALL
<Back button> on second dialog (Ready to Install -Setup is ready to start uninstalling rad..) does nothing and uninsatll hangs...clicking Next do nothing after this and Cancel doesnt work either.
|
tested with \\ussvs-file02\RND\Delphi\latest\help\Releases\HelpUpdate1.5
|
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update
If you remove HelpUpdate and you click Check Update again you will get a message saying there is no Update available,
Uninstall is failing to delete information about Update. |
install help Update Remove help from Add/Remove Programs Run check Updates //exp: install udpate again //act: no Updates available |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
| TDBXReader.Value[I].GetValueSize returns -1 when reading back VarBytes values. |
TDBXHighlanderBugsSuite.Managed.exe connection=mssqlconnection -s:oTestRaid_255618 |
51621
| QC# |
Project |
Area |
| 51621 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] Parameter Type Error when using VB.net ByRef events
[QC Description] Case: VB.net Components with events that have ByRef parameters.
When the event is double clicked, the ide generates the procedure with Out parameters instead of Var . The compiler then complains that there is a mismatch. To make the app compile, the procedure parameters need to be changed to var .
This would not be a big deal to fix in the code but since it is in the designer generated area, changes get overwritten as we work with other controls. Also, the object inspector does not show these events. QC Entry 51621
|
See sample VBControl with an event "onCustomTextChange" that has ByRef parameters. Install this .net component from the ide. Then create a new asp.net application. Insert the component to the Default.aspx. Then from the events tab of the object inspector, dbl click on the "onCustomTextChange" event. This should generate the erroneous procedure. definition.
See attached vb.net sample asp.net control VS2005 project and the Highlander project using the control.
A few notes from Nick Hodges:
The attached project has a compiled version of the resulting assembly in the
\VBControl\bin\release
directory. You can simply install that assembly, which will install the VBLabelControl. Dropping the control and then creating an event handler for onCustomTextChange event shows the bad parameters.
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
DBXClient
If a stored procedure is a function with 1 parameter, DbxClient complains when the parameter value is set about that paramneter 0 was not set. [However it should not be set since iit is a return value.] |
TDBXHighlanderBugsSuite.Native.exe connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255446
Note: Uncomment the section that calls the stored procedures FUNCC and FUNCD
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpressCore |
| Description: |
Steps: |
For Blackfish, GetVendorProperty('DriverDataTypes') is returning types that are not supported by the driver:
TDBXDataTypesEx.SingleType TDBXDataTypesEx.Int8Type
|
DataAccess.Managed.exe connection=blackfishsqlconnection -s:SampleTestDriverDataTypes |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
| Unable to create a primary key when using the metadata natively. Getting a 'Could not convert variant of type (Null) into type (OleStr)' when trying to make the create index sql. |
DataAccess.Native.exe connection=mssqlconnection -s:TestReadWriteAll |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
After installing the update, BORLAND.VCL.SAMPLES.DLL cannot be loaded by the IDE
// Francois Piette I see it also in the french localized version.
|
-Install Highlander and run IDE, note it runs fine -Install Nov Update and run IDE //res: Error Loading IDE Assembly or Package Failed to load $(BDS)\BIN\BORLAND.VCL.SAMPLES.DLL. Borland.Vcl.Design.EInstalledPackageError: Could not load the assembly |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
November 2007 Update Updated files time stamp is same to RTM's one, 2007-08-27 3:03 although its version information is 11.0.2830.9463.
Attached screen shots. |
- Update Highlander RTM via November 2007 Update Setup.exe then examine installed files
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\DBExpress |
| Description: |
Steps: |
From QC 52672
AdoDbxClient has trouble with certain GetSchema calls. |
Run TestAdo.exe connection=ibconnection -s:TestRaid255674
The following code fails (at least in the RTM version of RadStudio):
string[] restrictions = new string[4]; restrictions[0] = ""; // CatalogName restrictions[1] = ""; // SchemaName restrictions[2] = "abc"; // TableName restrictions[3] = TDBXMetaDataTableTypes.Table; // TableType
DataTable schema = Connection.GetSchema(TDBXMetaDataCollectionName.Tables , restrictions);
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
If DelimIdent=True is set for a connection such as Informix connection, MetaDataProvider.CreateTable will quote the column names. However, DataGenerator.CreateParameterizedInsertStatement does not quote the column names in the insert statement it creates. This causes the insert to fail when executed.
I think TDBXCustomDataGenerator.ColumnNameString might need a call to MetaDataProvider.QuoteIdentifierIfNeeded |
DataAccess.Managed.exe connection=informixconnection -s:oTestReadWriteAll
Note that you may have to modify dbxconnections.ini and add DelimIdent=True to see the error |
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
Help - VCL .NET (split from 255545) Pressing F1 on Object Inspector property results in no help coming up.
|
//try vcl.net as well + install latest help build on top of highlander RTM + Bring up the IDE + Click File | new | VCL Forms Application - Delphi Net + Drop a component on the form designer + Click on any property of the Object Inspector + Press F1 //exp: help for that property will come up //act: nothing happens - no help comes up. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\dbExpress Metadata |
| Description: |
Steps: |
AdoDbxClient has trouble with certain GetSchema call with Informix. A "Failed to enable constaints" error message is raised. |
Run TestAdo.exe connection=informixconnection -s:TestRaid255674
|
| QC# |
Project |
Area |
|
Delphi.Net |
Compiler\CLR Import |
| Description: |
Steps: |
| dccil fails to consume the attached assembly resulting in an ILIMP11518 error |
Unzip the attached project or 1) Create a new VCL.NET Forms application and grab the two assemblies from the zip file and save in the same location 2) Add a reference to the assembly SD.LLBLGen.Pro.DQE.Access.NET20.dll
3) Build project
exp: correct dcpil from the assembly reference
act: these errors:
[DCC Error] F2084 Internal Error: ILIMP11518 [DCC Error] E2202 Required package 'SD.LLBLGen.Pro.DQE.Access.NET20' not found
|
53187
| QC# |
Project |
Area |
| 53187 |
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
[QC Short Description] Password retreival using the PasswordRecovery control fails when the Membership provider is configured with requiresQuestionAndAnswer=false
[QC Description] When requiresQuestionAndAnswer is set to false and a user is created without a question and answer, password retrieval fails when using the PasswordRecovery control QC Entry 53187
|
1) Open the supplied example application
2) Run the application
3) Click on the "Forgot password" link
4) Enter the username mosh and click submit
Expected:
application should attempt to email password has been changed email to user
actual:
An error is displayed
Unknown parameter name: @PasswordAnswer
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: Borland.Data.DataStore.SQLException: Unknown parameter name: @PasswordAnswer
Source Error:
Note:
In the membership section of web.config I have set requiresQuestionAndAnswer to false.
If I set this to true and I repeat the above with the mosh2 user, the application gets to the Identity confirmation page. The answer is "neo"
The application then attempts to send the email .
mosh was created without requiring a question and answer, whereas mosh2 was created with a QuestionAndAnswer
|
53217
| QC# |
Project |
Area |
| 53217 |
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
[QC Short Description] "meta:resourcekey" attribute...designtime/runtime issues
[QC Description] I manually added the "meta:resourcekey" attribute (for implicit localization... as is done in VS w/ "Generate Local Resouces") to my page and all the controls in my "Default.aspx" file. I also added a "Default.aspx.resx" file to my "App_LocalResources" folder and defined the appropriate entries for a translated button caption. Under the debugger I ran "Default.aspx" and had to click on continue to the System.ArgumentException, "culture name 'aspx' is not supported.". After clicking on the "Continue" button 6 times for this same exception message, it finally got past it and IT WORKED!
In the Delphi IDE, however I can't open the design surface. As long as the "meta:resourcekey" is a part of my page directive, I can ONLY open the aspx markup. I don't get a "Design" or a tab to edit the .pas. If I remove the "meta:resourcekey" attribute from my page directive, I can open the design surface, but every control with the "meta:resourcekey" attribute has an error message "Error Creating Control - xxx, Object reference not set to an instance of an object".
So the use of the "meta:resourcekey" in Delphi makes the runtime experience w/ all the debug messages annoying. And it makes the designtime experience virtually impossible. QC Entry 53217
|
1. Add the "meta:resourcekey" attribute to any control in an aspx file.
2. Close the aspx file and try to open it in design mode.
3. Add the "meta:resourcekey" attribute to the page directive in an aspx file.
4. Close the aspx file and try to open it in design mode.
5. Try to run the web application w/ those attributes.
Note:
See demo in attachments:
Open the designer for Default.aspx for an example of controls not rendering
Adding meta:resourceKey="Button1 to the markup and switching to the designer results in "error creating control - object reference not set to an instance of an object"
if you attempt to open webform1.aspx the designer tab is not displayed, this is because of the meta:resourcekey="PageResource1"attribute on the page tag
|
21440
| QC# |
Project |
Area |
| 21440 |
Delphi.Net |
IDE\HTML\ASP\Debugging |
| Description: |
Steps: |
[QC Short Description] Multiple exceptions from debugger if Cassini isn't closed
[QC Description] When running an ASP.NET project under Cassini, the IDE doesn't close Cassini when the program terminates. If the program is then modified and run, the debugger throws multiple exceptions of type System.UnauthorizedAccessException, one for each assembly used by the project.
Clicking the "Continue" button for each of the notifications will let the project run correctly. However, many such clicks are required and the user has no way of knowing whether there is a real problem.
See "Steps" and "Workaround" for more information. QC Entry 21440
|
1. Open an ASP.NET project and set to to use Cassini as the web server.
2. In the "ASP.NET" area of the Project Options dialog, make sure Cassini is set to run when the project starts (not opened).
3. Run the project.
4. Close the browser window to terminate the program. Notice that Cassini is still running.
5. Modify the project (add or change a line of code).
6. Press the Run button to compile run the project. Do NOT compile the project independently without running it.
The debugger breaks with the following exception (the assembly name will change):
Debugger Exception Notification
---------------------------
Project CassiniWebServer.exe raised exception class System.UnauthorizedAccessException with message 'Access to the path "wcieat89.dll" is denied.'.
A similar exception is raised for every assembly used by the project.
This error doesn't reproduce 100% of the time, but still happens quite often. |
52834
| QC# |
Project |
Area |
| 52834 |
Delphi.Net |
IDE\Object Repository |
| Description: |
Steps: |
[QC Short Description] Object Repository does not work for VCL for .Net Forms
[QC Description] Trying to inherit from a VCL for .Net form added to the repository always ends in a "Abstract Error" with the callstack below. This also does not work in BDS 2006.
[20017D9A]{rtl100.bpl } SysUtils.AbstractErrorHandler (Line 14112, "sys\sysutils.pas" + 0) + $12 [20004759]{rtl100.bpl } System.@AbstractError (Line 4231, "sys\system.pas" + 2) + $0 [20A3FD22]{coreide100.bpl} GalleryTypes.TGalleryItem.DoSelect (Line 146, "GalleryTypes.pas" + 5) + $6 [2164EE19]{delphicoreide100.bpl} DelphiGalleryItems.TInheritTemplate.CreateNewInheritedModule (Line 422, "DelphiGalleryItems.pas" + 5) + $5 [2164F531]{delphicoreide100.bpl} DelphiGalleryItems.TInheritTemplate.Selected (Line 595, "DelphiGalleryItems.pas" + 133) + $17 [20A3FD22]{coreide100.bpl} GalleryTypes.TGalleryItem.DoSelect (Line 146, "GalleryTypes.pas" + 5) + $6 [20973480]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 182, "GalBrow.pas" + 22) + $4 [209734D3]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 185, "GalBrow.pas" + 25) + $2C [2097339E]{coreide100.bpl} GalBrow.BrowseNewDialog (Line 152, "GalBrow.pas" + 0) + $6 [20977BEC]{coreide100.bpl} Gallery.FileNewDialog (Line 685, "Gallery.pas" + 0) + $0 [00414CD3]{bds.exe } AppMain.TAppBuilder.FileNewInheritedForm (Line 2361, "ui\AppMain.pas" + 2) + $10 [20040113]{rtl100.bpl } Classes.TBasicAction.Execute (Line 11081, "common\Classes.pas" + 3) + $7 [20151321]{vcl100.bpl } ActnList.TContainedAction.Execute (Line 388, "ActnList.pas" + 1) + $2C [20152084]{vcl100.bpl } ActnList.TCustomAction.Execute (Line 1000, "ActnList.pas" + 7) + $8 [2003FFDF]{rtl100.bpl } Classes.TBasicActionLink.Execute (Line 11010, "common\Classes.pas" + 2) + $7 [21328D19]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.ExecAction (Line 976, "ActnMenus.pas" + 6) + $D [2132A04F]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.TrackMenu (Line 1542, "ActnMenus.pas" + 15) + $15 [2132A07F]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.TrackMenu (Line 1547, "ActnMenus.pas" + 20) + $10 [2132D470]{vclactnband100.bpl} ActnMenus.TCustomActionMainMenuBar.TrackMenu (Line 3146, "ActnMenus.pas" + 3) + $3 [213288E5]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.CMItemClicked (Line 878, "ActnMenus.pas" + 3) + $4 [2013C4F3]{vcl100.bpl } Controls.TControl.WndProc (Line 5146, "Controls.pas" + 83) + $6 [2013FE92]{vcl100.bpl } Controls.GetControlAtPos (Line 7095, "Controls.pas" + 4) + $73 [20140574]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7274, "Controls.pas" + 81) + $1D [20140673]{vcl100.bpl } Controls.TWinControl.WndProc (Line 7304, "Controls.pas" + 111) + $6 [2132A13E]{vclactnband100.bpl} ActnMenus.TCustomActionMenuBar.WndProc (Line 1575, "ActnMenus.pas" + 23) + $4 [2013FD9C]{vcl100.bpl } Controls.TWinControl.MainWndProc (Line 7073, "Controls.pas" + 3) + $6 [20040DD4]{rtl100.bpl } Classes.StdWndProc (Line 11583, "common\Classes.pas" + 8) + $0 (00003FA9){DelphiSpeedUp105.dll} [01D34FA9] [201625D0]{vcl100.bpl } Forms.TApplication.ProcessMessage (Line 8105, "Forms.pas" + 23) + $1 [2016260A]{vcl100.bpl } Forms.TApplication.HandleMessage (Line 8124, "Forms.pas" + 1) + $4 [201628FF]{vcl100.bpl } Forms.TApplication.Run (Line 8223, "Forms.pas" + 20) + $3 [00422976]{bds.exe } bds.bds (Line 195, "" + 7) + $7 QC Entry 52834
|
* Start a new VCL for .Net project
* Add some components to the form and save the project
* Right click on the form and add it to the repository
* Start a new VCL for .Net project
* Open the repository, select the form just added to the repository, choose inherit and click ok
* See the Abstract Error |
| QC# |
Project |
Area |
|
Delphi.Net |
Debugger |
| Description: |
Steps: |
| rmtdbg105.exe hangs when reading the symbols for Eco.Core.dll |
Run | Load Process on the attached Project27.exe (the source is also included in the attachment) Run it and click the button. The button will do an "Assembly.LoadFrom" on Eco.Core.dll The IDE hangs. If you look in task manager, rmtsbg105.exe is using 100% CPU
If you delete Eco.Core.pdb and repeat the steps, no hang is seen |
53491
| QC# |
Project |
Area |
| 53491 |
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
[QC Short Description] Evaluation of HUGE string crashes debugger+IDE
[QC Description] When the debugger tries to evaluate a huge tring (~1 million chars) - bds.exe crashes and dies with the following message:
bds.exe - bordbk105.dll --------------------------- Debugger Assertion Failure: "" in pcntrlsrv.cpp at line -1073741819 Continue execution? QC Entry 53491
|
Make sure to add System.Text to uses
---BO SNIP--- var LBuffy: StringBuilder; S: string; begin LBuffy:=StringBuilder.Create; LBuffy.Append('x', 1000000); //add a million x chars //break on line below and evaluate 'LBuffy' or 'LBuffy.ToString' here and debugger+IDE will crash. S:=LBuffy.ToString; //break on line below and debugger+IDE crashes - even without any evaluation attempts Showmessage(S); end; ---EO SNIP--- |
53465
| QC# |
Project |
Area |
| 53465 |
Delphi.Net |
Debugger\Evaluator |
| Description: |
Steps: |
[QC Short Description] Evaluation of string's Length property crashes debugger+IDE
[QC Description] Evaluation of a string's Length property results in crash with the following error message: -- Debugger Assertion Failure: "" in pcntrlsrv.cpp at line 3088 Continue execution --- QC Entry 53465
|
---BO SNIP--- var L: Integer; S: string; begin S:='xxx'; //assign any value L:=S.Length; //set breakpoint here and evaluate 'S.Length' ShowMessage(L.ToString); //show value of L (just so L wont get optimized away) end; ---EO SNIP---
See also related/duplicate QC reports: 53588 & 53479 |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| After applying the Nov Update, the IntraWeb assemblies have changed Assembly Version number |
-Install Highlander RTM and either back up assemblies or note Assembly Version no.'s -Install Nov Update //res: ..\bin\dclIntraweb_90_100NET.dll changes from 1.0.2804.24002 to 1.0.2838.31318 ..\Shared Assemblies\5.0\Intraweb_90_100NET.dll changes from 1.0.2804.23999 to 1.0.2838.31316 ..\Shared Assemblies\5.0\IntrawebDB_90_100NET.dll changes from 1.0.2804.24001 to 1.0.2838.31317 |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
| After applying the Nov Update, the IndySystem.dll assembly has changed Assembly Version number |
-Install Highlander RTM and either back up assemblies or note Assembly Version no.'s -Install Nov Update //res: ..\Shared Assemblies\5.0\IndySystem.dll changes from 11.0.2804.9245 to 11.0.2838.9608
|
53393
| QC# |
Project |
Area |
| 53393 |
Delphi.Net |
Database\Data Explorer\Integrated |
| Description: |
Steps: |
[QC Short Description] Adding duplicate column names not detected when entered
[QC Description] Adding a column with a duplicate name is only detected when closing the Table Design tab, giving no opportunity to fix, and losing all other changes made to the table schema. QC Entry 53393
[Note - similar issue exists for Table Viewer: add data which will cause errors (key violation fi.), close the tab and you'd lose your changes without a chance to correct)
[Nov Update] |
- Switch to Data Explorer
- Expand the 'Ado.Net' node
- Right-click on the 'BlackfishSQL Remote Provider' node and select 'Add New Connection'
- Enter 'DataTest' in the 'Connection Name' field
- Right-click on the 'DataTest' node and select 'Modify Connection'
- Enter 'sysdba' in the 'User Name' field, 'masterkey' in the 'Password' field, and 'D:\Data\DataTest.jds' in the 'Database' field
- Click the 'Test Connection' button
- Click 'Yes' when prompted to create the database
- Click the 'OK' button to confirm database creation
- Click the 'OK' button to close the 'Add Connection' dialog
- Expand the 'DataTest' node in Data Explorer
- Right-click on the 'Tables' node and select 'New Table'
- Enter 'Field1' in the 'Name' column and press the down arrow
- Enter 'Field1' in the 'Name' column and press the down arrow
- Right-click on the 'Table Design:DataTest' tab and select 'Close Page'
- Click the 'Yes' button when prompted to save changes
Expected: You are prompted about the duplicate field names, and are given an opportunity to address the problem.
Actual: You are prompted about the duplicate field names, but the tab is closed, losing all changes. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Metrics |
| Description: |
Steps: |
| Delphi .Net and Win32: IUR (Inheritance Usage Ratio) metric should return 0, if parent class has no inheritance-specific members. Now it returns 100. |
A = class end; B = class(A) end;
C=class public var F1:Integer; end; D=class procedure Proc; end;
procedure D.Proc; begin F1:=4; end;
Now IUR returns for classes B and D 100, but 0 is expected in both cases, because neither class A nor C has any inheritance-specific member, so no usage can be calculated. |
| QC# |
Project |
Area |
|
Delphi.Net |
Modeling\Metrics |
| Description: |
Steps: |
| Delphi .Net and Win32: IUR (Inheritance Usage Ratio) metric should count non-protected (public and published) virtual methods as inheritance-specific members. |
case 1: Class1 = class public procedure Proc1;virtual; end; Class2 = class(Class1) end; Here IUR returns for Class2 100, but 0 is expected because Proc1 - is virtual method, but not overriden in Class2.
case 2: Class1 = class public procedure Proc1;virtual; protected var F1:Integer; end;
Class2 = class(Class1) public procedure Proc1;override; end;
procedure Class2.Proc1; begin end;
Here IUR returns 0, but 50 expected - 1 inheritance-specific member is used from 2 available ones. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Help Update Warning about Help Update be recommended to Update3 or RAD 2007 installations is being returned when running helpupdate /upgrade after having installed Nov Update. |
Install Nov Update Run helpupdate /upgrade |
| QC# |
Project |
Area |
|
Delphi.Net |
VCL\ComCtrls |
| Description: |
Steps: |
TRichEdit.LoadFromFile fails to load a non-RTF file when the PlainText property is False.
Regression caused by switch to .NET 2.0 |
* File | New | VCL.NET Application * Drop a TRichEdit on the form * Drop a TButton on the form * In the button's OnClick enter: RichEdit1.Lines.LoadFromFile('c:\config.sys'); // or any other plain text file * Run, click on the button // Exp: Text from file displayed // Act: Garbage characters displayed |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\BlackFishSQL |
| Description: |
Steps: |
The class JDSType has a name that is too close to JDatastore. Please rename it to DataStoreType |
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| When show all files is enabled in large ASP.NET projects, saving a file get's very slow |
This was reported in evangelist training.
File new ASP.NET project Extract the attached zip file into the project directory (you should have a images folder and all of its content including subdirectories and .jpg files) Right click on the project and check Show All Files (you should see the images folder)
File/New/Other Files/Text File Ctlrl-S to save the text file
Repeat the following to show the delay when Show All Files is checked
Ctrl-S to save the text file and then immediately start typing
Actual: There is a significant delay before the editor excepts characters. Expected: Less delay
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP\Providers |
| Description: |
Steps: |
| Calling ResetPassword in the membership provider with an invalid password question response does not fail. |
Call MembershipProvider.ResetPassword with an invalid password answer. It should raise an exception but it doesn't. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, copy database validation requires extra steps.
[Nov Update] |
1. Create a connection to BlackfishSQL database and verify it works 2. Right click on the connection in Data Explorer and choose Database|Copy Database 3. Note that the Ok button is greyed out 4. Modify the Connection Name. Ok button is still greyed out 5. Modify the Database field to point to a different jds file or location
Exp. Ok button enabled Act. Ok button greyed out. You must modify the Connection Name field again for it to become enabled |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, if you try to copy an encrypted database you get:
[databasename] database is not opened (user name is sysdba).
However, the copy is made anyway. If you try to connect to the copy you get:
Borland.Data.DataStore.FromJava.JDataStore.DataStoreException: You do not have STARTUP rights for this database Borland.Data.DataStore.SQLException: You do not have STARTUP rights for this database
[Nov Update] |
1. Create a valid blackfishSQL connection 2. Right click, Database|Copy Database 3. Check off the Encrypt New Database check box and click Ok 4. Right click on the copied connection name and select Database|Copy Database 5. Check off the Encrypt New Database check box and click Ok
Exp. Copies without error Act. [databasename] database is not opened (user name is sysdba).
6. Right click on the copied connection name (3rd connection created) select Modify Connection and Test Connection.
Exp. Test connection succeeded Act. Borland.Data.DataStore.FromJava.JDataStore.DataStoreException: You do not have STARTUP rights for this database Borland.Data.DataStore.SQLException: You do not have STARTUP rights for this database
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
BlackfishSQL, if you try to copy an encrypted database and do not choose to encypt the copy you get:
Runtime Error: [line 1, col 15] Write operation failed. File: [Copied database name] database is read only.
Connection is created anyway and you appear to be able to connect without error.
Database verification fails with 3 errors though. Not sure if this is expected.
[Nov Update] |
1. Create a blackfishSQL connection 2. Right click, Database|Copy Database 3. Check off the Encrypt New Database check box and click Ok 4. Right click on the new connection, Database|Copy Database 5. Leave the Encrypt New Database check box unchecked and click Ok
Exp. Success Act. Runtime Error: [line 1, col 15] Write operation failed. File: [Copied database name] database is read only. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Open BlackfishSQL connections are not closed upon IDE shutdown.
[Nov Update] |
1. Create a new BlackfishSQL connection in Data Explorer under the BlackfishSQL Local Provider and open it 2. Close the IDE 3. Start the IDE 4. Try to open a connection to the BlackfishSQL connection created in Step 1 by expanding the Tables node
Exp. Opens without error Act. 'Database appears to be open by another process or hasn't been shutdown properly. Would you like to attempt to open it anyway?'
There appears to be a [databasename]_temp.jds file created in the directory which is not removed when the IDE is shutdown. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Unable to copy database connection created under dbexpress node. An unhandled exception is raised:
System.NullReferenceException: Object reference not set to an instance of an object. at Borland.Vcl.TStrings.GetValue(String Name) at Borland.Vcl.TStrings.get_Values(String Name) at Borland.Data.TDBXProperties.get_Values(String Name) at Borland.Data.Explorer.ConnWrapper.getProperty(String property) in c:\DevBuild\d11\tp\database\internal\src\cs\borland\dbtools\explorer\ConnWrapper.cs:line 208 at Borland.Data.Explorer.CopyDatabaseDialog.btnOK_Click(Object sender, EventArgs e) in c:\DevBuild\d11\tp\database\internal\src\cs\borland\dbtools\explorer\CopyDatabaseDialog.cs:line 327 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
[Nov Update] |
1. Create a blackfishSQL connection under the dbexpress node in data explorer 2. Right click, Database|Copy Database 3. Click Ok
Exp. Copies Act. Unhandled exception |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
New Data Explorer items should show up on the Data Explorer main menu when a connection name is selected in Data Explorer. Currently, the top level menu item "Database" is there but the sub items are not. Selecting "Database" does nothing.
[Nov Update] |
1. Select a blackfishSQL connection name in Data Explorer 2. Data Explorer|Database
Exp. A sub menu Act. No sub menu |
| QC# |
Project |
Area |
|
Delphi.Net |
Documentation |
| Description: |
Steps: |
ASP - Customize dialog
When help button is called dialog shoudl pass the focus to the help page brought up. Instead help page is under Customize dialog |
File|new |ASP form <Rclick> ToolsBar|Customize click help button //exp: help page on top //act; customize is on top of the help page brought up |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Unable to copy a blackfishSQL database whose log files have been deleted
[Nov Update] |
1. Create a BlackfishSQL database 2. Delete all of it's log files 3. In Data Explorer connect to the database, you will receive an error and be prompted to open it in read-only mode. Do so. 4. Right click, Database|Copy Database 5. Accept the defaults and click Ok
Exp. Database copies Act. Could not open database in read-only mode. The database is currently being used in non read-only mode. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install\Files |
| Description: |
Steps: |
These are the new file deliveries with respect to RAID 255580.
|
Personality = Win32 SKU=All Feature=(Core) Database Feature
Please add the following files to the install image:
1. From $(TP)\bin to $(WINDOWS)\System32 DbxMetaData100.bpl
2. From $(TP)\intermediate\release\dcp to $(BDS)\lib DbxMetaData.dcp
3. From $(TP)\intermediate\release\lib to $(BDS)\lib DBXTypedTableStorage.dcu DBXDataStoreMetaDataWriter.dcu DBXDb2MetaDataWriter.dcu DBXInformixMetaDataWriter.dcu DBXInterbaseMetaDataWriter.dcu DBXMetaDataWriter.dcu DBXMsSqlMetaDataWriter.dcu DBXMySqlMetaDataWriter.dcu DBXOracleMetaDataWriter.dcu DBXSybaseASAMetaDataWriter.dcu DBXSybaseASEMetaDataWriter.dcu DBXMetaDataProvider.dcu DBXMetaDataWriterFactory.dcu DBXInterbaseMetaData.dcu DBXSybaseASEMetaData.dcu DBXDataStoreMetaData.dcu DBXDb2MetaData.dcu DBXInformixMetaData.dcu DBXMsSqlMetaData.dcu DBXMySqlMetaData.dcu DBXOracleMetaData.dcu DBXSybaseASAMetaData.dcu DBXTableStoragePlatform.dcu DBXDataExpressMetaDataProvider.dcu DBXClientDataSetStorage.dcu
|
| QC# |
Project |
Area |
|
Delphi.Net |
IDE\HTML\ASP |
| Description: |
Steps: |
| Web form and web service designers don't load after setting a dynamic property |
File/New ASP.NET web project
File/New Web Service or Web Form
Drop SqlConnection on the designer
In Object Inspector, click “…” next to Dynamic Properties/Connection String
Check box
OK
Now you should find this in the ..pascs in the code file
Self.SqlConnection1.ConnectionString := (string(configurationAppSettings.GetValue('S' +
'qlConnection1.ConnectionString', TypeOf(string))));
Enter a space in the .pas file and click designer tab
Actual: designer loads error
Expected: designer loads without errors
|
| QC# |
Project |
Area |
|
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
| About box in ECO Utils menu can be resized and position of button "Close" is too far on the right, it gets cut off. |
1. Start HL 2. ECO Utils / About...
|
53941
| QC# |
Project |
Area |
| 53941 |
Delphi.Net |
IDE\Code Completion |
| Description: |
Steps: |
[QC Short Description] Class Completion Still Broken
[QC Description] I noticed some "fixes" to class completion but some simple stuff is still broken. -- The function results in the class below of types &Object and &Type don't get the '&' when you do class completion. -- If you remove the // comment in the function G definition so the function result is List<Integer>, then class completion balks when it sees the '<' character and punts.
program Project1;
{$APPTYPE CONSOLE}
uses System.Collections.Generic;
type MyClass = class function O: &Object; function T: &Type; function G: List;//<Integer>; end;
{ MyClass }
function MyClass.G: List; begin
end;
function MyClass.O: Object; begin
end;
function MyClass.T: Type; begin
end;
begin
end. QC Entry 53941
|
See description
NOTE: closing this one. opened 256335 to cover the remaining issue of not escaping Object and Type. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
If you try to copy a connection string to web.config that already exists and the string is not identical, an unhandled exception is raised:
System.Configuration.ConfigurationErrorsException: The entry 'ORACLECONNECTION' has already been added. at System.Configuration.ConfigurationElementCollection.BaseAdd(ConfigurationElement element, Boolean throwIfExists, Boolean ignoreLocks) at System.Configuration.ConfigurationElementCollection.BaseAdd(ConfigurationElement element) at System.Configuration.ConnectionStringSettingsCollection.Add(ConnectionStringSettings settings) at Borland.Data.Explorer.DataExplorerIDEImpl.CopyConnectionStringToConfig(String connectionName, String connectionString, String providerName) at Borland.Data.Explorer.DataExplorerControl.miAddToWebConfig_Click(Object sender, EventArgs e) at System.Windows.Forms.MenuItem.OnClick(EventArgs e) at System.Windows.Forms.MenuItem.MenuItemData.Execute() at System.Windows.Forms.Command.Invoke() at System.Windows.Forms.Command.DispatchID(Int32 id) at System.Windows.Forms.Control.WmCommand(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.TreeView.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. Activate the Data Explorer tab, choose a connection name, right click on it and select 'Add to Web.Config' 3. Right click on the connection name and choose Modify Connection 4. Change something and click Ok 5. Right click on the connection name and choose 'Add to Web.Config'
Exp. Either the string is replaced or a graceful error message is thrown. Act. Unhandled exception |
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
'Add to Web.config' option should be accessible in more cases.
Right now it seems to only be able to be used if the asp.net designer is active.
[Nov Update] |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. F12 to activate the Code Editor 3. Click the Data Explorer tab and right click on a connection name
Exp. 'Add to Web.config' option Act. Option not there
|
| QC# |
Project |
Area |
|
Delphi.Net |
Database\Data Explorer |
| Description: |
Steps: |
Data Explorer main menu not updated to include the 'Add to Web.config' option unless the popup menu has been accessed first.
[Nov Update] |
1. File|New|ASP.NET Web Application - - Delphi for .NET 2. Activate the Data Explorer and left click to select a connection name 3. Click the Data Explorer main menu item and observe the items listed
Exp. 'Add to Web.config' option Act. Option not present
If you right click on the connection name to invoke the popup menu and then click the Data Explorer main menu item, the item will be listed. |
| QC# |
Project |
Area |
|
Delphi.Net |
Install |
| Description: |
Steps: |
Attached bmp is returned when HelpUpdate /upgrade is run while dexplor is running
Issues: . Yes, No, Cancel Buttons : there is no question and not sure what to select here
. No button: is in loop. Doesnt do anything
. Yes button: Install is continued
$PRELIST : ?
. Request service pack 4 ?
|
|
53711
| QC# |
Project |
Area |
| 53711 |
Delphi.Net |
ECO\IDE Integration |
| Description: |
Steps: |
[QC Short Description] ECO uneccessarily loaded at startup of Win32/C++ Builder only personality
[QC Description] As it seems the ECO package is still loaded in the Win32 and C*+ Builder single personality mode. If ECO is not used by the IDE this shouldn't be loaded for Win32 and C++ Builder only mode.
Not doing this could reduce startup time a little bit. QC Entry 53711
|
1. start IDE (single personality mode: Win32
or C++ Builder)
2. watch the ECO stuff being loaded (if not seen
on the splash screen use process explorer or
similar to look for loaded ECO stuff) |
|
|
Connect with Us