全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1386
推到 Plurk!
推到 Facebook!

使用JRO時出現的問題

尚未結案
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-12-23 12:36:36 IP:63.84.xxx.xxx 未訂閱
請教各位前輩﹒    小弟在使用JRO(Microsoft Jet and Replication Object)壓縮專案中的.MDB資料庫檔案時﹐出現如下的錯誤信息﹕ [Error] JRO_TLB.pas(594): Undeclared identifier: 'ActiveConnection'    請問是何原因造成的錯誤﹖感謝﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-23 12:46:58 IP:202.39.xxx.xxx 未訂閱
Delphi 6 嗎?參考: http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=8d16e7efb2308e3&rnum=4 改用 Delphi 5 來產生 JRO_TLB.pas 檔(import type library) 給 Delphi 6 用即可. --- Everything I say is a lie. @>---
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-23 12:52:26 IP:63.84.xxx.xxx 未訂閱
感謝hagar兄﹒    小弟手上沒有Delphi5﹐那要怎么處理呢﹖    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-12-23 13:05:22 IP:202.39.xxx.xxx 未訂閱
這是 Microsoft Jet and Replication Objects 2.5 Library 的

unit JRO_TLB;    // ************************************************************************ //
// WARNING                                                                    
// -------                                                                    
// The types declared in this file were generated from data read from a       
// Type Library. If this type library is explicitly or indirectly (via        
// another type library referring to this type library) re-imported, or the   
// 'Refresh' command of the Type Library Editor activated while editing the   
// Type Library, the contents of this file will be regenerated and all        
// manual modifications will be lost.                                         
// ************************************************************************ //    // PASTLWTR : $Revision:   1.88.1.0.1.0  $
// File generated on 2003/12/23 下午 01:03:04 from Type Library described below.    // *************************************************************************//
// NOTE:                                                                      
// Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties  
// which return objects that may need to be explicitly created via a function 
// call prior to any access via the property. These items have been disabled  
// in order to prevent accidental use from within the object inspector. You   
// may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively   
// removing them from the $IFDEF blocks. However, such items must still be    
// programmatically created via a method of the appropriate CoClass before    
// they can be used.                                                          
// ************************************************************************ //
// Type Lib: C:\Program Files\Common Files\System\ado\msjro.dll (1)
// IID\LCID: {AC3B8B4C-B6CA-11D1-9F31-00C04FC29D52}\0
// Helpfile: C:\Program Files\Common Files\System\ado\ado210.chm
// DepndLst: 
//   (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)
//   (2) v2.5 ADODB, (C:\Program Files\Common Files\System\ado\msado15.dll)
//   (3) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL)
// Errors:
//   Error creating palette bitmap of (TReplica) : Server C:\Program Files\Common Files\System\ado\msjro.dll contains no icons
//   Error creating palette bitmap of (TJetEngine) : Server C:\Program Files\Common Files\System\ado\msjro.dll contains no icons
// ************************************************************************ //
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 
interface    uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL, 
  ADODB_TLB;    // *********************************************************************//
// GUIDS declared in the TypeLibrary. Following prefixes are used:        
//   Type Libraries     : LIBID_xxxx                                      
//   CoClasses          : CLASS_xxxx                                      
//   DISPInterfaces     : DIID_xxxx                                       
//   Non-DISP interfaces: IID_xxxx                                        
// *********************************************************************//
const
  // TypeLibrary Major and minor versions
  JROMajorVersion = 2;
  JROMinorVersion = 5;      LIBID_JRO: TGUID = '{AC3B8B4C-B6CA-11D1-9F31-00C04FC29D52}';      IID_IReplica: TGUID = '{D2D139E0-B6CA-11D1-9F31-00C04FC29D52}';
  IID_Filters: TGUID = '{D2D139E2-B6CA-11D1-9F31-00C04FC29D52}';
  IID_Filter: TGUID = '{D2D139E1-B6CA-11D1-9F31-00C04FC29D52}';
  IID_IJetEngine: TGUID = '{9F63D980-FF25-11D1-BB6F-00C04FAE22DA}';
  CLASS_Replica: TGUID = '{D2D139E3-B6CA-11D1-9F31-00C04FC29D52}';
  CLASS_JetEngine: TGUID = '{DE88C160-FF2C-11D1-BB6F-00C04FAE22DA}';    // *********************************************************************//
// Declaration of Enumerations defined in Type Library                    
// *********************************************************************//
// Constants for enum ReplicaTypeEnum
type
  ReplicaTypeEnum = TOleEnum;
const
  jrRepTypeNotReplicable = $00000000;
  jrRepTypeDesignMaster = $00000001;
  jrRepTypeFull = $00000002;
  jrRepTypePartial = $00000003;    // Constants for enum VisibilityEnum
type
  VisibilityEnum = TOleEnum;
const
  jrRepVisibilityGlobal = $00000001;
  jrRepVisibilityLocal = $00000002;
  jrRepVisibilityAnon = $00000004;    // Constants for enum UpdatabilityEnum
type
  UpdatabilityEnum = TOleEnum;
const
  jrRepUpdFull = $00000000;
  jrRepUpdReadOnly = $00000002;    // Constants for enum SyncTypeEnum
type
  SyncTypeEnum = TOleEnum;
const
  jrSyncTypeExport = $00000001;
  jrSyncTypeImport = $00000002;
  jrSyncTypeImpExp = $00000003;    // Constants for enum SyncModeEnum
type
  SyncModeEnum = TOleEnum;
const
  jrSyncModeIndirect = $00000001;
  jrSyncModeDirect = $00000002;
  jrSyncModeInternet = $00000003;    // Constants for enum FilterTypeEnum
type
  FilterTypeEnum = TOleEnum;
const
  jrFilterTypeTable = $00000001;
  jrFilterTypeRelationship = $00000002;    type    // *********************************************************************//
// Forward declaration of types defined in TypeLibrary                    
// *********************************************************************//
  IReplica = interface;
  IReplicaDisp = dispinterface;
  Filters = interface;
  FiltersDisp = dispinterface;
  Filter = interface;
  FilterDisp = dispinterface;
  IJetEngine = interface;
  IJetEngineDisp = dispinterface;    // *********************************************************************//
// Declaration of CoClasses defined in Type Library                       
// (NOTE: Here we map each CoClass to its Default Interface)              
// *********************************************************************//
  Replica = IReplica;
  JetEngine = IJetEngine;    // *********************************************************************//
// Interface: IReplica
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E0-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  IReplica = interface(IDispatch)
    ['{D2D139E0-B6CA-11D1-9F31-00C04FC29D52}']
    procedure Set_ActiveConnection(const ppconn: IDispatch); safecall;
    procedure _Set_ActiveConnection(ppconn: OleVariant); safecall;
    function  Get_ActiveConnection: IDispatch; safecall;
    function  Get_ConflictFunction: WideString; safecall;
    procedure Set_ConflictFunction(const pbstr: WideString); safecall;
    function  Get_ConflictTables: _Recordset; safecall;
    function  Get_DesignMasterId: OleVariant; safecall;
    procedure Set_DesignMasterId(pvar: OleVariant); safecall;
    function  Get_Priority: Integer; safecall;
    function  Get_ReplicaId: OleVariant; safecall;
    function  Get_ReplicaType: ReplicaTypeEnum; safecall;
    function  Get_RetentionPeriod: Integer; safecall;
    procedure Set_RetentionPeriod(pl: Integer); safecall;
    function  Get_Visibility: VisibilityEnum; safecall;
    procedure CreateReplica(const replicaName: WideString; const description: WideString; 
                            ReplicaType: ReplicaTypeEnum; Visibility: VisibilityEnum; 
                            Priority: Integer; updatability: UpdatabilityEnum); safecall;
    function  GetObjectReplicability(const objectName: WideString; const objectType: WideString): WordBool; safecall;
    procedure SetObjectReplicability(const objectName: WideString; const objectType: WideString; 
                                     replicability: WordBool); safecall;
    procedure MakeReplicable(const connectionString: WideString; columnTracking: WordBool); safecall;
    procedure PopulatePartial(const FullReplica: WideString); safecall;
    procedure Synchronize(const target: WideString; syncType: SyncTypeEnum; syncMode: SyncModeEnum); safecall;
    function  Get_Filters: Filters; safecall;
    property ActiveConnection: IDispatch write Set_ActiveConnection;
    property ConflictFunction: WideString read Get_ConflictFunction;
    property ConflictTables: _Recordset read Get_ConflictTables;
    property DesignMasterId: OleVariant read Get_DesignMasterId;
    property Priority: Integer read Get_Priority;
    property ReplicaId: OleVariant read Get_ReplicaId;
    property ReplicaType: ReplicaTypeEnum read Get_ReplicaType;
    property RetentionPeriod: Integer read Get_RetentionPeriod;
    property Visibility: VisibilityEnum read Get_Visibility;
    property Filters: Filters read Get_Filters;
  end;    // *********************************************************************//
// DispIntf:  IReplicaDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E0-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  IReplicaDisp = dispinterface
    ['{D2D139E0-B6CA-11D1-9F31-00C04FC29D52}']
    property ActiveConnection: IDispatch writeonly dispid 1610743808;
    property ConflictFunction: WideString readonly dispid 1610743811;
    property ConflictTables: _Recordset readonly dispid 1610743813;
    property DesignMasterId: OleVariant readonly dispid 1610743814;
    property Priority: Integer readonly dispid 1610743816;
    property ReplicaId: OleVariant readonly dispid 1610743817;
    property ReplicaType: ReplicaTypeEnum readonly dispid 1610743818;
    property RetentionPeriod: Integer readonly dispid 1610743819;
    property Visibility: VisibilityEnum readonly dispid 1610743821;
    procedure CreateReplica(const replicaName: WideString; const description: WideString; 
                            ReplicaType: ReplicaTypeEnum; Visibility: VisibilityEnum; 
                            Priority: Integer; updatability: UpdatabilityEnum); dispid 1610743822;
    function  GetObjectReplicability(const objectName: WideString; const objectType: WideString): WordBool; dispid 1610743823;
    procedure SetObjectReplicability(const objectName: WideString; const objectType: WideString; 
                                     replicability: WordBool); dispid 1610743824;
    procedure MakeReplicable(const connectionString: WideString; columnTracking: WordBool); dispid 1610743825;
    procedure PopulatePartial(const FullReplica: WideString); dispid 1610743826;
    procedure Synchronize(const target: WideString; syncType: SyncTypeEnum; syncMode: SyncModeEnum); dispid 1610743827;
    property Filters: Filters readonly dispid 1610743828;
  end;    // *********************************************************************//
// Interface: Filters
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E2-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  Filters = interface(IDispatch)
    ['{D2D139E2-B6CA-11D1-9F31-00C04FC29D52}']
    procedure Refresh; safecall;
    function  _NewEnum: IUnknown; safecall;
    function  Get_Count: Integer; safecall;
    function  Get_Item(Index: OleVariant): Filter; safecall;
    procedure Append(const TableName: WideString; FilterType: FilterTypeEnum; 
                     const FilterCriteria: WideString); safecall;
    procedure Delete(Index: OleVariant); safecall;
    property Count: Integer read Get_Count;
    property Item[Index: OleVariant]: Filter read Get_Item; default;
  end;    // *********************************************************************//
// DispIntf:  FiltersDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E2-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  FiltersDisp = dispinterface
    ['{D2D139E2-B6CA-11D1-9F31-00C04FC29D52}']
    procedure Refresh; dispid 1610743808;
    function  _NewEnum: IUnknown; dispid -4;
    property Count: Integer readonly dispid 1610743810;
    property Item[Index: OleVariant]: Filter readonly dispid 0; default;
    procedure Append(const TableName: WideString; FilterType: FilterTypeEnum; 
                     const FilterCriteria: WideString); dispid 1610743812;
    procedure Delete(Index: OleVariant); dispid 1610743813;
  end;    // *********************************************************************//
// Interface: Filter
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E1-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  Filter = interface(IDispatch)
    ['{D2D139E1-B6CA-11D1-9F31-00C04FC29D52}']
    function  Get_TableName: WideString; safecall;
    function  Get_FilterType: FilterTypeEnum; safecall;
    function  Get_FilterCriteria: WideString; safecall;
    property TableName: WideString read Get_TableName;
    property FilterType: FilterTypeEnum read Get_FilterType;
    property FilterCriteria: WideString read Get_FilterCriteria;
  end;    // *********************************************************************//
// DispIntf:  FilterDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {D2D139E1-B6CA-11D1-9F31-00C04FC29D52}
// *********************************************************************//
  FilterDisp = dispinterface
    ['{D2D139E1-B6CA-11D1-9F31-00C04FC29D52}']
    property TableName: WideString readonly dispid 1610743808;
    property FilterType: FilterTypeEnum readonly dispid 1610743809;
    property FilterCriteria: WideString readonly dispid 1610743810;
  end;    // *********************************************************************//
// Interface: IJetEngine
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {9F63D980-FF25-11D1-BB6F-00C04FAE22DA}
// *********************************************************************//
  IJetEngine = interface(IDispatch)
    ['{9F63D980-FF25-11D1-BB6F-00C04FAE22DA}']
    procedure CompactDatabase(const SourceConnection: WideString; const Destconnection: WideString); safecall;
    procedure RefreshCache(const Connection: _Connection); safecall;
  end;    // *********************************************************************//
// DispIntf:  IJetEngineDisp
// Flags:     (4416) Dual OleAutomation Dispatchable
// GUID:      {9F63D980-FF25-11D1-BB6F-00C04FAE22DA}
// *********************************************************************//
  IJetEngineDisp = dispinterface
    ['{9F63D980-FF25-11D1-BB6F-00C04FAE22DA}']
    procedure CompactDatabase(const SourceConnection: WideString; const Destconnection: WideString); dispid 1610743808;
    procedure RefreshCache(const Connection: _Connection); dispid 1610743809;
  end;    // *********************************************************************//
// The Class CoReplica provides a Create and CreateRemote method to          
// create instances of the default interface IReplica exposed by              
// the CoClass Replica. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoReplica = class
    class function Create: IReplica;
    class function CreateRemote(const MachineName: string): IReplica;
  end;    // *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TReplica
// Help String      : JRO Replica Class
// Default Interface: IReplica
// Def. Intf. DISP? : No
// Event   Interface: 
// TypeFlags        : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  TReplicaProperties= class;
{$ENDIF}
  TReplica = class(TOleServer)
  private
    FIntf:        IReplica;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    FProps:       TReplicaProperties;
    function      GetServerProperties: TReplicaProperties;
{$ENDIF}
    function      GetDefaultInterface: IReplica;
  protected
    procedure InitServerData; override;
    procedure Set_ActiveConnection(const ppconn: IDispatch);
    procedure _Set_ActiveConnection(ppconn: OleVariant);
    function  Get_ActiveConnection: IDispatch;
    function  Get_ConflictFunction: WideString;
    procedure Set_ConflictFunction(const pbstr: WideString);
    function  Get_ConflictTables: _Recordset;
    function  Get_DesignMasterId: OleVariant;
    procedure Set_DesignMasterId(pvar: OleVariant);
    function  Get_Priority: Integer;
    function  Get_ReplicaId: OleVariant;
    function  Get_ReplicaType: ReplicaTypeEnum;
    function  Get_RetentionPeriod: Integer;
    procedure Set_RetentionPeriod(pl: Integer);
    function  Get_Visibility: VisibilityEnum;
    function  Get_Filters: Filters;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: IReplica);
    procedure Disconnect; override;
    procedure CreateReplica(const replicaName: WideString; const description: WideString; 
                            ReplicaType: ReplicaTypeEnum; Visibility: VisibilityEnum; 
                            Priority: Integer; updatability: UpdatabilityEnum);
    function  GetObjectReplicability(const objectName: WideString; const objectType: WideString): WordBool;
    procedure SetObjectReplicability(const objectName: WideString; const objectType: WideString; 
                                     replicability: WordBool);
    procedure MakeReplicable(const connectionString: WideString; columnTracking: WordBool);
    procedure PopulatePartial(const FullReplica: WideString);
    procedure Synchronize(const target: WideString; syncType: SyncTypeEnum; syncMode: SyncModeEnum);
    property  DefaultInterface: IReplica read GetDefaultInterface;
    property ConflictTables: _Recordset read Get_ConflictTables;
    property DesignMasterId: OleVariant read Get_DesignMasterId write Set_DesignMasterId;
    property Priority: Integer read Get_Priority;
    property ReplicaId: OleVariant read Get_ReplicaId;
    property ReplicaType: ReplicaTypeEnum read Get_ReplicaType;
    property Visibility: VisibilityEnum read Get_Visibility;
    property Filters: Filters read Get_Filters;
    property ConflictFunction: WideString read Get_ConflictFunction write Set_ConflictFunction;
    property RetentionPeriod: Integer read Get_RetentionPeriod write Set_RetentionPeriod;
  published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    property Server: TReplicaProperties read GetServerProperties;
{$ENDIF}
  end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object    : TReplica
// (This object is used by the IDE's Property Inspector to allow editing
//  of the properties of this server)
// *********************************************************************//
 TReplicaProperties = class(TPersistent)
  private
    FServer:    TReplica;
    function    GetDefaultInterface: IReplica;
    constructor Create(AServer: TReplica);
  protected
    procedure Set_ActiveConnection(const ppconn: IDispatch);
    procedure _Set_ActiveConnection(ppconn: OleVariant);
    function  Get_ActiveConnection: IDispatch;
    function  Get_ConflictFunction: WideString;
    procedure Set_ConflictFunction(const pbstr: WideString);
    function  Get_ConflictTables: _Recordset;
    function  Get_DesignMasterId: OleVariant;
    procedure Set_DesignMasterId(pvar: OleVariant);
    function  Get_Priority: Integer;
    function  Get_ReplicaId: OleVariant;
    function  Get_ReplicaType: ReplicaTypeEnum;
    function  Get_RetentionPeriod: Integer;
    procedure Set_RetentionPeriod(pl: Integer);
    function  Get_Visibility: VisibilityEnum;
    function  Get_Filters: Filters;
  public
    property DefaultInterface: IReplica read GetDefaultInterface;
  published
    property ConflictFunction: WideString read Get_ConflictFunction write Set_ConflictFunction;
    property RetentionPeriod: Integer read Get_RetentionPeriod write Set_RetentionPeriod;
  end;
{$ENDIF}    // *********************************************************************//
// The Class CoJetEngine provides a Create and CreateRemote method to          
// create instances of the default interface IJetEngine exposed by              
// the CoClass JetEngine. The functions are intended to be used by             
// clients wishing to automate the CoClass objects exposed by the         
// server of this typelibrary.                                            
// *********************************************************************//
  CoJetEngine = class
    class function Create: IJetEngine;
    class function CreateRemote(const MachineName: string): IJetEngine;
  end;    // *********************************************************************//
// OLE Server Proxy class declaration
// Server Object    : TJetEngine
// Help String      : JRO JetEngine Class
// Default Interface: IJetEngine
// Def. Intf. DISP? : No
// Event   Interface: 
// TypeFlags        : (2) CanCreate
// *********************************************************************//
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  TJetEngineProperties= class;
{$ENDIF}
  TJetEngine = class(TOleServer)
  private
    FIntf:        IJetEngine;
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    FProps:       TJetEngineProperties;
    function      GetServerProperties: TJetEngineProperties;
{$ENDIF}
    function      GetDefaultInterface: IJetEngine;
  protected
    procedure InitServerData; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
    procedure Connect; override;
    procedure ConnectTo(svrIntf: IJetEngine);
    procedure Disconnect; override;
    procedure CompactDatabase(const SourceConnection: WideString; const Destconnection: WideString);
    procedure RefreshCache(const Connection: _Connection);
    property  DefaultInterface: IJetEngine read GetDefaultInterface;
  published
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
    property Server: TJetEngineProperties read GetServerProperties;
{$ENDIF}
  end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
// *********************************************************************//
// OLE Server Properties Proxy Class
// Server Object    : TJetEngine
// (This object is used by the IDE's Property Inspector to allow editing
//  of the properties of this server)
// *********************************************************************//
 TJetEngineProperties = class(TPersistent)
  private
    FServer:    TJetEngine;
    function    GetDefaultInterface: IJetEngine;
    constructor Create(AServer: TJetEngine);
  protected
  public
    property DefaultInterface: IJetEngine read GetDefaultInterface;
  published
  end;
{$ENDIF}    procedure Register;    implementation    uses ComObj;    class function CoReplica.Create: IReplica;
begin
  Result := CreateComObject(CLASS_Replica) as IReplica;
end;    class function CoReplica.CreateRemote(const MachineName: string): IReplica;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_Replica) as IReplica;
end;    procedure TReplica.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{D2D139E3-B6CA-11D1-9F31-00C04FC29D52}';
    IntfIID:   '{D2D139E0-B6CA-11D1-9F31-00C04FC29D52}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;    procedure TReplica.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IReplica;
  end;
end;    procedure TReplica.ConnectTo(svrIntf: IReplica);
begin
  Disconnect;
  FIntf := svrIntf;
end;    procedure TReplica.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;    function TReplica.GetDefaultInterface: IReplica;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  Result := FIntf;
end;    constructor TReplica.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps := TReplicaProperties.Create(Self);
{$ENDIF}
end;    destructor TReplica.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps.Free;
{$ENDIF}
  inherited Destroy;
end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TReplica.GetServerProperties: TReplicaProperties;
begin
  Result := FProps;
end;
{$ENDIF}    procedure TReplica.Set_ActiveConnection(const ppconn: IDispatch);
begin
  DefaultInterface.Set_ActiveConnection(ppconn);
end;    procedure TReplica._Set_ActiveConnection(ppconn: OleVariant);
begin
  DefaultInterface._Set_ActiveConnection(ppconn);
end;    function  TReplica.Get_ActiveConnection: IDispatch;
begin
  Result := DefaultInterface.Get_ActiveConnection;
end;    function  TReplica.Get_ConflictFunction: WideString;
begin
  Result := DefaultInterface.Get_ConflictFunction;
end;    procedure TReplica.Set_ConflictFunction(const pbstr: WideString);
begin
  DefaultInterface.Set_ConflictFunction(pbstr);
end;    function  TReplica.Get_ConflictTables: _Recordset;
begin
  Result := DefaultInterface.Get_ConflictTables;
end;    function  TReplica.Get_DesignMasterId: OleVariant;
begin
  Result := DefaultInterface.Get_DesignMasterId;
end;    procedure TReplica.Set_DesignMasterId(pvar: OleVariant);
begin
  DefaultInterface.Set_DesignMasterId(pvar);
end;    function  TReplica.Get_Priority: Integer;
begin
  Result := DefaultInterface.Get_Priority;
end;    function  TReplica.Get_ReplicaId: OleVariant;
begin
  Result := DefaultInterface.Get_ReplicaId;
end;    function  TReplica.Get_ReplicaType: ReplicaTypeEnum;
begin
  Result := DefaultInterface.Get_ReplicaType;
end;    function  TReplica.Get_RetentionPeriod: Integer;
begin
  Result := DefaultInterface.Get_RetentionPeriod;
end;    procedure TReplica.Set_RetentionPeriod(pl: Integer);
begin
  DefaultInterface.Set_RetentionPeriod(pl);
end;    function  TReplica.Get_Visibility: VisibilityEnum;
begin
  Result := DefaultInterface.Get_Visibility;
end;    function  TReplica.Get_Filters: Filters;
begin
  Result := DefaultInterface.Get_Filters;
end;    procedure TReplica.CreateReplica(const replicaName: WideString; const description: WideString; 
                                 ReplicaType: ReplicaTypeEnum; Visibility: VisibilityEnum; 
                                 Priority: Integer; updatability: UpdatabilityEnum);
begin
  DefaultInterface.CreateReplica(replicaName, description, ReplicaType, Visibility, Priority, 
                                 updatability);
end;    function  TReplica.GetObjectReplicability(const objectName: WideString; const objectType: WideString): WordBool;
begin
  Result := DefaultInterface.GetObjectReplicability(objectName, objectType);
end;    procedure TReplica.SetObjectReplicability(const objectName: WideString; 
                                          const objectType: WideString; replicability: WordBool);
begin
  DefaultInterface.SetObjectReplicability(objectName, objectType, replicability);
end;    procedure TReplica.MakeReplicable(const connectionString: WideString; columnTracking: WordBool);
begin
  DefaultInterface.MakeReplicable(connectionString, columnTracking);
end;    procedure TReplica.PopulatePartial(const FullReplica: WideString);
begin
  DefaultInterface.PopulatePartial(FullReplica);
end;    procedure TReplica.Synchronize(const target: WideString; syncType: SyncTypeEnum; 
                               syncMode: SyncModeEnum);
begin
  DefaultInterface.Synchronize(target, syncType, syncMode);
end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TReplicaProperties.Create(AServer: TReplica);
begin
  inherited Create;
  FServer := AServer;
end;    function TReplicaProperties.GetDefaultInterface: IReplica;
begin
  Result := FServer.DefaultInterface;
end;    procedure TReplicaProperties.Set_ActiveConnection(const ppconn: IDispatch);
begin
  DefaultInterface.Set_ActiveConnection(ppconn);
end;    procedure TReplicaProperties._Set_ActiveConnection(ppconn: OleVariant);
begin
  DefaultInterface._Set_ActiveConnection(ppconn);
end;    function  TReplicaProperties.Get_ActiveConnection: IDispatch;
begin
  Result := DefaultInterface.Get_ActiveConnection;
end;    function  TReplicaProperties.Get_ConflictFunction: WideString;
begin
  Result := DefaultInterface.Get_ConflictFunction;
end;    procedure TReplicaProperties.Set_ConflictFunction(const pbstr: WideString);
begin
  DefaultInterface.Set_ConflictFunction(pbstr);
end;    function  TReplicaProperties.Get_ConflictTables: _Recordset;
begin
  Result := DefaultInterface.Get_ConflictTables;
end;    function  TReplicaProperties.Get_DesignMasterId: OleVariant;
begin
  Result := DefaultInterface.Get_DesignMasterId;
end;    procedure TReplicaProperties.Set_DesignMasterId(pvar: OleVariant);
begin
  DefaultInterface.Set_DesignMasterId(pvar);
end;    function  TReplicaProperties.Get_Priority: Integer;
begin
  Result := DefaultInterface.Get_Priority;
end;    function  TReplicaProperties.Get_ReplicaId: OleVariant;
begin
  Result := DefaultInterface.Get_ReplicaId;
end;    function  TReplicaProperties.Get_ReplicaType: ReplicaTypeEnum;
begin
  Result := DefaultInterface.Get_ReplicaType;
end;    function  TReplicaProperties.Get_RetentionPeriod: Integer;
begin
  Result := DefaultInterface.Get_RetentionPeriod;
end;    procedure TReplicaProperties.Set_RetentionPeriod(pl: Integer);
begin
  DefaultInterface.Set_RetentionPeriod(pl);
end;    function  TReplicaProperties.Get_Visibility: VisibilityEnum;
begin
  Result := DefaultInterface.Get_Visibility;
end;    function  TReplicaProperties.Get_Filters: Filters;
begin
  Result := DefaultInterface.Get_Filters;
end;    {$ENDIF}    class function CoJetEngine.Create: IJetEngine;
begin
  Result := CreateComObject(CLASS_JetEngine) as IJetEngine;
end;    class function CoJetEngine.CreateRemote(const MachineName: string): IJetEngine;
begin
  Result := CreateRemoteComObject(MachineName, CLASS_JetEngine) as IJetEngine;
end;    procedure TJetEngine.InitServerData;
const
  CServerData: TServerData = (
    ClassID:   '{DE88C160-FF2C-11D1-BB6F-00C04FAE22DA}';
    IntfIID:   '{9F63D980-FF25-11D1-BB6F-00C04FAE22DA}';
    EventIID:  '';
    LicenseKey: nil;
    Version: 500);
begin
  ServerData := @CServerData;
end;    procedure TJetEngine.Connect;
var
  punk: IUnknown;
begin
  if FIntf = nil then
  begin
    punk := GetServer;
    Fintf:= punk as IJetEngine;
  end;
end;    procedure TJetEngine.ConnectTo(svrIntf: IJetEngine);
begin
  Disconnect;
  FIntf := svrIntf;
end;    procedure TJetEngine.DisConnect;
begin
  if Fintf <> nil then
  begin
    FIntf := nil;
  end;
end;    function TJetEngine.GetDefaultInterface: IJetEngine;
begin
  if FIntf = nil then
    Connect;
  Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation');
  Result := FIntf;
end;    constructor TJetEngine.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps := TJetEngineProperties.Create(Self);
{$ENDIF}
end;    destructor TJetEngine.Destroy;
begin
{$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
  FProps.Free;
{$ENDIF}
  inherited Destroy;
end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
function TJetEngine.GetServerProperties: TJetEngineProperties;
begin
  Result := FProps;
end;
{$ENDIF}    procedure TJetEngine.CompactDatabase(const SourceConnection: WideString; 
                                     const Destconnection: WideString);
begin
  DefaultInterface.CompactDatabase(SourceConnection, Destconnection);
end;    procedure TJetEngine.RefreshCache(const Connection: _Connection);
begin
  DefaultInterface.RefreshCache(Connection);
end;    {$IFDEF LIVE_SERVER_AT_DESIGN_TIME}
constructor TJetEngineProperties.Create(AServer: TJetEngine);
begin
  inherited Create;
  FServer := AServer;
end;    function TJetEngineProperties.GetDefaultInterface: IJetEngine
        
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-12-23 14:14:12 IP:63.84.xxx.xxx 未訂閱
感謝hagar兄﹒    Delphi5中Import進來的是Microsoft Jet and Replication Objects 2.1 Library﹐而Delphi6中Import進來的是Microsoft Jet and Replication Objects 2.5 Library﹐那小弟目前是使用2.5的時候出現這樣的現象﹐也將您貼出的內容做了比較﹐并未發現有不同之處﹐尚望指點﹒    謝謝﹗    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-12-23 17:16:57 IP:202.39.xxx.xxx 未訂閱
請問您是用產生 Component 還是 Create Unit 的方式? --- Everything I say is a lie. @>---
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-12-23 17:56:44 IP:63.84.xxx.xxx 未訂閱
感謝回應﹒    是使用Create Unit的方式﹒    ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
系統時間:2024-06-24 2:56:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!