Link to home
Start Free TrialLog in
Avatar of psutton
psutton

asked on

How to create an Mdb in code

I have moved from D3.02 to D5 (pro)
have a routine written in d3 which works. It's in a unit by its self.  In D5 it crashes and I get the message CoInitialize not Called.  What goes?

Note: I am not using any of the "Servers" from the server page, and also employ late binding.

Here's thre code:

unit Mdb;

interface
uses
  Windows,ComObj, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

 procedure BldMdb(FileName:String);
implementation
 const
  dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0';
  dbVersion30 = 32; {choose this for Access 95 database}
  dbEncrypt = 2;
var
  DBEngine: Variant;
  Workspace: Variant;

 procedure BldMdb(FileName:String);

begin
  DBEngine := CreateOleObject('DAO.DBEngine.35');
  Workspace := DBEngine.Workspaces[0];
  Try
  Workspace.CreateDatabase(Filename, dbLangGeneral, dbEncrypt);
  Except
  end;
end;

end.

Thanks,
 Paul Sutton
 
ASKER CERTIFIED SOLUTION
Avatar of inthe
inthe

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rwilson032697
rwilson032697

..or...

Call CoInitialise(Nil) in your initialisation section.

Cheers,

Raymond.
Avatar of psutton

ASKER

DuuuuuuuuuuuH !! I',m an idiot
Thanks. Appreciate it.