[All]
RAD Studio 2007 December Updateのコアバグ修正リスト
By: Hitoshi Fujii
Abstract: RAD Studio 2007 December Updateでは、284件のコアバグの修正(うちQuality Centralからは84件)の修正が含まれています。このドキュメントは、修正内容を製品エリア順にリストしたものです。
以下は、RAD Studio 2007 December Updateに含まれる修正内容を、Quality
Centralの製品エリア順にリストしたものです。これらの修正は、Delphi 2007とC++Builder 2007に適用できます。
Delphi固有の修正については、以下をご覧ください。
C++Builder固有の修正については、以下をご覧ください。
Delphi.NET固有の修正については、以下をご覧ください。
Quality Central
のリファレンス番号は、このドキュメントの左側に表示されています。このドキュメントは、製品エリア順にソートされていま
す。RAD Studio 2007製品ファミリー向けのDecember Updateをご活用いただければ幸いです。よいお年をお迎えください。
CodeGear RAD Studio開発チーム一同
|
QC#
|
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
An AV occurs on run when you attempt to drop a
component from the shell Controls onto a form. Deleting the component
from the form results in an AV in the vcl100.bpl
<details in attachment>
WORKAROUND: Turn off build with Runtime packages. Deleting though still
returns an AV in vcl100.bpl |
+ Go to: C:\Documents and Settings\All
Users\Documents\RAD Studio\5.0\Demos\CPP\Apps\ShellControls
+ open the bcbshlctrls.bpk (it will be converted)
+ Project | Build
+ File | Close All (you can save if you want)
+ Open dclshlctrls.bpk( it will be converted)
+ Project | Build
+ Right click on the project in the PM
+ Select Install
//exp & act: successful install of the component into the tool
palette
+ File | New | VCL Forms Application - C++ Builder
+ Drop TShellTreeView (or any of the shell controls found under the
Samples section
+ Project | Build
+ Run | Run
//exp: Project runs with the components on the form
//act: Stops at CPU window and pressing run again results in AV:
Debugger Fault Notification
---------------------------
Project C:\Documents and Settings\testuser\My Documents\RAD
Studio\Projects\test1\Debug\Project1.exe faulted with message: 'access
violation at 0x00008ecf: access of address 0x00008ecf'. Process
Stopped. Use Step or Run to continue.
---------------------------
OK
---------------------------
+ click OK
+ Reset the IDE
+ Go to the Form Designer
+ Delete the component
//exp: no error
//act:
---------------------------
Error
---------------------------
Access violation at address 2018B9A7 in module 'vcl100.bpl'. Read of
address 00000008.
---------------------------
OK Details >>
---------------------------
<details attached in .txt file>
Workaround: Turn off build with Runtime Packages on the VCL Form
application before dropping the component. Deleting the component still
returns the AV though.
|
| QC# |
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
Missing ShellControls source code that ships
with Delphi. If you install RAD Studio or Delphi 2007, the following
directory gets installed:
C:\Documents and Settings\All Users\Documents\RAD
Studio\5.0\Demos\DelphiWin32\VCLWin32\ShellControls
If you just install C++ 2007, the ShellControl demo doesn't get
installed.
See also: RAID 253367. |
Customers upgrading from C++ Builder 6 who used
the shell controls require the source to build and install the
components into the IDE.
http://caseviewer.borland.com/CaseViewer/CaseDetails.jsp?caseNumber=672380
File List:
dclshlctrls.dcr
dclshlctrls.dpk
dclshlctrls.dproj
dclshlctrls.rc
dclshlctrls.res
RootEdit.dfm
RootEdit.pas
ShellConsts.hpp
ShellConsts.pas
ShellCtrls.hpp
ShellCtrls.pas
ShellReg.pas
vclshlctrls.dpk
vclshlctrls.dproj
vclshlctrls.res
UPDATE: These files should be placed in <DemoDirInstall
Path>\CPP\Apps\ShellControls directory.
|
| QC# |
Project |
Area |
|
C++Builder |
Demos |
| Description: |
Steps: |
| Missing C++ specific Shell Control demo and
package from the C++ personality delivery. |
Please add
bcbshlctrls.cbproj
dclshlctrls.cbproj
these should be checked in already but need to get into the build. |
| QC# |
Project |
Area |
|
C++Builder |
Documentation |
| Description: |
Steps: |
The index is missing entries in various cases.
I'm not sure how widespread this is, but it might be quite common. I
noticed it for new files I added in the
Borland.Data.AdoDbxClientProvider namespace. In particular, the
following entries are missing:
TAdoDbxCommandBuilder.Create
TAdoDbxConnection.DataSource
TAdoDbxDataAdapter.RowUpdated
TAdoDbxDataAdapter.RowUpdating
TAdoDbxDataAdapter.Create
TAdoDbxDataAdapter.HasRows
TAdoDbxParameter.SourceColumnNullMapping
|
1. Run help viewer.
2. Click Index tab at bottom right.
3. Enter "Borland.Data.AdoDbxClientProvider" in "Look for:" field to
see entries for this namespace.
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Help Update
Running 'Rad Studio Documentation' stand alone I see 'No table of
contents has been defined for current Help collection' |
Run Update install
From Windows Start menu
CodeGear Rad| Rad Studio Documention
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
[Function Issue]
Help button of "Add Source Breakpoint" window and the document screen
do not support.
Please see attach.
[MSeki on 16/10/07 (After HelpUpdate/1013/)]
This issue has been resolved. |
1. Watch "Add Breakpoint" of "Breakpoint
List".pane.
2. Select "Source Breakpoint..." => "Add Source Breakpoint" window
appears
3. Push "Help" Button
4. "Add Address Breakpoint or Add Data Breakpoint" is displayed in
DocumentExplorer.
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Start IDE without click anything, press F1 got
error.
---------------------------
Error
---------------------------
No help found for context.
---------------------------
OK Details >>
---------------------------
|
1. Start IDE
2. press F1
//exp: Help's default page
//act : error
---------------------------
Error
---------------------------
No help found for context.
---------------------------
OK Details >>
---------------------------
|
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
//This are the remaining issues from 254976
Bad links in default.htm file.
There are other links that don't work
Backfish SQL documentation
http://dn.codegear.com/article/36770 is incorrect : page not found
Eco documentation
http://dn.codegear.com/article/36853/ is incorrect: page not found |
Run BDS. In the default page, click on the Help
button. Check the different options. Some links don't work. |
| QC# |
Project |
Area |
|
Delphi |
Documentation |
| Description: |
Steps: |
Help on Help returns
Unable to get navigation object [!DefaultDynamicLinkIndex]
URL:ms-help://borland.bds5/MS.NETFramework.v20.en/MS.Dexplore.v80.en/dv_dexplore/html/92b51076-8841-45a2-8e2b- |
bmp attached
Run help
Help|help on Help |
| QC# |
Project |
Area |
|
Delphi |
IDE |
| Description: |
Steps: |
When F1 is pushed on TObject, it is necessary to
display help.
[HelpUpdate] |
1. Run "Delphi for Microsoft Win32" or
"C++Builder".
2. Create New VCL Form Application.
3. Drop New TObject(ex.TButton)
4. Click TButton1.
->TButton1 is active.
5. Push F1.
->Help is not displayed.
|
| QC# |
Project |
Area |
|
Delphi |
IDE |
| Description: |
Steps: |
Contains and Requires are not able to translate
in the tree of Project Manager.
[mt - also in French D2005]
same in Japanese Update2 and German Update2.
Are "Contains" and "Requires" hard corded? |
1. File /New/ Package - Delphi pour Win32
2. check Project Manager
// Contains and Requires are not translated in the tree. |
52642
| QC# |
Project |
Area |
| 52642 |
C++Builder |
IDE |
| Description: |
Steps: |
[QC Short Description]
New Forms App does not autocreate main form if autocreate forms is
turned off
[QC Description]
After installing patch 3 to CB2007, a new C++ forms app no longer
includes the code to autocreate the main form if autocreate forms is
turned off. App will run, but main form is not displayed.
The main .cpp file that is created looks like this:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
SetApplicationMainFormOnTaskBar(Application, true);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
Note that there is no Application->CreateForm() call.
QC Entry 52642
|
Install Update 3 to CB2007 or install RAD Studio
2007 Tools | Options | Environment Options | VCL Designer | Module
Creation Options | Auto create forms and data modules - uncheck this
option OK File | New | VCL Forms app - C++ Run | Run Exp: Project will
compile, run and display a blank main form Act: Project compiles, runs,
and exits without ever showing the main form. Look at Project1.cpp file
in editor Exp: File will create the main form with a line like this:
Application->CreateForm(__classid(TForm1), &Form1); Act: Line to
creat the main form is missing Tested in both CB 2007 + update 3 and
RAD Studio 2007 |
43860
| QC# |
Project |
Area |
| 43860 |
Delphi |
IDE |
| Description: |
Steps: |
[QC Short Description]
Vista problems with XML Data Binding Wizard
[QC Description]
The Delphi 2007 XML Data binding wizard tries to write to the program
files folder (C:\Program Files\CodeGear\RAD
Studio\5.0\bin\xmldbwizard.ini.). In Vista this only works if the user
has launched Delphi as admin..
QC Entry 43860
|
1. Start Delphi 2007 in Vista
1.5 New Delphi Win32 VCL App
2. From the File menu select New -> Other
3. In the new item dialog, select Delphi Projects -> XML -> XML
Data Binding
4. Click OK
5. You get the following error dialog:
---------------------------
Error
---------------------------
Unable to write to C:\Program Files\CodeGear\RAD
Studio\5.0\bin\xmldbwizard.ini.
---------------------------
OK Details >>
---------------------------
|
43305
| QC# |
Project |
Area |
| 43305 |
Delphi |
IDE\Dialogs\Project Options |
| Description: |
Steps: |
[QC Short Description]
Duplicate DEBUG/RELEASE defines
[QC Description]
After using the "Default" checkbox on "Project Options", whenever a new
project is created it has a duplicate define DEBUG that stays even when
switching to RELEASE options.
QC Entry 43305
|
1) New project 2) Project Options,
Directories/Conditionals, Check the "Default" check box and click OK 3)
Close all 4) New project 5) Project Options, Directories/Conditionals:
duplicate DEBUG appears in "Debug" options; DEBUG;RELEASE show in
"Release" options. |
44669
| QC# |
Project |
Area |
| 44669 |
Delphi |
IDE\Dialogs\Project Options |
| Description: |
Steps: |
[QC Short Description]
Image base setting is not persisted
QC Entry 44669
|
---added - TG ----
1. After saving image base to another value, save project and close.
2. Open the dproj in a text editor to verify the ImageBase was added to
the project
3. Reopen the project
4. In the Project Manager, right click Project1, and Save.
5. Re open the dproj in text editor, notice the ImageBase was removed.
----ORIGINAL---------------
Situation A:
1. Set an image base other than $0040000 in Project Options / Linker
2. Save and Close the project
3. Open the same project
Expected: Image base remains as set
Found: Image base has reverted to $0040000
Situation B:
1. Set an Image base other than $0040000 for Release Build in Project
Options / Linker
2. Select Debug build
3. Select Release build
Expected: Release build Image base remains as set
Found: Release build Image base has reverted to $0040000
Situation C:
1. Set an image base other than $0040000 in Project Options / Linker
2. Save and Close the project
3. Verify that the correct image base is saved in the DPROJ file
4. Open the same project
5. Open the Project Options Dialog, then click OK
6. Build the Project
Expected: The built DLL should have the specified image base
Found: The built DLL has image base $0040000
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Project
Management\Project Options |
| Description: |
Steps: |
| The -B switch (compile via assembly), when
placed in "Other Options" is not passed to the compiler correctly |
-Open the attached project and build
//exp and act:
[BCC32 Error] AsmUnit.cpp(28): E2329 Invalid combination of opcode and
operands
[BCC32 Error] AsmUnit.cpp(38): E2329 Invalid combination of opcode and
operands
(these errors are due to limitations in BASM)
-Project | Options | C++ Compiler | Advanced Compilation | Other
Options and add:
-B
-Build
//exp:
-B is passed to the compiler and there are no errors (TASM, not BASM is
used)
//act:
It appears that .asm is generated in one step, then assembled in a
separate call to TASM,
This results in many linker errors because tasm32.exe was not invoked
with /ml
Also, adding #pragma inline to a file with inline asm has the same
affect of
explicitly invoking tasm32.exe, e.g.
-Create a new VCL Application
-Double-click the form and add some inline assembly,e.g.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
asm test eax,0
}
-Add #pragma inline at the top of the unit and build
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor |
| Description: |
Steps: |
Popup menu in code editor for an XML file
contains non grayed items which do nothing.
"Refactoring" doesn't do anything, should be grayed.
"Rechercher" has an arrow, indicating there is a submenu, but there
isn't.
"Compléter la classe sous le curseur" not grayed but doesn't do
anything and so should be grayed.
See screen dump.
"Basculer le point d'arrêt" is a non-sense in this context. Should be
grayed.
Same popup is shown for HTML, JavaScript, ...
|
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Code Editor |
| Description: |
Steps: |
[Erreur fatale] F1009 Impossible d'ouvrir le
fichier d'entrée ''
I get this error when I move the mouse cursor above code into the
editor window when I have code giving the error "[BCC32 Erreur]
Httpcontcod.hpp(88): E2347 Mauvaise correspondance de paramètre dans le
spécificateur d'accès read de la propriété Coding" as reported in
report 251066.
Attached: Screen dump and code causing that trouble.
// Francois Piette
Still in 2709.7128.2
|
1. unzip ics.zip in any folder. Be sure to
restore directory structure.
2. open delphi\vc32\IcsBcb110.cbproj, compile and install
3. add delphi\vc32 to the path so that the components are found
4. open Cpp\Internet\Bcb2007\Bcb110Sam.groupproj
5. select and build HttpTst.exe project
=> You get the error reported in report 251066
6. In the code editor where the IDE has opened HttpContCod.hpp, let the
mouse fly all over the code, you'll quickly get the error
=> [Erreur fatale] F1009 Impossible d'ouvrir le fichier d'entrée ''
|
51136
| QC# |
Project |
Area |
| 51136 |
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
[QC Short Description]
REPRODUCABLE Error Insight Eats All Memory
[QC Description]
I finally found something reproducable that shows Error Insight
consuming memory to the point that the IDE slows to a crawl (or worse).
See steps..
QC Entry 51136
[ref. 244356, looks like similar issue.] |
1) I bring up an out of the box (well, as
downloaded) copy of the Delphi personality on a freshly booted machine.
2) Open a new VCL Forms Application. 3) Open the Windows Unit and the
Classes Unit 4) Have Task Manager running so you can follow the Mem
Usage of bds.exe. The CPU Time is interesting to watch as well. 5) When
looking at the Windows Unit, you should see three Error Insight
messages (QC51111). 6) Go down to the TYPE directive at line 109 and
put a couple of // in front of it to comment it out. Wait patiently for
about 7-10 seconds while the Error Insight list gets built in the
Structure window. Get used to seeing how long this takes... 7) Switch
to the Classes unit and comment out the TYPE directive on line 72 (it
isn't the first TYPE) 8) You'll now see a few Error Insight messages
from Classes. Leave classes with these errors. 9) Switch back to the
Windows unit where the TYPE is commented out. 10) Position the cursor
right after the two // you added. 11) Now comes the fun... While
watching the list of Errors in the Structure box, backspace twice to
delete the two // characters. As soon as big bunch of Error Insight
error messages disappear (three will remain), type the two //
characters again and wait for all of the Error Insight Messages to
reappear (7-10 seconds). 12) Repeat step 11, alternating between having
the errrors and not having the errors. Remember to delete the // as
soon as the error messages finally appear and add the // back after the
error messages quickly disappear. 13) Follow the Mem Usage while doing
this -- things bog down when you get up to about 1.2 GIG of memory
usage. (Don't forget to fix the source files when you are done) Choice
of files isn't significant -- just something to generate lots of
errors... Up-to-date XP 2 Gigs Memory 3.4 Gig Pentium D (so two
processors) |
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
Error Insight has shows an error for code
involving calling convention directives.
(JJS: See related compiler issue 238688)
// Francois Piette 2007.09.18
Still in build 2804.9245 (RAD Studio 2007)
Still in build 2825.9366_VCL_Update.8
|
Load the attached program into the IDE as a
Win32 app.
See that error squiggles are indicated for the code on the line marked
with #1.
Nevertheless, the program compiles as expected.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TMyFuncPtr = procedure (const Msg : String); cdecl;
procedure MyFct(const Msg : String); cdecl; forward;
const
MyFctPtr1 : procedure (const Msg : String); cdecl = MyFct; //#1
MyFctPtr2 : TMyFuncPtr = MyFct;
procedure MyFct(const Msg : String); cdecl;
begin
WriteLn(Msg);
end;
begin
MyFctPtr1('Test1');
MyFctPtr1('Test2');
end.
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
| stdcall causes error insight errors. |
New VCL App
add the following type decl;
type
TTestRecord = record
E1: procedure stdcall of object;
E2: procedure of object stdcall;
E3: procedure of object; stdcall;
end;
//error insight is flagging 6 different errors. the code compiles fine. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Code Editor\Error Insight |
| Description: |
Steps: |
When the Editor options "error insigth" is
enabled, Adding comments, new lines and deliting lines within a class
definition is causing performance issue.
After dding few blank lines between class fields definition, the
"private bytes" of the bds process increase of 1K.
Removing those makes this number to increase of 1 more K per line
removed.
The "Private Bytes" number will not decrease unless even when those
comments or blank lines are removed.
BDS needs to be re-started to see "privates bytes" number change.
[ref. 254984 for other steps.] |
1. Open a pas file with class definition
2. start process explorer and open the properties window for it -
[Private bytes during at this point of this test is 139 484 K]
3. add blank lines between fields of a class definition. -[ "private
bytes" = 140 828 K"]
4. remove the same lines [ "private bytes" = 144 284K"]
5. wait ....10 minutes. [ "private bytes" = 144 284K"]
will update this raid with the automated tests once it is ready
|
51428
| QC# |
Project |
Area |
| 51428 |
Delphi |
IDE\Code Editor\Help Insight |
| Description: |
Steps: |
[QC Short Description]
REPRODUCIBLE Help Insight "Object Reference Not Set To An Instance of
an Object"
[QC Description]
I put together a relatively simple case that will give an Object
Refererence Not Set To An Instance of an Object" error dialog box every
time you hover over an identifier.
The same thing happens with many other symbols defined in the D3DX9
unit.
Code compiiles without error.
This has been around for a long time...
QC Entry 51428
STACK TRACE IN COMMMENT. |
This uses DirectX code from the Clootie/Jedi
library. Load the project title Bug in the attached files. In the main
program, hover the mouse cursor over D3DXMatrixIdentity and you'll get
an error dialog. D3DXMatrixIdentity is an inline procedure declared in
the D3DX9 unit. |
22343
| QC# |
Project |
Area |
| 22343 |
Delphi |
IDE\Form Designer |
| Description: |
Steps: |
[QC Short Description]
F1 not working from embedded form-designer
[QC Description]
Selecting a control on the embedded VCL Form designer and pressing the
F1 button fails to display help for the selected control.
Applies only to the embedded designer! With the floating designer F1
still works as in previous versions
QC Entry 22343
[10.0.2237.38180 ( 2/16/2006) : true ]
[HelpUpdate] |
!. Start a Delphi with just the Win32
personality (with the default docked layout and the embedded designer).
1. Start a Win32 project. 2. Place a TButton on the main form. 3. Click
on TButton so that it is selected. 4. Press F1. In previous versions of
Delphi (e.g. Delphi 5), help on TButton would be displayed. In Delphi
2006, nothing happens. |
| QC# |
Project |
Area |
|
C++Builder |
IDE\File Handling |
| Description: |
Steps: |
_GetCppExplorerController is called on multiple
threads, but it is clearly not a thread safe routine. FastMM reports
double free attempts on a global data module variable when working with
C++ modules.
|
Run the IDESmokeTest on a machine with dual core
processor. Observe FastMM error reports when reopening a C++ project
(consistently, but not 100%). |
44578
| QC# |
Project |
Area |
| 44578 |
Delphi |
IDE\Open Tools API |
| Description: |
Steps: |
[Windows Vista]
[QC Short Description]
IDE Crashes on shutdown with DLL expert loaded
[QC Description]
When this very DLL export (attached) is loaded the IDE crashes on
shutdown (the Windows Vista "Blabla has stopped working" dialog shows
up).
QC Entry 44578
|
Install on Windows Vista (note from QA: does not
occur on Windows XP)
1) Compile the attached expert project or use the included DLL
1) Add DLL expert to the registry path
HKEY_CURRENT_USER\Software\Borland\BDS\5.0\Experts using an string key
such as TestExpert with a value of
C:\<PathTo>\IDECodeFind2007CrashTest.dll
2) Start Delphi 2007
3) When completely started up, close the IDE using the main window
caption bar X
-> EXP: IDE shuts down normally
-> ACT: IDE crashes with this type of error (seen under the Delphi
2007 debugger):
---------------------------
Debugger Fault Notification
---------------------------
Project D:\Borland\Delphi2007\bin\bds.exe faulted with message: 'access
violation at 0x05ac6c0c: access of address 0x05ac6c0c'. Process
Stopped. Use Step or Run to continue.
---------------------------
OK
---------------------------
The crash happens after FinalizeWizard completes and the DLL is
unloaded. The call stack at the time is like this with the top frames
repeated many times:
:77dcee57 ntdll.KiUserExceptionDispatcher + 0xf
:77deb6a3 ; ntdll.dll
:77dcee57 ntdll.KiUserExceptionDispatcher + 0xf
:77deb6a3 ; ntdll.dll
:77dcee57 ntdll.KiUserExceptionDispatcher + 0xf
:77deb6a3 ; ntdll.dll
:77dcee57 ntdll.KiUserExceptionDispatcher + 0xf
:77deb6a3 ; ntdll.dll
:77dcee57 ntdll.KiUserExceptionDispatcher + 0xf
:2000a204 UnregisterModule + $20
:2000ac6e ; C:\Windows\SysWOW64\rtl100.bpl
:77dfa664 ntdll.RtlDestroyQueryDebugBuffer + 0x100
:77deb8f2 ; ntdll.dll
:77deb915 ; ntdll.dll
:76a292c7 kernel32.ExitProcess + 0x15
:200078c9 @Halt0 + $C5
:00400000 ; C:\<IdePath>\bin\bds.exe |
| QC# |
Project |
Area |
|
Delphi |
IDE\VersionInfo |
| Description: |
Steps: |
IDE doesn't save version info for the localized
project when the localized project for a project is present.
Clarify 672774 |
****UPDATED****
1. I create a simple sample project (VCL forms application - Delphi for
Win32)
2. I then choose Project | Languages | Add. I then choose to add French
Canada.
3. I save when prompted.
4. I recompile the project when prompted.
5. I now have my project.frc in the project manager, and it compiles /
works properly.
6. I then choose Project | Options and select 'Include version
information in project.'
7. I can now modify the version information, such as set Major = 3.
Then, File, Save all.
8. When I build the project.frc and go to view the properties on the
built frc, I do not get the version info.
9. I set the same version informations on project.frc using the
right-click context menu -> options.
10. If I save the project group, close it, re-open it (reopen the
Project group, then activate Project.frc) and choose Project | Options,
the 'Include version information in project' does appear, however, the
right-click context menu of project.frc does not display the correct
version information...
****ORIGINAL****
1. I create a simple sample project (VCL forms application - Delphi for
Win32)
2. I then choose Project | Languages | Add. I then choose to add French
Canada.
3. I now have my project.frc in the project manager, and it compiles /
works properly.
4. I then choose Project | Options and select 'Include version
information in project.'
5. I can now modify the version information, such as set Major = 3.
Then, File, Save all.
6. When I build the project.frc and go to view the properties on the
built frc, I do not get the version info.
7. If I save the project group, close it, re-open it (reopen the
Project group, then activate Project.frc) and choose Project | Options,
the 'Include version information in project' is once again de-selected
and all my changes are gone.
|
48947
| QC# |
Project |
Area |
| 48947 |
Delphi |
IDE\Class Completion |
| Description: |
Steps: |
[QC Short Description]
Class completion duplicates code when invoked on certain classes
[QC Description]
When invoked on some classes, class completion will duplicate code;
usually what is located in the topmost private section.
This problem is present in build 2738, but not in 2728.
QC Entry 48947
|
1. Start Delphi build 2738. 2. Open the attached
dupunit.pas. No need to create a project first. 3. Move the cursor
somewhere in the class and invoke Class Completion (Ctrl+Shift+C). 4.
The expected behavior is that nothing should change, but everything in
the private section is duplicated and class completion produces code
that doesn't compile. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Packages |
| Description: |
Steps: |
When a file is added to a package project and
there is a .dcr with the same base name as the file, it leads to
duplicate .dcr's in the project causing duplicate resource errors.
[this problem was introduced to Spacely post-RTM] |
0. Install Spacely and Cogswell
[an important step, the latest Spacely only does not show the problem]
1. Unzip attachment to a directory
2. File | New Delphi Package
3. Project | Add To Project and select the Unit1.pas you unzipped in
step 1
4. Go to Project | Remove From Project notice the list contains:
Unit1.dcr
rtl
Unit1
Unit1
5. Remove one of the Unit1s
6. Go to Project | Remove From Project and notice that the list is the
same
or there might now be two Unit1.dcr's
alternate steps to see the duplicate dcr's
1. Unzip attachment to a directory
2. File | New Delphi Package
3. Project | Add To Project and select the Unit1.pas you unzipped in
step 1
4. Go to Project Manager and remove Unit1.pas from the project
5. Go to Project | View Source and notice two entries for Unit1.dcr,e.g.
package Package1;
{$R *.res}
{$R '..\test\Unit1.dcr'}
{$R '..\test\Unit1.dcr'}
|
50146
| QC# |
Project |
Area |
| 50146 |
Delphi |
IDE\Packages |
| Description: |
Steps: |
[QC Short Description]
Project options dialog corrupts the list of DCR files in package DPK
file.
[QC Description]
The list of DCR files in the package DPK file gets "corrupted" to
include duplicate entries, which in turn prevent the project from
building. Manual editing of the DPK file can resolve the problem.
QC Entry 50146
|
0: First, copy the attached UNIT1.PAS and
UNIT1.DCR to a folder on your system. (or use any other PAS/DCR pair
that you have) 1: Launch RAD Studio 2: File/New Package - Delphi Win32
3: Right-click on package1.bpl in project manager, and "View Source".
You'll see this at the head of the file. package Package1; {$R *.res}
{$ALIGN 8} ... 4: Project/Build Package 1 - this works just fine. 5:
Project/Add to Project "Unit1.pas" (from step #0) Note that the package
"view source" (the DPK file) now looks like this:- package Package1;
{$R *.res} {$R 'dcrbug\Unit1.dcr'} {$ALIGN 8} ... 6: Again,
Project/Build Package 1 - this works just fine. 7: Open Project/Options
dialog, and click "OK" to close: DPK file now looks like this package
Package1; {$R *.res} {$R 'dcrbug\Unit1.dcr'} {$R 'dcrbug\Unit1.dcr'}
{$ALIGN 8} ... Note: an additional line will be added each time you
repeat this step!! 8: Again, Project/Build Package 1 EXPECTED: Builds
ok. ACTUAL: Build fails, with error:- [DCC Error] E2161 Warning:
Duplicate resource: Type 2 (BITMAP), ID 1; File
C:\Users\Roddy\Documents\RAD Studio\Projects\dcrbug\Unit1.dcr resource
kept; file C:\Users\Roddy\Documents\RAD
Studio\Projects\dcrbug\Unit1.dcr resource discarded. *NOTE* This should
be a warning, but it's being treated like a fatal error. Your package
has *not* built. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Packages\Installing
Components |
| Description: |
Steps: |
[ACCESS VIOLATION]
[QC Short Description]
Rapport d'incident automatisé
[QC Description]
Violation d'accès à l'adresse 216D53B0 dans le module
'delphicoreide100.bpl'. Lecture de l'adresse 00000004.
I was trying to compile and install a component set designed for
BDS2006. There are two packages. One runtime and one design time. The
runtime package compiled OK. The design time complained about a
component already in the design time package and proposed to remove the
unit. I asked to see the details in the remove dialog box, then clicked
OK to accept removing. The access violation occured when I clicked OK.
QC Entry 42271 and also 42274
It looks like it is not related at all to the attached code. I
reproduced with another project. I built a sample project. See attached
file PackageCrash2622.zip.
Note: DO NOT DISTRIBUTE ATTACHED CODE !
QC 42271 - removed from Ref No so field testers cannot see the attached
code
// Francois Piette
Still there in 2671
Still in 2798, see QC51434
Still in 2825.9366_VCL_Update.8, see QC53376
|
Steps with the simple projects attached:
1. Launch the IDE
2. Close All
3. Unzip PackageCrash2622.zip in any folder
4. Open ProjectGroup1 from PackageCrash2622.zip
5. Build Package1
6. Install Package1
7. Build package2
=> The IDE pops a dialog box up to let you remove Component1
Click OK to remove Component1
=> ACCESS VIOLATION
8. Shutdown the IDE
=> Send report to Microsoft :-)
NOTE 7/17/07 - This no longer results in an AV. It causes an duplicate
resource to be added to the project Source file. if you remove this
duplicate, the file now builds fine.
Note by F. Piette 05/08/2007 - Build 2770.8305 still experience
duplicate resource added in the package
Step to reproduce with project mentionned in QC42271:
1. Unzip/Untar the attached source code
2. Open GrizzlyBaseD10.bdsproj
3. Build GrizzlyBaseD10.bpl first
=> It complains about GrizzlyBaseR10.bpl not found (normal !)
4. Build GrizzlyBaseR10.bpl (Should be OK)
5. Build GrizzlyBaseD10.bpl again
=> Complain about HotKeyMgr
6. Check "Show details"
7. Click OK
=> ACCESS VIOLATION
Note: DO NOT DISTRIBUTE GRIZZLYPACK ATTACHED CODE !
Note by F. Piette 05/08/2007 - Cannot reproduce this one with build
2770.8305
|
42177
| QC# |
Project |
Area |
| 42177 |
Delphi |
IDE\Desktop Layouts |
| Description: |
Steps: |
[QC Short Description]
In classic undocked mode after you close last unit you will see gray
window and if you try to close it using Ctrl+F4 you will get Access
violation
[QC Description]
Still exists in 2625.
In classic undocked mode after you close last unit you will see gray
window and if you try to close it using Ctrl+F4 you will get Access
violation
QC Entry 42177
|
1. Open IDE. 2. Switch IDE to Classic Undocked
layout. 3. Create New VCL application. 4. Close every open unit unit
you will gray window. 5. Press Ctrl+F4 and see access violation
Expected: After closing of last unit this window should disapear.
Actual : This gray window stay in screen and it looks quite bad. |
| QC# |
Project |
Area |
|
Delphi |
IDE\Translation
Tools\Resource DLL Wizard |
| Description: |
Steps: |
[Nov 2007 Update]
Resource DLL wizard does not work.
Error dialog with "There are no options" show up.
After error message, the RD wizard still active, but the project file
does not contain any source files.
Note:
BDS 2007 RTM (D2007 Update3) worked fine.
|
1. Create new VCL form / W32 application. save
it.
2. Select "Project | Languages | Add....
3. Error dialog with the following message.
===============
[Window Title]
Error
[Content]
There are no options for C:\Users\tarisawa\Documents\RAD
Studio\Projects\Test\Project1.dproj
===============
|
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
Build Events shows up No help found for context.
Additional enabling Help Debug results in the following message in the
Help Viewer:
[Help2] CanShowALinkEx ALink = BDS5:13751 ANameSpace = borland.bds5
AIndex = 2 Result = 0 |
+ Install RTM product
+ Create a VCL Project
+ Click Project | Options | Build Events
+ Click the Help button
//exp: Information on Build Events worked
//act:
---------------------------
Error
---------------------------
No help found for context.
---------------------------
OK Details >>
---------------------------
<details are attached>
---- ADDITIONAL ----
Used Chris B's help tool. The following information was found:
No help found for "hcBuildEventPropSheet"
No help found for "hcBuildEventEditor"
No help found for "bds5:13751"
Interestingly enough, putting in: bds5:13752 results in getting back a
help page of:
ms-help://borland.bds5/devcommon/buildconfigurationmanager_xml.html
[Help2] CanShowALinkEx ALink = BDS5:13751 ANameSpace = borland.bds5
AIndex = 2 Result = 0
|
| QC# |
Project |
Area |
|
C++Builder |
IDE\Help |
| Description: |
Steps: |
error message when pressing help button in
project options for c++ app:
No help found for context |
1. create new c++ console application
2. open project options
3. press help button
//exp: help shows up
//act: error msg: no help found for context |
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
No help found when clicking button in
Project Page Options dialog |
New VCL app
Project|Project page Options
Click Help button |
43181
| QC# |
Project |
Area |
| 43181 |
Delphi |
IDE\Help |
| Description: |
Steps: |
[QC Short Description]
Pressing F1 after creating a new project doesn't work
[QC Description]
Pressing F1 after creating a new project gives the error "No help found
for context"
QC Entry 43181
|
1. Start IDE. 2. Using the mouse, select File,
New, VCL Forms Application - Delphi for Win32. Do not do anything using
the mouse after that. 3. Wait until a new VCL Forms app has been
created, press F1. EXP: Proper help on how to design a VCL Forms app.
ACT: No help found for context |
| QC# |
Project |
Area |
|
Delphi |
IDE\Help |
| Description: |
Steps: |
| Help button for Pre-Build Event dialog brings up
error: No help found for context. |
1. new VCL app for win32
2. Project | Options
3. Click on page build events
4. Click on Edit...
5. in Pre-Build Event dialog click help button
//exp: help shows up
//act. error message |
21257
| QC# |
Project |
Area |
| 21257 |
Delphi |
IDE\Help |
| Description: |
Steps: |
[QC Short Description]
Help needs to use Personality for Search Filter
[QC Description]
Help is supposed to be helpful, I should not have to scroll massive
lists of unrelated help just because the IDE doesn't bother to pass
what personality should be used for the filter.
QC Entry 21257
[HelpUpdate] |
(Simple Example) 1, Open up any personality 2.
Type some keyword like TObject 3. Hit F1 ---- Expected Behavior I see
TObject only for that Personality (Annoying Example) 1. Open up any
Personality 2. Type keyword like "Handle" 3. Hit F1. --- I shouldn't
have to scroll through 40 items that don't relate to my personality to
find the "open" call I want. |
47408
| QC# |
Project |
Area |
| 47408 |
Delphi |
IDE\Refactoring\Rename |
| Description: |
Steps: |
[QC Short Description]
Rename refactoring does not work for non-class function parameters
[QC Description]
Renaming of a Parameter that is not part of a class only renames the
parameter in the implementation section but does not rename it in the
declaration of the
procedure/function.
QC Entry 47408
|
1. start Delphi for Win 32.
2. create a new VCL application.
3. in the interface section of the form's unit (and outside of the
class), declare this function (just above the Implementation keyword):
procedure DoThat( Param1: Integer );
4. in the implementation of the unit, create the following function:
procedure DoThat( Param1: Integer );
begin
end;
5. right-click on the Param1 parameter from the declaration in the
interface section.
6. invoke the Rename refactoring and change the name to Param2.
7. the name of the parameter is changed in the implementation section,
but not in the interface.
8. invoking Rename on Param1 from the implementation for the procedure
will also not rename the parameter in the declaration of the procedure.
|
48365
| QC# |
Project |
Area |
| 48365 |
Delphi |
IDE\Start Page |
| Description: |
Steps: |
[QC Short Description]
When selecting a Newsfeed, the displayed dates of items are about a
month in the future
Example:
CodeGear Developer Days June 2007 - The Replays
C++Builder, Delphi 2007 for Win32, Delphi for PHP and InterBase
technical sessions
Posted on: Sunday, 29 July 2007
CodeGear - Delphi for Win32 - TRY IT NOW!
eDM for Delphi 2007 for Win32
Posted on: Sunday, 29 July 2007
QC Entry 48365
|
Open the IDE.
Click on 'Select Newsfeed' in the top right
Select 'Delphi'
//note the dates displayed on the items
reference the dates on the public website using regular browser
//note the date difference
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
[STRING CORRUPTION]
Message characters when I canceled Install were corruption.
(InstallAware Wizard) |
1. Run Setup.exe
2. Click Cancel Button At once (InstallAware Wizard) |
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
| When choosing View, Data Explorer from a fresh
installation of RAD Studio 2007 R2 Architect, Data Explorer shows
Object not set to an instance of an object. And there's no Ado.Net data
providers shown in Data Explorer. |
1. Install RAD Studio 2007 R2 Architect with all
features on Windows XP
2. Start IDE.
3. Choose View, Data Explorer
EXP: No errors
ACT: Object not set to an instance of an object. And there's no Ado.Net
data providers shown in Data Explorer.
Alternative steps
RAD Studio 2007 RTM Arch on Windows XP
1. Select Modify, Repair or Uninstall from RAD Studio menu on Windows
XP (assumes existing installation) and that all features are installed.
2. Select Repair, and click Next and complete the process.
3. Start IDE.
4. Choose View, Data Explorer
EXP: No errors
ACT: Object not set to an instance of an object. And there's no Ado.Net
data providers shown in Data Explorer.
|
51030
| QC# |
Project |
Area |
| 51030 |
Delphi |
Install |
| Description: |
Steps: |
[QC Short Description]
ESD Help installer & 7zip files installed to bad location -
prevents network install
[QC Description]
When the ESD installer stub is used to install Highlander, it downloads
the instal 7zip files to a location of the user's choice, then unzips
them into the Documents and settings\all users directory and continues
installation from there.
With the breakout of the help installer into a separate procedure, this
is no longer true of the help install - The installer and 7zip files
for the help system are downloaded to c:\documents and settings instead.
Because of this, If I use the install image on the network to install
to several workstations, each of the workstations must face a lengthy
download of the help system files.
There may be a way to make the help install automatically if the files
are copied to the network/external hd, but if there is it is not
obvious, and really should not be necessary.
Only obvious "solution" is to copy the Help install files from
documents and settings to each workstation prior to running install.
Install should work without such hacks.
QC Entry 51030
|
Download install.exe to a network or external
drive. Run install. Attach a different workstation to the network or
external drive Run install from second workstation Exp: Install for
second workstation will use data downloaded to the network or external
hd and will not need to download any files from the internet. Act: RAD
Studio is installed without downloading additional files from the
internet, but the Help install files are not available to the second
workstation, so it spends an additional 3.5 hours downloading them
(actual time from my workstation at work). |
| QC# |
Project |
Area |
|
C++Builder |
Install |
| Description: |
Steps: |
REGRESSION
If Rave is installed, prior to Nov 2007 update, path is removed when
you do the Nov 2007 update. Be sure to keep the path:
$(BDS)\RaveReports\Lib
If Rave is installed
------------ ORIGINAL -----------------
Build a basic C++ application with RAVE installed results in:
Unable to find package import: Rave75VCL.bpi
If you remove the reference then it builds fine.
|
+ Have a highlander RTM with Rave installed
+ Click Tools | options | Library - Win32
+ Examine library path
//exp & act: You will see $(BDS)\RaveReports\Lib in the list.
+ Install the Nov 2007 patch
+ Click Tools | options | Library - Win32
+ Examine library path
//exp You will continue to see $(BDS)\RaveReports\Lib in the list.
//act: Path is gone
+ File | New | VCL forms Application - C++ Builder
+ Project | Build
//exp: no errors:
// act:
Find Package Import
-------------------------------
Unable to find package import: Rave75VCL.bpi
Package Import: <edit box>
Remove this Ref? (checkbox)
-------------
Don't ask again OK Cancel Help |
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
Help Update Install AND Uninstall
It closes without any notification. Shouldnt we get a dialog with
'Finish' or Install Completed' for instance ?
Uninstall also do not notify when is completed. |
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
missing Intraweb_90_100.bpl and
IntrawebDB_90_100.bpl under System32
[Please check #255286] |
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
| Check for Update 3 shows up on a Highlander RTM
build and should not. |
+ Bring up a Highalnder RTM build
+ Change to swintern to get "akami" like install
+ click through the install
//exp: no notification that the Help could not be found and that users
should make sure that they are installing over an Update 3 version
//act: notifiction occurs.
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
Help Update
Add ability to detect and only install teh Update if machine has Update
3 or Highlander installation.
|
|
| QC# |
Project |
Area |
|
Delphi |
Install |
| Description: |
Steps: |
[Spacely+Highlander Update] - regression
Exception when dropping objects (connection or table) to the form.
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) |
Install Spacely + Highlander - using 'old keys'
---Update3
Run DE
drag and drop any table from DE to the form
Borland.VclDbExpress should have been included in the update for
dataexplorer functionality to work. |
| QC# |
Project |
Area |
|
Delphi |
Install\Install Execution |
| Description: |
Steps: |
| [VCL Patch] The patch install (not injection)
hangs on Vista at the "validating install" phase. |
Run the setup for the VCL patch.
At "validating install", the setup will not progress; the dialog is
responsive, but the status message will not update, and if logging is
enabled, logging will stop. |
| QC# |
Project |
Area |
|
Delphi |
Install\Registry settings |
| Description: |
Steps: |
About box show incorrect update version: It says
"october" instead of "november".
See screen dump.
|
|
| QC# |
Project |
Area |
|
Delphi |
Database |
| Description: |
Steps: |
| [November Patch] An application with a
SQLConnection fails to build with an error File not found:
'DBXClentDataSetStorage.dcu'. |
Install November patch.
New VCL Win32 app.
Drop a TSQLConnection, build.
Compiler error results. |
| QC# |
Project |
Area |
|
Delphi |
Database |
| Description: |
Steps: |
According to documents and datasheets, only 1
User / 4 Connections are available on Blackfish SQL Desktop Edition,
which comes with RAD Studio 2007 Professional Edition.
But, in fact, we can make 8 connections using client application.
Then, if we try to create 1 more connection, AV occurs.
This is As Designed?
sshaughnessy: I looked at this and was able to launch 8 DataExplorer
before getting the proper error message. The code is giving 4 more
connections than it should. 1 user gets 4 connections. I don't know
what the AV is from. Need a reproducable test case.
Tomohiro Takahashi: sorry, AV means error dialog box. |
TDBXHighlanderBugsSuite.Managed.exe
connection=BLACKFISHSQLCONNECTION -s:oTestRaid_255287
(see comment on this testcase)
-OR-
1) Install RAD Sutdio 2007 Professional Edition
2) start Blackfish SQL
3) build client application which creates one connection
4) shutdown IDE
5) run 9 applications at the same time |
26179
| QC# |
Project |
Area |
| 26179 |
Delphi |
Database\Fields Editor |
| Description: |
Steps: |
[QC Short Description]
SortFields Editor failure (on move one-by-one field)
[QC Description]
On click over the button to move one field from one side to another
side ... the field disappear on the editor form....
QC Entry 26179
[Nov Update] |
Steps: New Project (VCL Forms Application) ...
Place one SQLConnection on form .... Configure the connetion (in my
case for oracle) ... connect to database ... place one SQLDataSet ...
link the SqlDataSet.SQLConnection To SQLConnection ... set commandType
to clTable ... in CommandText select the table .... in SortFieldNames,
click in button to call the editor ... in the editor, try to add one
field to "Order by fields:" .... |
49558
| QC# |
Project |
Area |
| 49558 |
Delphi |
Database\Decision Cube
Controls |
| Description: |
Steps: |
[QC Short Description]
Applications that use Decision Cube do not compile in D2007
[QC Description]
It is a discusion in the
newsgroups.borland.com borland.public.install.delphi:18804
QC Entry 49558
|
Import and compile application that uses
decision cube |
| QC# |
Project |
Area |
|
Delphi |
Database\Drivers\InterBase |
| Description: |
Steps: |
The DBX4 InterBase driver is unable to cope with
the following query:
SELECT * from test
where * represents 206 integer columns
When the Active property is set to true, an error message "unassigned
code" is returned. Normally InterBase returns this when some buffer has
overflowed. The dbx driver would need to increase the size of this
buffer in order for the query to execute successfully. IBConsole can
successfully run this query.
Also DBX3 appears to be able to successfully run this query |
TDBXHighlanderBugsSuite.Managed.exe
connection=ibconnection -s:oTestRaid_255708
or
TDBXHighlanderBugsSuite.Native.exe connection=ibconnection
-s:oTestRaid_255708
or
1. Connect a TSQLConnection to an InterBase database of your choice.
2. Create the following table from the create statement attached.
3. Connect up a TSQLQuery component to the TSQLConnection and set the
SQL property to:
SELECT * from test
The unassigned code error is returned. |
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
CLOB field does not use UNICODE enabled field type.
TDBXValu.GetWideString method cause error at truntime.
Under Oracle server with Intl. setting, All character type filed
(include CLOB, CHAR and VARCHAR) are able to contain any character.
We have to provide GetWideString method for these field avoiding lose
Intl. characters. |
TDBXBugsSuite.Native.exe
connection=oracleintlconnection -s:oTestRaid_255910
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
DBXReader.Size does not match with field's size.
For example, DBXReader.Size should return 11 for Char(10) field, but
the shipping driver return 22.
---------------------------
Project TDBXBugsSuite.Native.exe raised exception class ETestFailure
with message 'Size: exp: 11. act: 22'.
|
TDBXBugsSuite.Native.exe
connection=oracleintlconnection -s:oTestRaid_255911
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW / Intl. Oracle server
Where clause is not able to use parameterized value if a target field
is "Char" type.
VarChar works fine.
---------------------------
Project TDBXBugsSuite.Native.exe raised exception class ETestFailure
with message 'No affect'.
|
TDBXBugsSuite.Native.exe
connection=oracleintlconnection -s:oTestRaid_255913 |
659
| QC# |
Project |
Area |
| 659 |
Delphi |
Database\DBExpress |
| Description: |
Steps: |
[QC Short Description]
Interbase driver issuing isc_commit_retaining for select statements
[QC Description]
Even with CommitRetain set to false, the driver is issuing
isc_commit_retaining for select statements. I have a simple project
that opens a parameterized query and then does an insert, with an
SQLMonitor to show the statements, as well as dumping the values of the
connection params right after connection. Here is the debugging output:
ODS: sql: INTERBASE - isc_attach_database
ODS: SQLConnection1.Params (13 elements)
ODS: ...<DriverName=Interbase>
ODS: ...<BlobSize=-1>
ODS: ...<CommitRetain=False>
ODS: ...<Database=copland:\interbasedata\maestrocfs.gdb>
ODS: ...<ErrorResourceFile=>
ODS: ...<LocaleCode=0000>
ODS: ...<Password=maestro>
ODS: ...<RoleName=RoleName>
ODS: ...<ServerCharSet=>
ODS: ...<SQLDialect=3>
ODS: ...<Interbase TransIsolation=ReadCommited>
ODS: ...<User_Name=maestro>
ODS: ...<WaitOnLocks=True>
ODS: sql: INTERBASE - isc_dsql_allocate_statement
ODS: sql: INTERBASE - isc_start_transaction
ODS: sql: select *
from TRADES
where TRADE_ID = ?
ODS: sql: INTERBASE - isc_dsql_prepare
ODS: sql: INTERBASE - isc_dsql_describe_bind
ODS: sql: INTERBASE - isc_dsql_execute
ODS: sql: INTERBASE - isc_dsql_fetch
ODS: sql: INTERBASE - isc_commit_retaining
ODS: sql: INTERBASE - isc_dsql_free_statement
ODS: sql: INTERBASE - isc_start_transaction
ODS: sql: INTERBASE - c_dsql_allocate_statement
ODS: sql: insert into "TRADES" ("TRADE_ID", "CLIENT_ID", "PRODUCT_ID",
"ORG_ID", "PERS_ID", "USER_ID", "TRADED_ON", "ENTERED_ON", "PRINCIPAL",
EVENUE_GROSS", "TRADE_STAT_ID")
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ODS: sql: INTERBASE - isc_dsql_prepare
ODS: sql: INTERBASE - isc_dsql_sql_info
ODS: sql: INTERBASE - isc_vax_integer
ODS: sql: INTERBASE - isc_dsql_describe_bind
ODS: sql: INTERBASE - isc_dsql_execute
ODS: sql: INTERBASE - isc_dsql_free_statement
ODS: sql: INTERBASE - isc_dsql_free_statement
ODS: sql: INTERBASE - isc_commit_transaction
[Nov Update] |
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress |
| Description: |
Steps: |
OracleW driver.
GetIndexColumns metadata function of DBX cause AV if dbxoraW30 driver.
Error message is:
Project TDBXBugsSuite.Native.exe raised exception class
EAccessViolation with message 'Access violation at address 02AB0000 in
module 'dbxoraW30.dll'. Write of address 02AB0000'.
|
TDBXBugsSuite.Native.exe -s:oTestRaid_255728
Project TDBXBugsSuite.Native.exe raised exception class
EAccessViolation with message 'Access violation at address 02AB0000 in
module 'dbxoraW30.dll'. Write of address 02AB0000'.
|
| QC# |
Project |
Area |
|
Delphi |
Database\DBExpress\TSQLConnection |
| Description: |
Steps: |
Customer is reporting that the TSQLConnection
component seems to have a memory leak. if dbxdrivers.ini and
dbxconnections.ini files are not available.
In TSQLConnection.DoConnect TDBXConnection.GetConnectionFactory raises
exception when ini files are not there, TDBXMemoryConnectionFactory is
then created but never freed.
This seems to be similar to QC 42824 and also RAID:248340
|
1. Create a new app.
2. Setup a SQLConnection to a interbase table
3. Add a Open and Close on FormCreate and FormClose
4. Set ReportMemoryLeaksOnShutDown to true.
procedure TForm7.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SQLConnection1.Close;
end;
procedure TForm7.FormCreate(Sender: TObject);
begin
SQLConnection1.Open;
end;
initialization
ReportMemoryLeaksOnShutdown := true;
Results:
1 - 12 bytes TDbxClosedByteReader x1
13 - 20 bytes TdbxMemoryConnectionFactory x1
37 - 44 bytes TdbxContext x 1
61 - 68 bytes TWideStringList x2 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
Cannot write Oracle NChar, or NVarchar to
database.
Trying to write NChar or NVarchar produces the following exception:
TDBXError with message 'ORA-01036: illegal variable name/number
|
Please open the TDBXBugs suite and look at test
method for this RAID entry.
TDBXBugs suite is located:
http://dtg-svn.borland.com/svn/bdstests/trunk/UnitTest/projects/database/dbexpress/Bugs
TDBXBugsSuite.Native.exe connection=oracleconnection -s:TestRaid_245660 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
Cannot write Oracle NClob to database.
Trying to write NClob produces:
TDBXError with message 'ORA-22275: invalid LOB locator specified
This was busted out per request from Raid 245660. |
See TDBXBugsSuite.Native.exe
connection=oracleconnection -soRaid_253754 |
| QC# |
Project |
Area |
|
Delphi |
Database\dbExpressCore |
| Description: |
Steps: |
| When a timestamp is inserted in a native
application into a blackfish database using the data generator, hours
does not always match when read back through a Reader. |
DataAccess.Native.exe
connection=blackfishsqlconnection -s:TestReadWriteAll
|
| 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 |
Database\Data Explorer |
| Description: |
Steps: |
Database|Modify Database menu off the database
node has trouble finding resources
[Nov Update] |
Open a Blackfish SQL employee database
select the Database|Modify Database menu
Error occurs:
System.Resources.MissingManifestResourceException: Could not find any
resources appropriate for the specified culture or the neutral culture.
Make sure "Borland.Data.Explorer.ModifyDatabaseDialog.resources" was
correctly embedded or linked into assembly "Borland.Data.Explorer" at
compile time, or that all the satellite assemblies required are
loadable and fully signed.
at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo
culture, Boolean createIfNotExists, Boolean tryParents)
at System.Resources.ResourceManager.GetResourceSet(CultureInfo culture,
Boolean createIfNotExists, Boolean tryParents)
at
System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo
culture, ResourceSet& resourceSet)
at
System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo
culture, ResourceSet& resourceSet)
at
System.ComponentModel.ComponentResourceManager.FillResources(CultureInfo
culture, ResourceSet& resourceSet)
at System.ComponentModel.ComponentResourceManager.ApplyResources(Object
value, String objectName, CultureInfo culture)
at System.ComponentModel.ComponentResourceManager.ApplyResources(Object
value, String objectName)
at Borland.Data.Explorer.ModifyDatabaseDialog.InitializeComponent() in
c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DatabasePropertiesDialog.cs:line
59
at Borland.Data.Explorer.ModifyDatabaseDialog..ctor(ConnWrapper conn)
in
c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DatabasePropertiesDialog.cs:line
25
at
Borland.Data.Explorer.DataExplorerControl.miModifyDatabase_Click(Object
sender, EventArgs e) in
c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\DataExplorerControl.cs:line
2324
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItem.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Window |
| QC# |
Project |
Area |
|
Delphi |
Database\Data Explorer |
| Description: |
Steps: |
"Confirm Password:" lable of Database|Change
Password dialog is not alligned properly.
[Nov Update] |
Open a Blackfish SQL employee database
select the Database|Change password
"Confirm Password:" overlaps the field to the right.
|
| QC# |
Project |
Area |
|
Delphi |
Database\Data Explorer |
| Description: |
Steps: |
Change password encounters exception.
[Nov Update] |
Open a Blackfish SQL employee database
select the Database|Change password
Change password and hit ok. 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.ArgumentOutOfRangeException: Index was out of range. Must be
non-negative and less than the size of the collection.
Parameter name: index
at System.Collections.ArrayList.get_Item(Int32 index)
at Borland.Data.DataStore.DataStoreParameterCollection.get_Item(Int32
index)
at
Borland.Data.DataStore.DataStoreParameterCollection.GetParameter(Int32
index)
at System.Data.Common.DbParameterCollection.get_Item(Int32 index)
at Borland.Data.Explorer.ChangePasswordDialog.btnOK_Click(Object
sender, EventArgs e) in
c:\Projects\d11\tp\database\internal\src\cs\borland\dbtools\explorer\ChangePasswordDialog.cs:line
128
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)
|
| 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 |
VCL |
| Description: |
Steps: |
(Patch3)
After apply Patch on Spacely RTM, Running application will cause IDE
shrink size even thought IDE still in Maximize mode. Try to resize IDE,
the mosue cursor behave strange, please see steps |
1. Install Spacely RTM
2. Start IDE
3. File | New | VCL Application
4. Run
// notice: when IDE switch to debug mode, IDE size do not change
5. Close IDE
6. Install Patch3
7. Start IDE
8. File | New | VCL Application
9. Run
// notice this time, IDE change the size, even window still show
"Maximize" button
10. Use mouse to resize IDE
// mouse cursor position JUMP to Form Designer
note: without running application, just change IDE layout will
reproduce this problem |
| QC# |
Project |
Area |
|
Delphi |
VCL |
| Description: |
Steps: |
| Shown dialog will show in TaskManager in
Application tab on Vista |
1. File | New | VCL Application
2. drop a TButton and TColorDialog
3. double click Button1 for OnClick event
4. add code as:
ColorDialog1.Execute;
5. Run, click the Button
// ColorDialog show
6. run TaskMan
7. click Application tab
// there is an item name "color", you can max/min/kill it.
|
52256
| QC# |
Project |
Area |
| 52256 |
Delphi |
VCL\Core VCL
Classes\TApplication |
| Description: |
Steps: |
Taskbar button is not hidden when the MainForm
is hidden and MainFormOnTaskbar is False.
Regression. |
* File New VCL Application
* Drop a button on the form
* In the OnClick handler, enter "Hide;"
* View | Project Source
* Set Application.MainFormOnTaskbar := False;
* Run, click on the button
// Exp: The taskbar button is hidden
// Act: The taskbar button is still visible |
51831
| QC# |
Project |
Area |
| 51831 |
Delphi |
VCL\Core VCL
Classes\TWinControl |
| Description: |
Steps: |
[QC Short Description]
Edit, Memo, ComboBox, ... context menus are not displayed anymore
[QC Description]
The fix for QC 42752 broke the default context menus for TEdit, TMemo,
TComboBox and all other windows controls with a default popup menu.
QC Entry 51831
|
1. Create a new VCL application 2. Drop a TEdit
on the form 3. Start the application 4. Right click on the edit
Expected: The Cut/Copy/Paste/Delete popup menu appears Actual: Nothing
happens because the "Exit" in the TWinControl.DefaultHandler stops the
processing of WM_CONTEXTMENU |
46134
| QC# |
Project |
Area |
| 46134 |
Delphi |
VCL\Dialog
Controls\TOpenDialog |
| Description: |
Steps: |
[QC Short Description]
TOpenDialog under Vista Breaks doShareAware
[QC Description]
If you are running Vista, and use the TOpenDialog, and rely on the
ofShareAware option, this is broken with Delphi 2007.
If you try to open a file that is in use, under Vista, with
ofShareAware set to true, you get a dialog showing "Not implemented".
This can be tracked down to the code in Dialogs.pas:
1 - At the beginning of TOpenDialog.DoExecute, if Vista is being used,
wrappers around the new FileDialogs are used
2 - These wrappers are created, and there properties assigned from the
standard TOpenDialog (which skips OnShareViolation)
3 - The code in TFileDialogEvents.OnShareViolation checks to see if
OnShareViolation is assigned and, if not, results in E_NOTIMPL
The sum of these parts is that, if you use a TOpenDialog, even with
ofShareAware set, you will be completely unable to select in-use files.
QC Entry 46134
|
Create an application with a TOpenDialog and a
TButton. Set TOpenDialog.Options.foShareAware to True In the button's
click handler, call OpenDialog.Execute Run the program Click the Button
Try to select a file that would normally raise a share violation
Expected: Select the file, ignoring the share violation Actual: A
warning dialog is displayed with the file name followed by "Not
implemented" |
| QC# |
Project |
Area |
|
Delphi |
VCL\Standard Controls\TLabel |
| Description: |
Steps: |
Vista / Aero / DBCS
Under Vista / Aero
Tlabel on GlassFrame does not draw correctly if a caption contains DBCS
character.
See attached screen shot.
TSpeedButton has a same problem. |
See attached project and screen shot on
Vista/Aero |
51845
| QC# |
Project |
Area |
| 51845 |
Delphi |
VCL\Standard
Controls\TMainMenu |
| Description: |
Steps: |
[QC Short Description]
TMainMenu not painted in form designer on Vista with Standard or
Classic scheme
[QC Description]
On Vista (x64) the TMainMenu is not painted in the form designer if the
scheme is Standard of Classic. Not Painted means the space for the menu
is reserved, but you see at the position where the menu should appear
what was at this position before you switched to the form designer.
The same issue exists for VCL.NET projects.
With the Aero or Vista Basic scheme or with D2007 Update 1 on W2k
everything is okay.
I've attached an example project and two images.
QC Entry 51845
|
- on Vista (x64) select the color scheme
"Standard" or "Classic" - start Highlander - open the example project
(or create a new VCL Forms Application, add a TMainMenu and add some
items) expected: - the main menu with the items is visible actual: -
the main menu is not visible -> see image
QC*MainMenuInDesignerWithVistaStandard.png - close Highlander
(otherwise QC 49128 (RAID: 252631) "Switching Windows designs may
destroy the IDE layout" would occur) - switch the color scheme to
"Vista Basic" or "Aero" - start Highlander - open the example project
(or create a new VCL Forms Application, add a TMainMenu and add some
items) expected: - the main menu with the items is visible actual: -
the main menu with the items is visible (as expected) -> see image
QC*MainMenuInDesignerWithVistaAero.png |
52671
| QC# |
Project |
Area |
| 52671 |
Delphi |
VCL\Standard
Controls\TMainMenu |
| Description: |
Steps: |
Under Vista with Theme, if TMenuItem has DBCS
character in caption, and the menu item has a bitmap, Unexpected
garbage characters are displayed.
Spacely/Cogswell works fine.
See attached bitmap.
255408-XPCompatible-mode is what I expected.
255408-Vista is actual result.
Some rare case, The application cause AV.
[See. 255411] |
|
| QC# |
Project |
Area |
|
C++Builder |
VCL\Emulation Classes |
| Description: |
Steps: |
From: "Daryl" <devaccount@hotmail.com>
Newsgroups: borland.public.cppbuilder.non-technical
Sent: Thursday, July 05, 2007 12:41 AM
Subject: Linker error after applying HOTFIX13
I have just applied HOTFIX13 and an application that automates EXCEL now
has
a linker error - can anyone please help with how to get rid of it.
thanks
daryl
[Linker Error] Error: Unresolved external '__fastcall
System::Variant::operator =(wchar_t *)' referenced from C:\PROGRAM
FILES\BORLAND\BDS\4.0\LIB\BCBOFFICE2K.LIB|Excel_2K_SRVR.cpp
We need to pull the office package files from the HF 13 build tree. |
|
| QC# |
Project |
Area |
|
Delphi |
Debugger\Stepping |
| Description: |
Steps: |
If you have "minimize on run" selected in Tools
| Options | Environment Options and try to debug a program with two
breakpoints set, the IDE stops on first breakpoint but when you press
F9 to stop on the next breakpoint the IDE does not maximize but remains
down on the taskbar.
You must then click on the taskbar icon in order to bring up the IDE.
|
1. Extract attached files and open up the
project in Rad Studio.
2. In Rad Studio, select Tools | Options | Environment Options and
select "Minimize On Run".
3. In MinimizeU.pas, place a breakpoint on line 31 and line 37.
4. Hit F9 to launch the app from within the IDE.
5. Click the button.
6. First breakpoint is hit so hit F9 again to run the app to the next
breakpoint.
exp: IDE should maximize and cursor should be at line 37.
act: IDE remains minimized. |
| QC# |
Project |
Area |
|
Delphi |
Debugger\CPU |
| Description: |
Steps: |
| After closing and reopening the CPU view,
attempting to use the main IDE window to search in either the
disassembly or dump panes causes an access violation |
Create a delphi win32 console app
F8 to step
View | Debug Windows | CPU Windows | Entire CPU
Focus either the dump pane or the disassembly pane
Seelct Search | Find from the main IDE menu
Close the CPU Search bytes dialog
Close the CPU view
View | Debug Windows | CPU Windows | Entire CPU to reopen it
Focus either the dump pane or the disassembly pane
Seelct Search | Find from the main IDE menu
Exp: the Enter Search Bytes dialog comes up
Act: Access violation |
42695
| QC# |
Project |
Area |
| 42695 |
Delphi |
Internet |
| Description: |
Steps: |
[QC Short Description]
CGI WebService on Windows Vista / IIS 7.0 Fails
[QC Description]
I tried to register a CGI WebService on Windows Vista / IIS 7.0 and the
fowlling error appears :
HTTP 502.2 - Bad Gateway
If this WebService is converted into ISAPI WebService, it works fine.
QC Entry 42695 |
One hack to workaround this is to turn off IO
checks here:
TCGIApplication.Run;
begin
...
+ {$I-} Reset(Input); {$I+}
+ IOResult;
...
end
I've verified this hack at least lets the CGI startup and run without
the mentioned 502 error, but this probably isn't the best fix. For more
discussion/steps see:
http://qc.borland.com/wc/qcmain.aspx?d=42695
----
cwchua's workaround: Add VistaCGIApp.pas to a CGI application and it
would work on Vista.
I've attached VistaCGIApp.pas to this RAID.
Note that one web action item needs to have it's default property
enabled. Otherwise, if there are no PathInfo matches, the CGI would
still return 502.2 on Vista.
|
15265
| QC# |
Project |
Area |
| 15265 |
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
[QC Short Description]
IXMLNode converts xs:boolean to False where it should be false
[QC Description]
I generated an interface from an XML schema. The type type="xs:boolean"
creates a boolean property in the interface.
When I create an XML document from this interface the boolan values are
set to False where this should be false.
see also http://www.w3.org/TR/xmlschema-2/#boolean
QC Entry 15265
|
(see attached project) - Create an XSD with an
attribute type="xs:boolean" - Use the databinding wizard to create an
interface - create an XML document from the interface |
| QC# |
Project |
Area |
|
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
| Exception when clicking on elements of "Schema
Components" |
Create a Delphi project.
File | New | Other | Xml | Xml Data Binding
Find a schema file.
Next
Click on any schema component (complex or simple type)
-- exception (something about 'has no single text node') |
| QC# |
Project |
Area |
|
Delphi |
Internet\XML\Data Binding |
| Description: |
Steps: |
| Duplicate property getters and declarations in
binding produced from Microsoft.Build.Core.xsd |
Create a new Delphi app.
File | New | Other | Xml | Xml Data binding
Point at
c:\windows\microsoft.net\framework\v2.0.50727\MSBuild\Microsoft.Build.Core.xsd
Finish the wizard so you get Microsoft.Build.Core.pas
Project | Compile.
-- errors because of duplicate getters and prop decls. |
47225
| QC# |
Project |
Area |
| 47225 |
Delphi |
Compiler |
| Description: |
Steps: |
[QC Short Description]
Compilation 7 times slower after installing update 1!
[QC Description]
After installing update 1 there is a significant delay after selecting
|compile project".
In Original version everything works fine. After some changes in a
large project (3mln lines) compilation starts immediately and completes
in about 20 sec.
After installing update 1 it takes 155 second. After selecting "compile
project" processor utilization hits 100% and IDE hangs for 1 minute
before anything in compile window happens.
I run Vista on 2 dual core Xeon processors and 4GB RAM.
QC Entry 47225
|
Load large project. Change some code and select
Compile Project. |
51456
| QC# |
Project |
Area |
| 51456 |
C++Builder |
Compiler\C++ |
| Description: |
Steps: |
[QC Short Description]
Internal Compiler error
[QC Description]
Compiling file, ClassFileStream.cpp(429) Internal compiler error at
0x609ec22 with base 0x6010000
QC Entry 51456
5.6.1: compiles fine
5.8.3.1 : compiles fine
5.9.1: compiles fine (rev 107)
5.9.2 ICE (cppbinaries rev 118)
5.A ICE
|
VIEW COMMENT for simplify steps
1.bcc32 -D_DEBUG;NO_STRICT;_RTLDLL -vG -c -v -w- ClassFileStream.cpp
[ if -vG AND __RTLDLL is removed from the command line then there is no
ICE ]
CodeGear C++ 5.92 for Win32 Copyright (c) 1993, 2007 CodeGear
..\Common\ClassFileStream.cpp:
Fatal F1004 \ClassFileStream.cpp 429: Internal compiler error at 0x4931
96 with base 0x400000 in function FileStream::Open(const char *,const
char *,bool)
Fatal F1004 ..\Common\ClassFileStream.cpp 429: Internal compiler error
in function FileStream::Open(const char *,const char *,bool)
OLD STEPS
Using subversion download the open source project
http://code.google.com/p/crylib/source version 99. (latest as of this
time).
Open the classbuilder project (CryLib\crylib\src\Borland) and build it.
The code looks pretty simple to me. But it dies consistantly at this
point. |
20137
| QC# |
Project |
Area |
| 20137 |
C++Builder |
Compiler\C++ |
| Description: |
Steps: |
[QC Short Description]
[C++ Error] xmemory(53): E2045 Destructor name must match the class name
[QC Description]
Fails to compile a very basic code. See the steps for details.
QC Entry 20137
|
bcc32 -c 233254.cpp
//exp : clean compile
//res : errors
Error E2045 d:\borland\dexter\include\dinkumware\xmemory 53: Destructor
name must match the class name in function void
_Destroy<complex<float> >(complex<float> *)
Error E2045 d:\borland\dexter\include\dinkumware\xmemory 53: Destructor
name must match the class name in function void
_Destroy<complex<float> >(complex<float> *)
pointing at this
template<class _Ty> inline
void _Destroy(_Ty *_Ptr)
{
(_Ptr)->~_Ty();
} |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End |
| Description: |
Steps: |
New Plum Hall test fails
342Y2_13c_s
ADL test fails to compile |
1. bcc32 -c -A 242887.cpp
//exp : clean compile
//res :
Error E2268 242887.cpp 28: Call to undefined function 'f' in function
main() |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front End |
| Description: |
Steps: |
| we don't detect the presence of a copy
constructor that takes a cosnt reference if a copy constructor that
takes a nonconst reference is present. |
1. bcc32 -c 230383.cpp
//exp : clean compile
//res : error
Error E2285 230383.cpp 14: Could not find a match for 'ap::ap(const
ap&)' in function main()
2. bcc32 -c -DWORKAROUND 230383.cpp
//this works |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
| Attempt to destroy invalid object when an
exception is thrown after new'ing an object and creating a stack based
object in a constructor. |
1. bcc32 239998.cpp
2. 239998.exe
//exp : constructor and destructor counts and addresses match
//res :
operator new() returned 008733F8
Class2 at 0012FF08
operator new() returned 00873424
throw
~Class3 at 00873424 (invalid, object does not exist)
Ctor/dtor counts match.
Ctor/dtor addresses DO NOT match. |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
Runtime bug in exception handling. Four objects
are constructed, only three are destructed. The last object is never
destroyed, which could have extremely serious consequences, depending
on behavior of object destructor.
Output:
D:\bugs>bug19
Object constructor: 0012FF80
Object constructor: 0012FF58
Copy constructor0012FF50
Copy constructor007D340E
destructor: 0012FF58
destructor: 007D340E
destructor: 0012FF80
1
The final int in the output is the number of undestroyed objects.
One interesting result I found by experimentation is that if the
constructor of Object takes a char const * instead of the std::string
reference, the leak is gone!
(What's the parameter got to do with cleanup?)
The worst part about this is that the leak is very subtle, and most
people wouldn't notice that it's not destructing the object, but may
wonder why their application is behaving oddly.
(Does this belong in "backend" category?) |
bcc32 120869.cpp
120869.exe
//res:
Object constructor: 1245056
Object constructor: 1244984
Copy constructor1244976
Copy constructor10501574
destructor: 10501574
destructor: 1245056
2
//exp:
Object constructor: 0012FF6B
Object constructor: 0012FF27
Copy constructor0012FF07
destructor: 0012FF27
destructor: 0012FF07
destructor: 0012FF6B
0 |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
Returning a local object and binding a const
reference to the return is this case causes a runtime crash.
//#define TRACE_UNWIND_BUG
#ifdef TRACE_UNWIND_BUG
#include <iostream>
#include <iomanip>
using namespace std;
#endif
class foo
{
public:
foo();
foo(const foo&);
~foo();
enum { data_size = 10000 };
private:
foo& operator=(const foo&);
#ifndef TRACE_UNWIND_BUG
private:
char* data;
#endif
};
foo::foo()
#ifndef TRACE_UNWIND_BUG
: data(new char[data_size])
#endif
{
#ifdef TRACE_UNWIND_BUG
cout << "foo::foo(\"this = 0x" << hex << this
<< ")" << endl;
#endif
}
foo::foo(const foo&)
#ifndef TRACE_UNWIND_BUG
: data(new char[data_size])
#endif
{
#ifdef TRACE_UNWIND_BUG
cout << "foo::foo(const foo&\"this = 0x" << hex
<< this << ")" << endl;
#endif
}
foo::~foo()
{
#ifdef TRACE_UNWIND_BUG
cout << "foo::~foo(\"this = 0x" << hex << this
<< ")" << endl;
#else
for(unsigned i = 0; data_size != i; ++i) {
data[i] = i % 128;
}
delete [] data;
#endif
}
foo get_foo()
{
return foo();
}
void test_unwind(unsigned i)
{
foo f1;
if(0 == i) {
const foo& f2 = get_foo();
#ifdef TRACE_UNWIND_BUG
cout << "throw" << endl;
#endif
throw 1;
}
foo f3;
test_unwind(--i);
}
int main()
{
try {
test_unwind(2);
}
catch(...) {
}
}
|
bcc32 -DTRACE_UNWIND_BUG 159056.cpp
159.056.exe
//act:
foo::foo("this = 0x12ff48)
foo::foo("this = 0x12ff40)
foo::foo("this = 0x12fef8)
foo::foo("this = 0x12fef0)
foo::foo("this = 0x12fea8)
foo::foo("this = 0x12fe98) <====
throw
foo::~foo("this = 0x12fea0) <====
foo::~foo("this = 0x12fea8)
foo::~foo("this = 0x12fef0)
foo::~foo("this = 0x12fef8)
foo::~foo("this = 0x12ff40)
foo::~foo("this = 0x12ff48)
< then may crash with AV >
//exp: (from VC6)
foo::foo("this = 0x0012FF44)
foo::foo("this = 0x0012FF48)
foo::foo("this = 0x0012FF18)
foo::foo("this = 0x0012FF1C)
foo::foo("this = 0x0012FEEC)
foo::foo("this = 0x0012FEE4)
throw
foo::~foo("this = 0x0012FEE4)
foo::~foo("this = 0x0012FEEC)
foo::~foo("this = 0x0012FF1C)
foo::~foo("this = 0x0012FF18)
foo::~foo("this = 0x0012FF48)
foo::~foo("this = 0x0012FF44) |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
| This code gets an access violation because of
invalid stack unwinding. |
bcc32 168852.cpp
168852.exe
//act: crashes
//exp: runs, returns 0 |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
| attached code incorrectly calls the desctructor
of a partially constucted object when an exception is thrown. |
1. bcc32 218689.cpp
2. 218689.exe
//exp : output :
BEGIN
END
//res : output :
BEGIN
ERROR CALL !!!
END |
18550
| QC# |
Project |
Area |
| 18550 |
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
A continue in a catch block (that is nested
inside a for loop), where the catch argument is a class by value,
causes that catch argument not to be destructed. Something like:
for (int i=0; i<1; i++)
{
try
{
throw foo();
}
catch( foo bar)
{
continue;
}
}
causes "bar" not to be destructed. [QC Entry 18550] |
bcc32 72199.cpp
72199.exe
//act:
failed
//exp:
passed
|
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
Plumhall c++ _154Y15F
worked fine with svnversion 22005
fails with 22037
|
C:\TESTSCPP\bcc\harness\bcctests>bcc32
-I%PHSRC%;%PHDST%;plumhall/conform
plumhall\conform\t15b.dir\_154Y15f.cpp
CodeGear C++ 5.A0 for Win32 Copyright (c) 1993, 2007 CodeGear
plumhall\conform\t15b.dir\_154Y15f.cpp:
Turbo Incremental Link 5.80 Copyright (c) 1997-2007 CodeGear
C:\TESTSCPP\bcc\harness\bcctests>bcc32 -v
-I%PHSRC%;%PHDST%;plumhall/conform pl
umhall\conform\t15b.dir\_154Y15f.cpp
CodeGear C++ 5.A0 for Win32 Copyright (c) 1993, 2007 CodeGear
plumhall\conform\t15b.dir\_154Y15f.cpp:
Turbo Incremental Link 5.80 Copyright (c) 1997-2007 CodeGear
C:\TESTSCPP\bcc\harness\bcctests>svnversion
22005M |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
| Destructor is never called for a static object
constructed before a dynamic object that throws an exception in its
constructor. |
bcc32 77585.cpp
77585.exe
//act:
MyObject ctor: 1245056
MyThrower dtor: 8074056
Caught const char *
MyObject dtor: 1245056
//exp:
MyObject ctor: 1245036
Caught const char *
MyObject dtor: 1245036 |
4662
| QC# |
Project |
Area |
| 4662 |
C++Builder |
Compiler\C++\Front
End\Exception Handling |
| Description: |
Steps: |
[QC Short Description]
exception in loop
[QC Description]
Incorrect sequence catch.
see Steps
QC Entry 4662
void try_test() {
try {
for(int i = 0; ; i++) {
try {
break;
} catch(exception &e) { // we break to here
cout<<"exception in loop"<<endl;
if(i > 10)
throw;
}
}
ThrowMyException();
} catch(exception &e) {
cout<<"to catch a exception"<<endl;
}
} |
1. bcc32 237281.cpp
2. 237281.exe
//exp :
to catch a exception
//res :
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
exception in loop
to catch a exception
|
20386
| QC# |
Project |
Area |
| 20386 |
C++Builder |
Compiler\C++\Front
End\Language |
| Description: |
Steps: |
[QC Short Description]
The alternative tokens "and", "or" and "not" etc. are missing.
[QC Description]
The alternative tokens "and", "or" and "not" etc. are missing.
According to the C++ standard, section 2.6, they are required.
QC Entry 20386
|
python runplumhall -d 25Y22a |
18519
| QC# |
Project |
Area |
| 18519 |
C++Builder |
Compiler\C++\Front
End\Language |
| Description: |
Steps: |
| The compiler doesn't allow static_cast<void
*>(p) where p is a pointer to an incomplete type. [QC Entry 18519] |
1. bcc32 -c t.cpp
exp: compile to succeed
act: error in function f2. |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Language |
| Description: |
Steps: |
Note that this is a duplicate of 6564. I take
this as a suggestion that this should work even without -A.
--- original text ---
The current C++ specification indicates that static arrays of char
(i.e., string literals) decay to const char*. In Thunder, they're still
char*.
|
[ANSI]
Original WebBTS #: 6709
void foo(char*) { cout << "char*" << endl; }
void foo(const char*) { cout << "const char*" << endl; }
int main(int, char **)
{
foo("hello");
}
|
18729
| QC# |
Project |
Area |
| 18729 |
C++Builder |
Compiler\C++\Front
End\Preprocessor |
| Description: |
Steps: |
| Using -Sd with CPP32 the first few lines of the
file (showing builtin defines) are only terminated with a newline while
the rest of the file uses carriage return/newline. [QC Entry 18729] |
cpp32 -Sd 62191.c
tdump -h 62191.i | grep "2F 0A 2F"
//res:
{ many lines with the pattern "2F 0A 2F" /<LF>/ }
//exp:
{ no lines matching pattern "2F 0A 2F" } |
18982
| QC# |
Project |
Area |
| 18982 |
C++Builder |
Compiler\C++\Front
End\Templates |
| Description: |
Steps: |
| BCB doesn't allow pointers to members to be used
as template parameters. [QC Entry 18982] |
new steps:
1. bcc32 61808.cpp
//exp: clean compile
//res :
Error E2272 61808a.cpp 14: Identifier expected in function main()
Error E2188 61808a.cpp 14: Expression syntax in function main()
Error E2299 61808a.cpp 14: Cannot generate template specialization from
'Bar<T>' in function main()
Error E2379 61808a.cpp 16: Statement missing ; in function main()
*** 4 errors in Compile ***
|
18649
| QC# |
Project |
Area |
| 18649 |
C++Builder |
Compiler\C++\Front
End\Templates |
| Description: |
Steps: |
| The compiler will not call an explicit
specialization of a function template for const char * types. [QC Entry
18649] |
bcc32 76968.cpp
76968.exe
//res:
Hey, you just called the primary template
15
Hey, you just called the primary template
bob
failed
//exp:
Hey, you just called the primary template
15
Special version for const char *
hello
passed |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Templates |
| Description: |
Steps: |
Boost library finds that template function type
deduction does not omit top-level constness as it should:
template<class T>
void f(T x)
{
x = 1; // works
(void) &x;
T y = 17;
y = 20; // "Cannot modify a const object in function f(int)"
(void) &y;
}
int main()
{
const int i = 17;
f(i);
} |
bcc32 -c 123610.cpp
//act:
Error E2024 123610.cpp 7: Cannot modify a const object in function
f<const int>(int)
//exp: no diagnostics |
| QC# |
Project |
Area |
|
C++Builder |
Compiler\C++\Front
End\Initialization |
| Description: |
Steps: |
Ansi C++ 12.8(3) says that " A member function
template is never instantiated to perform the copy of a class object to
an object of its class type"
While testing this using the given example, compiler
reports "no error" where it should.
Note: cl pass
bcc fail
gcc pass |
bcc32 93260.cpp
//res:
no error
//exp:
93260.cpp(6) : error C2893: Failed to specialize function template
'__thiscall S::S(T)'
With the following template arguments: 'struct S' |
18784
| QC# |
Project |
Area |
| 18784 |
C++Builder |
Compiler\C++\Front
End\Overloading |
| Description: |
Steps: |
BCB doesn't find the conversion sequence Foo
-> void (Foo::*)() -> bool in the following code.
struct Foo;
typedef void (Foo::*FooP)();
struct Foo
{
operator FooP(){};
};
int main()
{
Foo foo;
foo || true;
true || foo;
return 0;
} [QC Entry 18784] |
bcc32 64564.cpp
//res:
Error E2094 64564.cpp 12: 'operator||' not implemented in type 'Foo'
for arguments of type 'bool' in function main()
Error E2096 64564.cpp 13: Illegal structure operation in function main()
//exp: no errors |
18637
| QC# |
Project |
Area |
| 18637 |
C++Builder |
Compiler\C++\Front
End\Overloading |
| Description: |
Steps: |
ANSI 13.5.3 section 2. The code in the standard
is not correctly executed. Specifically, the statement
dobj1 = dobj2; is supposed to call the implicitly generated
operator=(const D&) but it incorrectly calls the user-defined
operator(const B&).
struct B {
virtual int operator= (int) { }
virtual B& operator= (const B&) { }
};
struct D : B {
virtual int operator= (int) { }
virtual D& operator= (const B&) { }
};
int main (void) {
D dobj1;
D dobj2;
B* bptr = &dobj1;
bptr->operator=(99); // calls D::operator=(int)
*bptr = 99; // ditto
bptr->operator=(dobj2); // calls D::operator=(const B&)
*bptr = dobj2; // ditto
// **** BCB doesn't do the following correctly ****
dobj1 = dobj2; // calls implicitly declared
// D::operator=(const D&)
} [QC Entry 18637] |
Paste the following code into a console
application. Notice that the final line of main executes the wrong
operator=.
struct B {
virtual int operator= (int) { }
virtual B& operator= (const B&) { }
};
struct D : B {
virtual int operator= (int) { }
virtual D& operator= (const B&) { }
};
int main (void) {
D dobj1;
D dobj2;
B* bptr = &dobj1;
bptr->operator=(99); // calls D::operator=(int)
*bptr = 99; // ditto
bptr->operator=(dobj2); // calls D::operator=(const B&)
*bptr = dobj2; // ditto
// **** BCB doesn't do the following correctly ****
dobj1 = dobj2; // calls implicitly declared
// D::operator=(const D&)
}
|
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\Other
Compiler |
| Description: |
Steps: |
RLINK32 error when building the vclactnband
package in the VCL directory.
It seems to be unable to find dfm files (although they exist). |
* Go to <TP>\vcl
* Run "msbuild clean debug"
//Exp: Build succeeds
//Act: Error: E2161 RLINK32: Error opening file
"..\clr\vcl\actman\CustomizeDlg.dfm" |
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\Finalization |
| Description: |
Steps: |
| Application does not unload from Memory when
terminating, when loading two or more DLLs, using ShareMem (cannot
check against SimpleShareMem, see #255157) and run-time packages. |
1. Start a new Win32 VCL Delphi application
2. Add 2 DLL Projects to the Project Group
3. Save all as "AH01.dpr", "AH02.dpr" and "AH03.dpr" respectivly, name
the Form "FormMain.pas"
4. For each project go to project options -> Packages
Set the tick for using run-time packages
Add "vcl;rtl" for the run-time packages to use
5. Go to each projects DPR-Source file and add "ShareMem" as first unit
to the uses clause
6. To the Main Form of AH01.DPR add two buttons.
7. In the OnClick Event-Handler of the first button write
LoadLibrary('AH02.DLL');
LoadLibrary('AH03.DLL');
8. In the OnClick Event-Handler of the second button write
Close;
9. Compile all projects and run the EXE
10. Click Button 1 - both DLLs are loaded
11. Click Button 2 - application (seems to) terminate
12. Run the Windows Task Manager (CTRL+SHIFT+ESC) and goto "Processes"
page. Order processes by name and look for "AH01.EXE", this should not
be there, but is.
Note: Example Project attached to report.
Note: Make sure you are NOT using the debug version of the memory
manager, as doing so will mask this issue (do a "msbuild nodebugmem"
from the tp\rtl directory if you're using the dev build)
|
| QC# |
Project |
Area |
|
Delphi |
Compiler\Delphi\String
Resources |
| Description: |
Steps: |
Delphi compiler generates .drc files with bad
identifiers. This prevents the .drc files from getting compiled with
the resource compiler and consequently breaks the localized builds.
For example:
Highlander RTM:
#define Borland_Vcl_Design_MnuConst_SInvalidNumber 65504
Current Highlander trunk:
#define Borland.Vcl.Design.MnuConst_SInvalidNumber 65504
This causes the localized build to break with the following errors:
D:\dev\tp\tools\MSNET2.0\rc vclmenudesigner.tran.drc
vclmenudesigner.tran.drc(10): error RC2008: '.' : unexpected in macro
definition
vclmenudesigner.tran.drc(11): error RC2008: '.' : unexpected in macro
definition
vclmenudesigner.tran.drc(11): warning RC4005: 'Borland' : redefinition
.
.
.
vclmenudesigner.tran.drc(38): error RC2008: '.' : unexpected in macro
definition
vclmenudesigner.tran.drc(38): warning RC4005: 'Borland' : redefinition
D:\dev\tp\app\design\i18n\de\RCa02696(78): fatal error RC1116: RC
terminating after preprocessor errors
|
|
| QC# |
Project |
Area |
|
C++Builder |
RTL\Delphi |
| Description: |
Steps: |
Adding a Form to a library results in a compiler
error
// works in BCB6 |
Create a new C++ library
add a form
build
[C++ Error] Project1.cpp(1): E2303 Type name expected
[C++ Error] Project1.cpp(1): E2034 Cannot convert 'char *' to 'int'
[C++ Error] Project1.cpp(1): E2293 ) expected |
51727
| QC# |
Project |
Area |
| 51727 |
Delphi |
RTL\Delphi\RTL Exceptions |
| Description: |
Steps: |
[QC Short Description]
Halt in except block causes messagebox at program termination
[QC Description]
If you call Halt in an except block, a message box pops up that shows
the last exception. Even EAbort exceptions are shown.
In a console application it shows the exception in ErrOut.
The _Halt0 function should release the ExceptObject before entering the
FinalizeUnits loop.
QC Entry 51727
|
1. Create a new VCL application 2. Add the
following code to the OnCreate handler try Abort; except On E:
Exception do Halt(1); end; 3. Start the application Expected: The
application terminates Actual: The application shows "Exception EAbort
in module Project4.exe at 00049F63. Operation aborted." |
52905
| QC# |
Project |
Area |
| 52905 |
Delphi |
RTL\Delphi\File Management |
| Description: |
Steps: |
[QC Short Description]
FileExists does not work for open files with share_exclusive
[QC Description]
The FileExists function does not work for files that are opened in
SHARE_EXCLUSIVE mode (like the pagefile.sys).
FileExists('C:\pagefile.sys') always return False instead of True.
QC Entry 52905
|
1. Create a new VCL application
2. Write the following into the Form's OnCreate handler:
begin
if FileExists('C:\pagefile.sys') then
ShowMessage('OK')
else
ShowMessage('Failed');
end;
Expected:
A "OK" dialog is displayed
Actual:
A "Failed" dialog is displayed
Andreas included this workaround/new version for the RTL:
function FileExists(const Filename: string): Boolean;
function FailSafe(const Filename: string): Boolean;
var
FindData: TWin32FindData;
h: THandle;
begin
{ Either the file is locked/share_exclusive or we got an access denied }
h := FindFirstFile(PChar(Filename), FindData);
if h <> 0 then
begin
Windows.FindClose(h);
Result := FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0;
end
else
Result := False;
end;
var
Code: Integer;
LastError: Cardinal;
begin
Code := Integer(GetFileAttributes(Pointer(FileName)));
if Code <> -1 then
Result := (FILE_ATTRIBUTE_DIRECTORY and Code = 0)
else
begin
LastError := GetLastError();
Result := (LastError <> ERROR_FILE_NOT_FOUND) and
(LastError <> ERROR_PATH_NOT_FOUND) and
FailSafe(Filename);
end;
end; |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
errno is not available in <cerrno>.
C++ 19.3.2
The contents are the same as the Standard C library header
<errno.h>, except that errno shall be defined as a macro. |
bcc32 -c 248624.cpp
Should compile |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
setjmp() isn't available as a macro
C++ 17.4.1.2.5
Names which are defined as macros in C shall be defined as macros in
the C++ Standard Library, even if C grants license for implementation
as functions. [ Note: the names defined as macros in C include the
following: assert, offsetof,setjmp, va_arg, va_end, and va_start. --
end note ] |
bcc32 -c 248623.cpp
Should compile |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++ |
| Description: |
Steps: |
Plum Hall test fails to compile
_214Y21db
// snip
#define CSTD std::
#include <cstdio>
int main()
{
CSTD FILE *tf = CSTD fopen("foo.txt", "w+");
CSTD feof(tf); // error here
return 0;
}
// QA notes:
been busted since BCB6
Comeau doesn't like it
VC has deprecated fopen |
1. bcc32 -c -w- 243601.cpp
//exp : clean compile
//res :
Error E2272 243601.cpp 12: Identifier expected in function main()
Error E2379 243601.cpp 12: Statement missing ; in function main()
//note: erroneous line expands to
std:: ((tf)->flags & 0x0020); |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STL |
| Description: |
Steps: |
| Numerous warnings in the dinkumware headers when
compiling with -vi- -w. |
//simple case:
bcc32 -vi- -w 222801a.cpp
//original case from real world:
bcc32 -vi- -w 222801.cpp
//res:
222801.cpp:
Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 438(3):
Possible use of
'_Cat' before definition in function std::_Ptr_cat(bool *,bool *)
Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 444(3):
Possible use of
'_Cat' before definition in function std::_Ptr_cat(const bool *,bool *)
Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 450(3):
Possible use of
'_Cat' before definition in function std::_Ptr_cat(char *,char *)
Warning W8013 c:\dev\bds\4.0\include\dinkumware\xutility 456(3):
Possible use of
'_Cat' before definition in function std::_Ptr_cat(const char *,char *)
.
.
.
//exp: no diagnostics |
52778
| QC# |
Project |
Area |
| 52778 |
C++Builder |
RTL\C++\STL |
| Description: |
Steps: |
[QC Short Description]
<vector> calls undefined function '_Debug_get_cont'
[QC Description]
The Dinkumware vector header calls the undefined function
_Debug_get_cont if iterator debugging is enabled.
Compile the following program:
#define _HAS_ITERATOR_DEBUGGING 1
#include <vector>
int main ()
{
std::vector<int> v, v2;
v.insert(v.begin(), v2.begin(), v2.end());
}
QC Entry 52778
|
Download attachment bcc32 -c qc52778.cpp
Expected: clean compile Actual results: Error E2268 C:\Program
Files\CodeGear\RAD Studio\5.0\\Include\dinkumware\vector 805: Call to
undefined function '_Debug_get_cont' in function void
vector<int,allocator<int>
>::_Insert<_Vector_iterator<int,allocator<int> >
>(_Vector_iterator<int,allocator<int>
>,_Vector_iterator<int,allocator<int>
>,_Vector_iterator<int,allocator<int>
>,forward_iterator_tag) Error E2034 C:\Program Files\CodeGear\RAD
Studio\5.0\\Include\dinkumware\vector 805: Cannot convert 'int' to
'vector<int,allocator<int> > *' in function void
vector<int,allocator<int>
>::_Insert<_Vector_iterator<int,allocator<int> >
>(_Vector_iterator<int,allocator<int>
>,_Vector_iterator<int,allocator<int>
>,_Vector_iterator<int,allocator<int>
>,forward_iterator_tag) |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL]
ANSI C++ 27.6.2.5.3 says that " The effect of
basic_ostream::operator<< is call pf(*this)"
It seems that while throwing exception, the value
which was incremented, does NOTactually get incremented during catch.
While testing this STLPort fails the test.
This error did not occur for RW STL. There is one
test which skipped due to this error. |
bcc32 t49.cpp
//act: t49.exe
//res: The test failed
//exp: The test passed |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL]
While testing the effects of basic_filebuf::overflow on codecvt, bcc32
returns error. |
bcc32 t70.cpp
//res: The test failed
//exp: The test passed |
| QC# |
Project |
Area |
|
C++Builder |
RTL\C++\STLPort |
| Description: |
Steps: |
[STL]
While testing the effects of money_put::do_put with long value, in Ansi
C++ Ch22, bcc32 differs in resulted values. |
bcc32 t55.cpp
//res: The test passed
//exp: The test failed
|
47452
| QC# |
Project |
Area |
| 47452 |
Delphi |
SOAP |
| Description: |
Steps: |
[QC Short Description]
Incorrect SOAP parse of variant arrays
[QC Description]
SOAP does not parse correctly variant arrays of two or more elements
that contain variant arrays.
It can affect SOAP DataSnap servers that use variant arrays in
OwnerData parameter to comunicate information between client and server.
QC Entry 47452
(NOTE From Bruneau:
Have fix ready to go ) |
1. Compile the attached server and client soap
apps with D2007 Upd1. Its a standalone web server. It must be compile
with Indy9. 2. Execute the server. 3. Execute the client, and press the
button1. The Client pass a variant array in the ownerdata parameter of
cds.BeforeGetRecords method: procedure
TForm1.ClientDataSet1BeforeGetRecords(Sender: TObject; var OwnerData:
OleVariant); var v1, v2: variant; begin v1 := VarArrayCreate([0, 1],
varVariant); v1[0] := 1; v1[1] := 'one'; v2 := VarArrayCreate([0, 1],
varVariant); v2[0] := 2; v2[1] := 'two'; OwnerData :=
VarArrayCreate([0, 1], varVariant); OwnerData[0] := v1; OwnerData[1] :=
v2; end; The Server process the ownerdata parameter in the
dsp.BeforeGetRecords method: for i := 0 to VarArrayHighBound(OwnerData,
1) do begin int := OwnerData[i][0]; str := VarToStr(OwnerData[i][1]);
end; OwnerData is well dimensioned, but the first element contains the
second: OwnerData[0][0] -> 2 OwnerData[0][1] -> 'two'
OwnerData[1][0] -> raises and exception EVariantInvalidArgError |
47506
| QC# |
Project |
Area |
| 47506 |
Delphi |
SOAP\WSDL Importer |
| Description: |
Steps: |
[QC Short Description]
Wsdl importer do not read files xsd
[QC Description]
Hi,
when importin a wsdl, the next comment is add to .pas:
//
************************************************************************
//
// The following types, referred to in the WSDL document are not being
represented
// in this file. They are either aliases[@] of other types represented
or
were referred
// to but never[!] declared in the document. The types from the latter
category
// typically map to predefined/known XML or Borland types; however, they
could also
// indicate incorrect WSDL documents that failed to declare or import a
schema type.
//
************************************************************************
//
// !:MessageHeader - "http://www.ebxml.org/namespaces/messageHeader"
// !:Security - "http://schemas.xmlsoap.org/ws/2002/12/secext"
// !:SessionCreateRQ - "http://www.opentravel.org/OTA/2002/11"
// !:SessionCreateRS - "http://www.opentravel.org/OTA/2002/11"
and project has error when compiled.
QC Entry 47506
|
See description Attachment fails
.......!!!!!!!!!!1 cdsAttachmentsHeader : missing datasetprovider ou
datapacked !!!! See files in borlan.public.attachments: XSD files for
Sabre |
49636
| QC# |
Project |
Area |
| 49636 |
Delphi |
SOAP\Client Applications |
| Description: |
Steps: |
[QC Short Description]
THTTPWebNode Timouts do not work
[QC Description]
The timeouts on a THTTPWebNode do not work correctly. It is as if the
timeouts are not altered.
Calling InternetSetOption with the hInternet parameter set to nil
bypasses the problem.
The MSDN documentation for InternetSetOption on Windows CE indicates
that for a synchronous connection the receive timeout can only be set
for the default connection. i.e. the hInternet parameter must be NULL
when INTERNET_OPTION_RECEIVE_TIMEOUT is set. This also appears to be
the case on Win32 for the connect, send, and recieve timeouts.
QC Entry 49636
|
1. Create a web service that takes longer than
30 seconds to respond. 2. Create client for the service using THTTPRIO
object with the timeouts on the HTTPWebNode set to 60000. 3. Call the
web service. It should timeout. |
| 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
|
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 |
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.
|
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. |
| 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 |
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: |
| 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.
|
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 |
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.
|
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. |
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 |
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.
|
| 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<TConcreteBeta<T>.T>'
---8<---
{$apptype console}
type
TBaseAlpha<T> = class
private
F: T;
public
property P: T read F write F;
end;
TBaseBeta<T; U: TBaseAlpha<T>> = class
public
F: U;
procedure M(x: T);
end;
TConcreteAlpha<T> = class(TBaseAlpha<T>)
end;
TConcreteBeta<T> = class(TBaseBeta<T,
TConcreteAlpha<T>>)
end;
procedure TBaseBeta<T;U>.M(x: T);
begin
F.P := x;
end;
var
x: TConcreteBeta<Integer>;
begin
x := TConcreteBeta<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 TBaseBeta<T, U>
where U: TBaseAlpha<T>
{
public U F;
public void M(T x)
{
F.P = x;
}
}
class TConcreteAlpha<T> : TBaseAlpha<T>
{
}
class TConcreteBeta<T> : TBaseBeta<T,
TConcreteAlpha<T>>
{
}
class App
{
static void Main()
{
TConcreteBeta<int> x;
x = new TConcreteBeta<int>();
x.F = new TConcreteAlpha<int>();
x.M(42);
Console.WriteLine(x.F.P);
}
}
--->8---
|
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 |
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 |
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 |
| 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: |
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 |
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 |
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'). |
|
| 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: |
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 |
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 |
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 |
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 |
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 |
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 |
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 ?
|
|
| 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 |
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: |
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 |
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 |
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
|
| 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 |
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 |
| 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 |
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 |
|
C#Builder |
IDE\Project
Manager\Importing VB Projects |
| Description: |
Steps: |
| Importing in VB.Net Visual Studio 2005 project
results in .vbproj file just being opened as a text file. |
+ Download attached project (ACLChange)
+ Open hte .vbproj file
//exp: rpoject is opened
//act: .vbproj file is opened as a text file.
NOTE: Projects will not be able to open or Built as a result. This is
for ALL VB projects - not just the one attached. |
| QC# |
Project |
Area |
|
Delphi.Net |
Database |
| Description: |
Steps: |
Implement TDBXBinarySequenceGenerator
Use new TDBXBlobSequenceGenerator has getBytes and getString method. |
|
| 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: |
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 |
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 |
| 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 |
| 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 |
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\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 |
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\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 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\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 |
| 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 |
| 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 |
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 |
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: |
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: |
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: |
'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: |
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: |
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 |
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, 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: |
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" |
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 |
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: |
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
|
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. |
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 |
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 |
| 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 |
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 |
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 |
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: |
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: |
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 |
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\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 |
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\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. |
| 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 >>
|
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. |
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. |
| 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 ( |
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; --------------------- |
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: |
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 |
| 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\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 |
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.
|
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 |
| 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
|
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. |
| 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 |
| 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
|
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. |
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 |
| 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 |
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 |
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 |
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 |
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 |
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. |
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 |
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 |
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 |
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& | |