Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

BDE installation with Installshield

Posted on 1998-09-15
5
Medium Priority
?
320 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 400 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

Tech or Treat! - Giveaway

Submit an article about your scariest tech experience—and the solution—and you’ll be automatically entered to win one of 4 fantastic tech gadgets.

Question has a verified solution.

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

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
In a question here at Experts Exchange (https://www.experts-exchange.com/questions/29062564/Adobe-acrobat-reader-DC.html), a member asked how to create a signature in Adobe Acrobat Reader DC (the free Reader product, not the paid, full Acrobat produ…
Suggested Courses

610 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