我用D7+ADO+INTRAWEB编程,运行是出错“未调用COINITIALIZE”,但在哪个UNIT中调用?无论我怎样调用COINITIALIZE,总是说“未调用”,请高手明示代码,100分就给他。我的代码如下:工程文件
program user;uses
Forms,
IWMain,
ServerController in '..\source\ServerController.pas' {IWServerController: TIWServerController},
DataModuleUnit in '..\source\DataModuleUnit.pas' {DataModule1: TDataModule},
main in '..\source\main.pas' {IWForm1: TIWFormModuleBase};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TformIWMain, formIWMain);
Application.Run;end.主窗口:
unit main;interfaceuses
Classes, SysUtils, IWAppForm, IWApplication, IWTypes, Controls,
IWBaseControl, IWControl, IWGrids, IWDBGrids;type
TIWForm1 = class(TIWAppForm)
IWDBGrid1: TIWDBGrid;
public
end;implementation{$R *.dfm}uses
ServerController, DataModuleUnit;
initialization
TIWForm1.SetAsMainForm;
end.控制台:
unit ServerController;interfaceuses
SysUtils, Classes,IWServerControllerBase, IWBaseForm, HTTPApp,
// For OnNewSession Event
DataModuleUnit, IWApplication, IWAppForm;type
TIWServerController = class(TIWServerControllerBase)
procedure IWServerControllerBaseNewSession(ASession: TIWApplication;
var VMainForm: TIWBaseForm);
private
public
end; TUserSession = class(TComponent)
public
DataModule1: TDataModule1;
constructor Create(AOwner: TComponent); override;
end;// Procs
function UserSession: TUserSession;implementation
{$R *.dfm}uses
IWInit;function UserSession: TUserSession;
begin
Result := TUserSession(WebApplication.Data);
end;procedure TIWServerController.IWServerControllerBaseNewSession(
ASession: TIWApplication; var VMainForm: TIWBaseForm);
begin
ASession.Data := TUserSession.Create(nil);
end;constructor TUserSession.Create(AOwner: TComponent);
begin
inherited;
DataModule1 := TDataModule1.Create(Self);
end;initialization
TIWServerController.SetServerControllerClass;
end.数据模块:
unit DatamoduleUnit;interfaceuses
{$IFDEF Linux}QForms, {$ELSE}Forms, {$ENDIF}
SysUtils, Classes, DBTables, DB, ADODB;type
TDataModule1 = class(TDataModule)
DataSource1: TDataSource;
Session1: TSession;
query1: TADOQuery;
query1bianhao: TWideStringField;
query1username: TWideStringField;
query1tel: TWideStringField;
query1fax: TWideStringField;
query1email: TWideStringField;
query1contactor: TWideStringField;
query1city: TWideStringField;
procedure DataModuleCreate(Sender: TObject);
private
public
end;// Procs
function DataModule1: TDataModule1;implementation
{$R *.dfm}uses
IWInit,
ServerController;.
function DataModule1: TDataModule1;
begin
Result := TUserSession(WebApplication.Data).Datamodule1;
end;procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
query1.open;
end;end.
program user;uses
Forms,
IWMain,
ServerController in '..\source\ServerController.pas' {IWServerController: TIWServerController},
DataModuleUnit in '..\source\DataModuleUnit.pas' {DataModule1: TDataModule},
main in '..\source\main.pas' {IWForm1: TIWFormModuleBase};{$R *.res}begin
Application.Initialize;
Application.CreateForm(TformIWMain, formIWMain);
Application.Run;end.主窗口:
unit main;interfaceuses
Classes, SysUtils, IWAppForm, IWApplication, IWTypes, Controls,
IWBaseControl, IWControl, IWGrids, IWDBGrids;type
TIWForm1 = class(TIWAppForm)
IWDBGrid1: TIWDBGrid;
public
end;implementation{$R *.dfm}uses
ServerController, DataModuleUnit;
initialization
TIWForm1.SetAsMainForm;
end.控制台:
unit ServerController;interfaceuses
SysUtils, Classes,IWServerControllerBase, IWBaseForm, HTTPApp,
// For OnNewSession Event
DataModuleUnit, IWApplication, IWAppForm;type
TIWServerController = class(TIWServerControllerBase)
procedure IWServerControllerBaseNewSession(ASession: TIWApplication;
var VMainForm: TIWBaseForm);
private
public
end; TUserSession = class(TComponent)
public
DataModule1: TDataModule1;
constructor Create(AOwner: TComponent); override;
end;// Procs
function UserSession: TUserSession;implementation
{$R *.dfm}uses
IWInit;function UserSession: TUserSession;
begin
Result := TUserSession(WebApplication.Data);
end;procedure TIWServerController.IWServerControllerBaseNewSession(
ASession: TIWApplication; var VMainForm: TIWBaseForm);
begin
ASession.Data := TUserSession.Create(nil);
end;constructor TUserSession.Create(AOwner: TComponent);
begin
inherited;
DataModule1 := TDataModule1.Create(Self);
end;initialization
TIWServerController.SetServerControllerClass;
end.数据模块:
unit DatamoduleUnit;interfaceuses
{$IFDEF Linux}QForms, {$ELSE}Forms, {$ENDIF}
SysUtils, Classes, DBTables, DB, ADODB;type
TDataModule1 = class(TDataModule)
DataSource1: TDataSource;
Session1: TSession;
query1: TADOQuery;
query1bianhao: TWideStringField;
query1username: TWideStringField;
query1tel: TWideStringField;
query1fax: TWideStringField;
query1email: TWideStringField;
query1contactor: TWideStringField;
query1city: TWideStringField;
procedure DataModuleCreate(Sender: TObject);
private
public
end;// Procs
function DataModule1: TDataModule1;implementation
{$R *.dfm}uses
IWInit,
ServerController;.
function DataModule1: TDataModule1;
begin
Result := TUserSession(WebApplication.Data).Datamodule1;
end;procedure TDataModule1.DataModuleCreate(Sender: TObject);
begin
query1.open;
end;end.
multied即可。