Solved

BDE installation with Installshield

Posted on 1998-09-15
5
316 Views
Last Modified: 2010-04-03
When installing BDE using Installshield, I'd like to set the Database Level to 7, and the FourDigitYear, LeadingZerom and LeadingZerod to TRUE.

I already tried to make the changes in  the IDAPI32.CNF file, but this doesn't work. I even tried to change all the other .CNF files, same result.

I found the dbiSetDateFormat API to change the Date settings, but I found nowhere how to change the Database Level.

Is there anyone who knows the answer to this problem?
0
Comment
Question by:yente
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
5 Comments
 
LVL 2

Expert Comment

by:333
ID: 1339807
Database Level, it's table type (like Paradox7 or dBaseIV)?
If so, then you can restructure your tables with DbiDoRestructure, but you can't change table type with this (at least so was in BDE API Help).
So I think, you must make new tables with the same structure, but with different table type (Level 7), and copy all records from old tables to new.

A.
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1339808
procedure SetConfigParameter(Param: string; Value: string);
var
  hCur: hDBICur;
  rslt: DBIResult;
  Config: CFGDesc;
  Path, Option: string;
  Found: boolean;
  Temp: array[0..255] of char;
begin
  hCur := nil;
  Found := False;
  try
        Check(dbiInit(Nil));
    if Pos(';', Param) = 0 then
      raise EDatabaseError.Create('Invalid parameter passed to function.  There must ' +
        'be a semi-colon delimited sting passed');
    Path := Copy(Param, 0, Pos(';', Param) - 1);
    Option := Copy(Param, Pos(';', Param) + 1, Length(Param) - Pos(';', Param));
    Check(DbiOpenCfgInfoList(nil, dbiREADWRITE, cfgPERSISTENT, StrPCopy(Temp, Path), hCur));
    repeat
      rslt := DbiGetNextRecord(hCur, dbiNOLOCK, @Config, nil);
      if rslt = DBIERR_NONE then
      begin
        if StrPas(Config.szNodeName) = Option then
        begin
          StrPCopy(Config.szValue, Value);
          Check(DbiModifyRecord(hCur, @Config, FALSE));
          Found := True;
          break;
        end;
      end
      else
      if rslt <> DBIERR_EOF then Check(rslt);
    until rslt <> DBIERR_NONE;
    if Found = False then
      raise EDatabaseError.Create(Param + ' entry was not found in configuration file');
  finally
    if hCur <> nil then Check(DbiCloseCursor(hCur));
    DbiExit;
  end;
end;


SetConfigParameter('\SYSTEM\FORMATS\;FOURDIGITYEAR','TRUE');
SetConfigParameter('\SYSTEM\FORMATS\;LEADINGZEROM','TRUE');
SetConfigParameter('\SYSTEM\FORMATS\;LEADINGZEROD','TRUE');

As for Database Level, I don't know what you mean.
0
 

Author Comment

by:yente
ID: 1339809
To ronit:

The code yoiu passed indeed works for the date changes. However, it doesn't resolve my problem.

The Key I want to change is the following:
    Drivers\Native\Paradox;Level
I tried to change it with your code, without success...
(code:     SetConfigParameter('\DRIVERS\NATIVE\PARADOX;LEVEL','7');)

0
 
LVL 5

Accepted Solution

by:
ronit051397 earned 100 total points
ID: 1339810
write:
SetConfigParameter('\DRIVERS\PARADOX\TABLE CREATE\;LEVEL','7');
see also:
http://www.inprise.com/devsupport/bde/bdeapiex/dbiopencfginfolist.html
0
 

Author Comment

by:yente
ID: 1339811
Thank you very much!!!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

756 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question