Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

Win 2008 and RBuilder.INI - access denied

edited June 2008 in General
I'm running the latest RB 10.08, and upon double-clicking a TppReport
component in the Delphi IDE, get a message saying
"..windows\System32\RBuilder.ini, access denied". I see the issue
existed previously for vista as per the old newsgroup answer below; is
a fix for windows 2008 coming in the next update?



"Are you running Delphi 2007 as an administrator? If not, you will need
to do so in order to write to the RBuilder.ini on a Vista machine. At
design time there is currently no way to change where these settings
are kept so it is necessary to run Delphi 2007 as an administrator in
until we release a version of ReportBuilder that is officially Vista
compliant."

--

Eivind Bakkestuen
Nexus Database Systems Pty Ltd

Comments

  • edited June 2008
    Hi Eivind,

    We do not currently have any experience with Windows Server 2008 however I
    would assume the same issues are present as in Vista. The next major
    release of ReportBuilder will address the RBuilder.ini and other writable
    file location issues.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited June 2008
    > We do not currently have any experience with Windows Server 2008

    The message I quoted is actually more than a year old... any timeline
    for this next major release?

    --

    Eivind Bakkestuen
    Nexus Database Systems Pty Ltd
  • edited June 2008

    We have been using Vista here daily for over a year and have Delphi
    configured to run as Administrator. Works great. There are many other apps
    on my Vista machine that require Administrator privileges.


    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited June 2008
    > We have been using Vista here daily for over a year and have Delphi

    That was not my question, but thanks anyway. FYI, no other libs I have
    installed requires admin privileges to work (as well they shouldnt).

    --

    Eivind Bakkestuen
    Nexus Database Systems Pty Ltd
  • edited June 2008

    For the applications that you build and deploy you can control the location
    of RBuilder.ini. See tech tip below.

    For the next major release, we are making enhancements to better support
    Vista. The default location of RBuilder.ini is being modified. A new
    installation system will install applicable files, such as the Demos to a
    directory that does not require adminstrator privilidges.

    My point was that there is a simple work around. In my opinion,
    Administrator privileges are perfectly acceptable for a development
    environment.

    Thanks for the feedback.

    ----------------------------------------------------
    Tech Tip: RBuilder Ini Storage
    ----------------------------------------------------


    For an end-user reporting application, use the TppDesigner IniStorageType
    and InitStorageName properties can to control how/where ReportBuilder stores
    user preferences.


    For a reporting application that does not include the TppDesigner component,
    the settings can be configured programmatically.


    1. To modify the location of RBuilder.ini


    uses
    ppIniStorage,
    ppFileUtils;

    {$R *.dfm}

    procedure TForm1.FormCreate(Sender: TObject);
    var
    lsStorageName: String;
    begin

    lsStorageName := TppFileUtils.GetApplicationFilePath + '\RBuilder.ini';

    TppIniStoragePlugIn.SetStorageName(lsStorageName);

    end;


    2. To modify the storage to use the Windows Registry



    uses
    ppIniStorage;


    begin

    // configure the ini storage to use the registry
    ConfigureIniStorage(TppRegistry.ClassDescription,
    TppRegistry.DefaultStorageName);


    end;


    procedure ConfigureIniStorage(aStorageType, aStorageName: String);
    var
    lIniStorageClass: TppIniStorageClass;
    begin

    lIniStorageClass := TppIniStoragePlugIns.GetClassForName(aStorageType);

    if (lIniStorageClass <> nil) then
    begin
    TppIniStoragePlugIn.SetClass(lIniStorageClass);
    TppIniStoragePlugIn.SetStorageName(aStorageName);
    end;

    end;



    --
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com


    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.