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;CO UNTRY=0';
dbVersion30 = 32; {choose this for Access 95 database}
dbEncrypt = 2;
var
DBEngine: Variant;
Workspace: Variant;
procedure BldMdb(FileName:String);
begin
DBEngine := CreateOleObject('DAO.DBEng ine.35');
Workspace := DBEngine.Workspaces[0];
Try
Workspace.CreateDatabase(F ilename, dbLangGeneral, dbEncrypt);
Except
end;
end;
end.
Thanks,
Paul Sutton
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;CO
dbVersion30 = 32; {choose this for Access 95 database}
dbEncrypt = 2;
var
DBEngine: Variant;
Workspace: Variant;
procedure BldMdb(FileName:String);
begin
DBEngine := CreateOleObject('DAO.DBEng
Workspace := DBEngine.Workspaces[0];
Try
Workspace.CreateDatabase(F
Except
end;
end;
end.
Thanks,
Paul Sutton
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
DuuuuuuuuuuuH !! I',m an idiot
Thanks. Appreciate it.
Thanks. Appreciate it.
Call CoInitialise(Nil) in your initialisation section.
Cheers,
Raymond.