Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8756493
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T14:05:39+00:00 2026-06-13T14:05:39+00:00

In Delphi 2009 I’m finding that any time I do perform both a connection

  • 0

In Delphi 2009 I’m finding that any time I do perform both a connection to Oracle (via OCI.dll) and a call to a web service method I get an exception in ntdll.dll when closing my application in the IDE.

For the connection to Oracle I tried using both DOA (Direct Oracle Access) 4.1.1.0 and ODAC components (latest trial version);

For the web service method call (just a simple “function HelloWorld: string”) I am using Delphi stock capabilities, after importing the WSDL from the web service.

If I use ODAC components in “direct” mode, that is not using OCI.dll, no exception occurs on closing.

If I call a web service method only (without connecting to Oracle), no exception occurs on closing (even if I use either DOA or ODAC components).

If I connect to Oracle (via OCI.dll) only (without calling a web service method), everything goes fine too (no matter if I use either DOA or ODAC components).

The very same code runs perfect when executed both in Delphi 7 and Delphi XE2: no exception occurs on application closing.

Some information:
Delphi 2009 (stock and Update 3 version)
OS: Windows 7 32 bit
Oracle Instant Client 10.2.0.4 and Oracle Instant Client 10.2.0.5

I start suspecting that it might be an issue related to heap corruption in Delphi 2009 on application closing…

Any help please?

Steps to reproduce (from the comment):

  1. Create a new VCL Forms Application
  2. Place a TOracleSession DOA component (named OracleSession1) on the Form
  3. Place a TButton on the Form (named Button1)
  4. Place this event handler for the button click event:

Here is the code:

procedure TForm1.Button1Click(Sender: TObject);
var
   MyWebService3Soap: WebService3Soap;
   s: string;
begin
   OracleSession1.LogonDatabase := 'SomeLogonDB';
   OracleSession1.LogonUsername := 'SomeUsername';
   OracleSession1.LogonPassword := 'SomePassword';
   OracleSession1.Connected := True;
   ShowMessage('Connected');

   MyWebService3Soap := GetWebService3Soap();
   s := MyWebService3Soap.HelloWorld(); // Just returns a string such as "Hello World"
   ShowMessage(s);
 end;

The “WebService3Soap” interface is the one automatically generated by Delphi 2009 WSDL Importer. Here is the meaningful part:

WebService3Soap = interface(IInvokable)
  ['{F6F12FA6-3881-8BB5-AD71-2408B47692CD}']
    function  HelloWorld: string; stdcall;
  end;

function GetWebService3Soap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): WebService3Soap;

initialization
  InvRegistry.RegisterInterface(TypeInfo(WebService3Soap), 'http://mytest.it/Test3', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(WebService3Soap), 'http://mytest.it/Test3/HelloWorld');
  InvRegistry.RegisterInvokeOptions(TypeInfo(WebService3Soap), ioDocument);
end.

Run the application inside the IDE, press the button (close the 2 following ShowMessages) and then close the form.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T14:05:40+00:00Added an answer on June 13, 2026 at 2:05 pm

    Given the hint that it might be a “DLL hell” issue, I was able to run a test both on Windows XP and on Vista: everything went fine. So I started thinking that this issue had somehow to be related to Delphi 2009 on Windows 7.

    I was right and I found that there is an issue In Delphi 2009 with debugging on Windows 7.

    Fortunately a patch is available:

    ID: 27476, Hotfix 2 for Delphi 2009 and C++Builder 2009

    Applying the patch solved!

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In Delphi 2009 I'm finding that any time I use TThread.CurrentThread in an application,
my delphi 2009 app uses a DLL that performs some activities that may take
I installed both the Delphi 2009 trial and actual release via the web installer
I have a Delphi 2009 application that runs a query over a database using
In Delphi 2009, synchronize'd functions that worked fine in Delphi 7 execute with sublime
I am using Delphi 2009 and I noticed that there is a macro recorder
I got an application (written in Delphi 2009) that uses an ADS Server (Version
Delphi 2009 and above support unicode. I have few legacy pascal source files that
In Delphi 2009 or later (Unicode), are there any built-in functions or small routines
I have a Delphi 2009 program that handles a lot of data and needs

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.