Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 17 of 17 total
Thread Error #600 when creating temporary file
Fri, Mar 3 2017 10:21 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Burkhard

Extending a bit on Matthew's post.


Without seeing your inno setup routine and all forms / units used in that I can't comment specifically. I also do not have a full source code version of ElavateDB so can't trace things back totally. However, from my knowledge of Delphi what I can say is that you haven't taken into account how properties are streamed. I think it goes roughly:

1. create a "bare bones" object
2. add the other properties etc in
3. run the constructor and follow whatever it tells you to do
4. (this is the important bit) stream in the property values held in the dfm

ie user set values will be streamed in after the engine has been initialised - between initialisation and streaming in the user (ie programmer) defined values it will have the right value.

So somewhere, somehow, the value of TempTablesPath has been set. when the setup is run it uses this and this is what is causing the problem. However, this

<<It's a small tool that is called by my Inno-Setup script and that does some DB related things after installation of my main application. SessionType is stLocal an I use the default EDBEngine, no TEDBEngine component.>>

is a problem. If you have no specific engine component in the tool it won't be in the dfm and won't be stored and won't be streamed. Do you have a session component in the tool or are you using the default session?

Roy Lambert



Mon, Mar 6 2017 4:51 AMPermanent Link

Burkhard Schneider

isyControl Software

Once again, extending on my original post:

- I use the default EDBEngine and the default EDBSession, so nothing is stored in the dfm. Everything I need with theese two components is set by code or left as default.
- Engine.TempTablesPath is initialized using the Windows function GetTempPathA

- On the users machine EDB used C:\Users\ADMINI~1\AppData\Local\Temp\2\ as TempTablesPath
- This Path didn't exist. Probably it should be C:\Users\ADMINI~1\AppData\Local\Temp\ (without the 2 )
- With all other users, everything works fine.

After googling a bit I found that it has something to do with this:
http://stackoverflow.com/questions/6521277/why-does-temp-resolve-to-a-non-deterministic-path-of-the-form-temp-digit

So it sems that there is the possibility that GetTempPathA returns a non existing path. I'll probably add something like that to my code:

ForceDirectories(Engine.TempTablesPath);

Or couldn't EDB check the existance of Engine.TempTablesPath before using it?
Mon, Mar 6 2017 5:29 AMPermanent Link

Matthew Jones

Burkhard Schneider wrote:

>  I'll probably add something like that to my code:
>
> ForceDirectories(Engine.TempTablesPath);

That is what I do. Except that I put my temp files in a known location so I don't get all mixed into the morass of other garbage that collects in the Temp directory.


> Or couldn't EDB check the existance of Engine.TempTablesPath before using it?

It's perhaps an interesting philosophical question. I think overall it should not. You want to know that the temporary files are going where you think they should. If you specify F:\DevTemp and it goes ahead and creates that on every system your application runs on, that might be awkward. Better to get an error and say it doesn't exist.

You might argue that it should complain when you set the property, but why should the order of creation be enforced. Set the location, create it, what's the problem so long as you do it before it is used. Heck, you might set it three times before you settle.

So that's why I come down on it not doing it for you.

--

Matthew Jones
Mon, Mar 6 2017 5:54 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Burkhard


I have to say WOW to that.

Roy Lambert
Mon, Mar 6 2017 2:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<<

giggle>
DBISAMEngine in an ElevateDB discussion
</giggle>

>>

You have no idea...things are *crazy* around here lately.  I spent all weekend getting our mail servers moved over from Google to Office365 along with putting in a new development machine for myself, so that didn't help...

But, better to be busy than not... Wink

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Mar 7 2017 2:37 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Tim


>You have no idea...things are *crazy* around here lately. I spent all weekend getting our mail servers moved over from Google to Office365 along with putting in a new development machine for myself, so that didn't help...

I sort of remember you posting a picture of your office a while back - you seemed to have enough machines back then - you're just greedy Smiley

>But, better to be busy than not... Wink

Especially if its making money!

Roy
Wed, Mar 8 2017 3:05 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Roy,

<< I sort of remember you posting a picture of your office a while back - you seemed to have enough machines back then - you're just greedy Smiley>>

We have 3 PCs, not including the server (or various tablets/phones for testing).  My last machine was purchased in late 2009, so I was due.

<< Especially if its making money! >>

We're hanging in there, much like bacteria that has evolved to survive the next round of antibiotics. Wink

Tim Young
Elevate Software
www.elevatesoft.com
« Previous PagePage 2 of 2
Jump to Page:  1 2
Image