Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM Client/Server » View Thread |
Messages 1 to 9 of 9 total |
Windows socket error |
Mon, May 7 2007 7:40 AM | Permanent Link |
"Petter Topp" | Hi.
I'm getting an ESocketError when terminating a Dll with Dbisam database running C/S. The error is "Windows socket error" WSAStartup (10093) on API "Closesocket". If I run the DLL with Local database settings everything runs without errror. I don't get any errors running an application without the DLL. Anyone who knows how to solve this? Thanks Petter Topp Dbisam 4 C/S |
Mon, May 7 2007 12:25 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Petter,
<< I'm getting an ESocketError when terminating a Dll with Dbisam database running C/S. The error is "Windows socket error" WSAStartup (10093) on API "Closesocket". If I run the DLL with Local database settings everything runs without errror. I don't get any errors running an application without the DLL. >> It sounds like a DLL unload order issue that is causing the WinSock layer to be unloaded before the DBISAM code is done with it. Are you using any WinSock/comms capabilities in your main application also ? -- Tim Young Elevate Software www.elevatesoft.com |
Mon, May 7 2007 1:41 PM | Permanent Link |
"Petter Topp" | Hi Tim,
There are no other WinSock or Comm capabilities, it's a simple DLL wich returns values from a database. This DLL has allways been running with LocalDatabase settings, but I have now been working to get it running with C/S. During debug, when trying to disconnect the database or close a table, returns this error. Petter "Tim Young [Elevate Software]" <timyoung@elevatesoft.com> skrev i melding news:4D808C49-036D-4272-86DA-295453AD9E98@news.elevatesoft.com... > Petter, > > << I'm getting an ESocketError when terminating a Dll with Dbisam database > running C/S. The error is "Windows socket error" WSAStartup (10093) on > API "Closesocket". > > If I run the DLL with Local database settings everything runs without > errror. I don't get any errors running an application without the DLL. >> > > It sounds like a DLL unload order issue that is causing the WinSock layer > to be unloaded before the DBISAM code is done with it. Are you using any > WinSock/comms capabilities in your main application also ? > > -- > Tim Young > Elevate Software > www.elevatesoft.com > |
Mon, May 7 2007 4:25 PM | Permanent Link |
Eryk Bottomley | Petter
> This DLL has allways been running with LocalDatabase settings, but I have > now been working to get it running with C/S. > During debug, when trying to disconnect the database or close a table, > returns this error. Does the host EXE access DBISAM in C/S mode as well? Regardless of that, you could try calling ScktComp.Startup during DLL initialisation - that might kill off the error. Eryk |
Mon, May 7 2007 4:31 PM | Permanent Link |
"Petter Topp" | Hello Eryk,
Yes the EXE host is also running in C/S mode. Is this a problem? What is this ScktComp? Thanks Petter "Eryk Bottomley" <no@way.com> skrev i melding news:4FFB1F4A-E91F-4D32-A907-E86D3664CB4E@news.elevatesoft.com... > Petter > >> This DLL has allways been running with LocalDatabase settings, but I have >> now been working to get it running with C/S. >> During debug, when trying to disconnect the database or close a table, >> returns this error. > > > Does the host EXE access DBISAM in C/S mode as well? Regardless of that, > you could try calling ScktComp.Startup during DLL initialisation - that > might kill off the error. > > Eryk |
Mon, May 7 2007 7:18 PM | Permanent Link |
Eryk Bottomley | Petter,
> Yes the EXE host is also running in C/S mode. > Is this a problem? No, it isn't a problem per se - I was just clarifying that WSAStartup is being called in the application but not in the context of the DLL. > What is this ScktComp? It is the VCL unit that the standard socket components (which DBISAM uses) are defined in. The error you are getting indicates that a winsock API function is being called without a prior call to WSAStartup in the current execution context. Adding a call to ScktComp.Startup (which is a WSAStartup wrapper) during DLL initialisation may well rectify this problem. Eryk |
Tue, May 8 2007 3:35 AM | Permanent Link |
"Petter Topp" | Hello Eryk,
Would you please elaborate on how to implement this, preferably with some code. Thanks Petter "Eryk Bottomley" <no@way.com> skrev i melding news:D1540A87-CAD7-4064-9812-58BE4EBBE44D@news.elevatesoft.com... > Petter, > >> Yes the EXE host is also running in C/S mode. >> Is this a problem? > > No, it isn't a problem per se - I was just clarifying that WSAStartup is > being called in the application but not in the context of the DLL. > >> What is this ScktComp? > > It is the VCL unit that the standard socket components (which DBISAM uses) > are defined in. The error you are getting indicates that a winsock API > function is being called without a prior call to WSAStartup in the current > execution context. Adding a call to ScktComp.Startup (which is a > WSAStartup wrapper) during DLL initialisation may well rectify this > problem. > > Eryk |
Tue, May 8 2007 5:46 AM | Permanent Link |
Eryk Bottomley | Petter,
> Would you please elaborate on how to implement this, preferably with some > code. library MyDLL; uses ScktComp; begin Startup; end. ....see "initialization (libraries)" in the Delphi help[1] if you are unfamiliar with DLL initialisation code etc. Eryk [1] I'm referring to Delphi 7 help files here. |
Tue, May 8 2007 7:26 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Peter,
<< There are no other WinSock or Comm capabilities, it's a simple DLL wich returns values from a database. This DLL has allways been running with LocalDatabase settings, but I have now been working to get it running with C/S. During debug, when trying to disconnect the database or close a table, returns this error. >> What I meant by my question was what Eryk asked - is the main application also using remote access of some sort over the Winsock layer. I see by your response to Eryk that you're using remote access in the main application also, which is probably the cause for the error. More than likely, the main application is unloading the Winsock layer before the DLL is finished with it. Are you loading/unloading the DLL dynamically in your application ? -- Tim Young Elevate Software www.elevatesoft.com |
This web page was last updated on Tuesday, April 23, 2024 at 08:10 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |