Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread The component EDBSession1 property LocalTempTablesPath will not stay blank
Thu, Apr 17 2014 8:52 AMPermanent Link

Peter Evans

Subject : The component EDBSession1 property LocalTempTablesPath will
not stay blank

Running Delphi XE2 on Windows 8.  ElevateDB 2.16 Build 2.

My application runs OK on my machine and my virtual machines. But my
Beta testers can not get it to work.

If everyone of my Beta testers was named Peter then the program would
run OK on their machine!

I think it is a problem with the EDBSession component and property
LocalTempTablesPath. That property points to
"C:\Users\Peter\AppData\Local\Temp".

I thought I had blanked it out and therefore I recompiled the program.

I have just noticed that when I look at the form with the EDBSession
component on it that that jolly property has changed from blank to
"C:\Users\Peter\AppData\Local\Temp" again.

This is a typical error "DB Error #600 File manager error (Cannot create
file
C:\Users\Peter\AppData\Local\Temp\WIN81BASE25561392808718SysTables1.EDBTb1
(OS Error:
The system cannot find the path specified.)".

Di I need to point the tables path to a system folder?

How do I get rid of a hard coded (?) reference to my machine?

Is the reference now fixed in the Catalog and Database tables?

Regards,
  Peter Evans
Thu, Apr 17 2014 10:37 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Peter


This is one that's bitten me several times.What I do is in my datamodule crreate event I assign whatever the current Windows temporary files path is to it.


procedure Tdm.DataModuleCreate(Sender: TObject);
var
sl: TStringList;
begin
TfREngine.Signature := Copy(Digest(156), 1, 10);
TfREngine.TempTablesPath := GetWindowsTempPath;
TfRSession.LocalSignature := TfREngine.Signature;
TfRSession.LocalTempTablesPath := GetWindowsTempPath;
end;



function GetWindowsTempPath: string;
var
TempPathName: array[0..250] of Char;
begin
try
 if GetTempPath(250, TempPathName) <> 0
  then Result := TempPathName
 else begin
  ForceDirectories('C:\Temp');
  Result := 'C:\Temp';
 end;
except
 ForceDirectories('C:\Temp');
 Result := 'C:\Temp';
end;
end;



Roy Lambert
Thu, Apr 17 2014 6:16 PMPermanent Link

Peter Evans

On 18/04/2014 12:37 AM, Roy Lambert wrote:

>
> This is one that's bitten me several times.What I do is in my datamodule crreate event I assign


Your solution looks as hot as a hot cross bun at Easter.

I will let you know how my next Beta release goes!

Best regards,
  Peter Evans
Fri, Apr 18 2014 2:35 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Peter

>Your solution looks as hot as a hot cross bun at Easter.

Bearing in mind that most shops sell them cold I'm not sure that's a compliment Smiley

Roy
Fri, Apr 18 2014 4:54 PMPermanent Link

Jeff Cook

Aspect Systems Ltd

Avatar

Peter means that your solution is really COOL!   Wink

--
Jeff Cook
Aspect Systems Ltd
www.aspect.co.nz

"Roy Lambert" <roy@lybster.me.uk> wrote in message
news:D29571D0-C09B-4AAC-9D3E-1EE48791B0A5@news.elevatesoft.com...
> Peter
>
>>Your solution looks as hot as a hot cross bun at Easter.
>
> Bearing in mind that most shops sell them cold I'm not sure that's a
> compliment Smiley
>
> Roy
>

Mon, Apr 21 2014 7:28 PMPermanent Link

Peter Evans


> Peter means that your solution is really COOL!   Wink
>

Well thanks. And thanks to Roy for the solution.

Initial reports from Beta testers report the program runs OK now.

Regards,
  Peter Evans
Tue, Apr 22 2014 10:58 AMPermanent Link

Uli Becker

Peter,

just to let you know: there is a method in TEDBEngine, which does that
job for you:

procedure Tdm.InformaEngineBeforeStart(Sender: TObject);
begin
   MyEngine.TempTablesPath := MyEngine.GetTempTablesPath;
end;

Regards Uli
Image