Arsip: Error waktu bikin Compact MDB

more 16 years ago
shindo
mohon bantuan rekan sekalian,
waktu saya coba buat proses utk compact MDB
kalau tidak salah saya buat sesuai contoh yg ada di delphi.about spt ini
komponen yg digunakan diimport dari MS Replication Object terlebih dulu
pada saat saya jalankan ternyata ada error 'Class not registered'
bagaimana cara membetulkannya yah ?
berikut potongan programnya
function TForm1.DatabaseCompact(const sdbName: WideString) : boolean;
var
JE : TJetEngine; //Jet Engine
sdbTemp : WideString; //TEMP database
sdbTempConn : WideString; //Connection string
const
SProvider = 'Provider=Microsoft.Jet.OLEDB.4.0 Data Source=';
begin
Result:=False;
sdbTemp := ExtractFileDir(sdbName)+'TEMP'+ExtractFileName(sdbName);
sdbTempConn := SProvider + sdbtemp;
if FileExists(sdbTemp) then
DeleteFile(sdbTemp);
JE:= TJetEngine.Create(Application);
try
try
JE.CompactDatabase(SProvider + sdbName, sdbTempConn);
DeleteFile(sdbName);
RenameFile(sdbTemp, sdbName);
except
on E:Exception do
ShowMessage(E.Message);
end;
finally
JE.FreeOnRelease;
Result:=True;
end;
end;
procedure TForm1.btCompactClick(Sender: TObject);
begin
DatabaseCompact('C:\TesData.mdb');
end;
mohon pencerahannya
TIA
more 16 years ago
ImanD
error 'Class not registered'klo diliat dr errornya file yg di import harus di register(mungkin .dll atw .ocx), buka run,
regsvr32 c:\regis.dll
tinggal aplikasikan di delphi-nya
more 16 years ago
shindo
gw udah coba register msjro.dll nya
tapi hasilnya kok tetep sama yah ...
ada yg udah pernah coba ?
pls bantuin dong ... atau ada file dll yg laen yg perlu di register ?
gw kurang mengerti soalna
mohon pencerahannya
TIA

more 16 years ago
delphi_warrior
TIA pake delphi ver brapa ?
kalo pake delphi ver 5.00 no problem....
aku juga pernah ngalami itu, aku pake delphi ver 6....
coba aja file jro_tlb.pas .....kamu overwrite dgn punyaku...
good luck yach
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.130 $
// File generated on 17-10-06 13:12:09 from Type Library described below.
// //
// Type Lib: C:\PROGRAM FILES\COMMON FILES\SYSTEM\ADO\MSJRO.DLL (1)
// LIBID: {AC3B8B4C-B6CA-11D1-9F31-00C04FC29D52}
// LCID: 0
// Helpfile: C:\PROGRAM FILES\COMMON FILES\SYSTEM\ADO\msjro.chm
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\SYSTEM\stdole2.tlb)
// (2) v2.6 ADODB, (C:\PROGRAM FILES\COMMON FILES\SYSTEM\ADO\msado15.dll)
// (3) v4.0 StdVCL, (C:\WINDOWS\SYSTEM\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
// //
// //
// 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.
{$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers.
{$WARN SYMBOL_PLATFORM OFF}
{$WRITEABLECONST ON}
interface
uses ActiveX, ADODB_TLB, Classes, Graphics, OleServer, StdVCL, Variants,
Windows;
// //
// 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 = 6;
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: Recordset15; 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 ConflictFunction: WideString read Get_ConflictFunction;
property ConflictTables: Recordset15 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 RetentionPeriod: Integer read Get_RetentionPeriod write set_RetentionPeriod;
property Visibility: VisibilityEnum read Get_Visibility;
property Filters: Filters read Get_Filters;
property ActiveConnection : IDispatch read Get_ActiveConnection write _Set_ActiveCOnnection;
end;
// //
// DispIntf: IReplicaDisp
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {D2D139E0-B6CA-11D1-9F31-00C04FC29D52}
// //
IReplicaDisp = dispinterface
['{D2D139E0-B6CA-11D1-9F31-00C04FC29D52}']
property ConflictFunction: WideString readonly dispid 1610743811;
property ConflictTables: Recordset15 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: Connection15); 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: Connection15); 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: Recordset15;
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: Recordset15 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: Recordset15;
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: Connection15);
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;
resourcestring
dtlServerPage = 'ActiveX';
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);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := ppconn;
end;
procedure TReplica.Set_ActiveConnection(ppconn: OleVariant);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := ppconn;
end;
function TReplica.Get_ActiveConnection: IDispatch;
begin
Result := DefaultInterface.ActiveConnection;
end;
function TReplica.Get_ConflictFunction: WideString;
begin
Result := DefaultInterface.ConflictFunction;
end;
procedure TReplica.Set_ConflictFunction(const pbstr: WideString);
{ Warning: The property ConflictFunction has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ConflictFunction := pbstr;
end;
function TReplica.Get_ConflictTables: Recordset15;
begin
Result := DefaultInterface.ConflictTables;
end;
function TReplica.Get_DesignMasterId: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.DesignMasterId;
end;
procedure TReplica.Set_DesignMasterId(pvar: OleVariant);
begin
DefaultInterface.DesignMasterId := pvar;
end;
function TReplica.Get_Priority: Integer;
begin
Result := DefaultInterface.Priority;
end;
function TReplica.Get_ReplicaId: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.ReplicaId;
end;
function TReplica.Get_ReplicaType: ReplicaTypeEnum;
begin
Result := DefaultInterface.ReplicaType;
end;
function TReplica.Get_RetentionPeriod: Integer;
begin
Result := DefaultInterface.RetentionPeriod;
end;
procedure TReplica.Set_RetentionPeriod(pl: Integer);
begin
DefaultInterface.RetentionPeriod := pl;
end;
function TReplica.Get_Visibility: VisibilityEnum;
begin
Result := DefaultInterface.Visibility;
end;
function TReplica.Get_Filters: Filters;
begin
Result := DefaultInterface.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);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := ppconn;
end;
procedure TReplicaProperties.Set_ActiveConnection(ppconn: OleVariant);
{ Warning: The property ActiveConnection has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ActiveConnection := ppconn;
end;
function TReplicaProperties.Get_ActiveConnection: IDispatch;
begin
Result := DefaultInterface.ActiveConnection;
end;
function TReplicaProperties.Get_ConflictFunction: WideString;
begin
Result := DefaultInterface.ConflictFunction;
end;
procedure TReplicaProperties.Set_ConflictFunction(const pbstr: WideString);
{ Warning: The property ConflictFunction has a setter and a getter whose
types do not match. Delphi was unable to generate a property of
this sort and so is using a Variant to set the property instead. }
var
InterfaceVariant: OleVariant;
begin
InterfaceVariant := DefaultInterface;
InterfaceVariant.ConflictFunction := pbstr;
end;
function TReplicaProperties.Get_ConflictTables: Recordset15;
begin
Result := DefaultInterface.ConflictTables;
end;
function TReplicaProperties.Get_DesignMasterId: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.DesignMasterId;
end;
procedure TReplicaProperties.Set_DesignMasterId(pvar: OleVariant);
begin
DefaultInterface.DesignMasterId := pvar;
end;
function TReplicaProperties.Get_Priority: Integer;
begin
Result := DefaultInterface.Priority;
end;
function TReplicaProperties.Get_ReplicaId: OleVariant;
var
InterfaceVariant : OleVariant;
begin
InterfaceVariant := DefaultInterface;
Result := InterfaceVariant.ReplicaId;
end;
function TReplicaProperties.Get_ReplicaType: ReplicaTypeEnum;
begin
Result := DefaultInterface.ReplicaType;
end;
function TReplicaProperties.Get_RetentionPeriod: Integer;
begin
Result := DefaultInterface.RetentionPeriod;
end;
procedure TReplicaProperties.Set_RetentionPeriod(pl: Integer);
begin
DefaultInterface.RetentionPeriod := pl;
end;
function TReplicaProperties.Get_Visibility: VisibilityEnum;
begin
Result := DefaultInterface.Visibility;
end;
function TReplicaProperties.Get_Filters: Filters;
begin
Result := DefaultInterface.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: Connection15);
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;
begin
Result := FServer.DefaultInterface;
end;
{$ENDIF}
procedure Register;
begin
RegisterComponents(dtlServerPage, [TReplica, TJetEngine]);
end;
end.

more 16 years ago
shindo
@delphi_warrior :
saran yg mas berikan sudah saya coba, tapi masih belum bisa
btw itu setelah dioverwrite file jro_tlb.pas nya ... kemudian apa yg harus saya lakukan ?
saya compile ulang project saya yg compact MDB masih tetap tidak bisa ... dan message nya masih tetap sama 'Class not Registered'

more 16 years ago
delphi_warrior
@ shindo , kamu pake delphi ver brapa?
kalo yg aku tahu dr situs delphi.about.com,
itu ada beberapa procedure yg hrs ditambahkan sendiri utk yg delphi ver 5 ke atas....
itupun errornya cuma unknown......? (aku lupa)
coba aja kamu reinstall delphinya, ato pake ver 6.00 aja
good luck yach.....

more 16 years ago
shindo
yg saya pakai Delphi 7
err ... kalau mau reinstall kelihatannya tidak memungkinkan, karena ini di kantor
mohon pencerahannya ... mana yg perlu diperbaiki
thx a lot :D

more 16 years ago
novlog
komponen yg digunakan diimport dari MS Replication Object terlebih dulu pada saat saya jalankan ternyata ada error 'Class not registered'koq rada aneh ya? klo memang udah bisa di import menjadi komponen brarti Class tsb seharus nya udah registered.. CMIIW coba scriptnya di ubah dikit jd kya giniy:
function TForm1.DatabaseCompact(const sdbName: WideString) : boolean;
var
JE : Variant; //Jet Engine
.....
begin
Result:=False;
.......
JE:= CreateOleObject('JRO.JetEngine');
JE.CompactDatabase(SProvider + sdbName, sdbTempConn);
........
end;
sebelumnya klo komponen TJetEngine nya emang error,
coba di remove dulu dari project. trus di timpa code diatas yup..
smg lancar..
more 16 years ago
shindo
udah coba instal updatepack/servicepack utk delphi 7?gw coba nyari2 kok ga pernah dapet ya ... trus nanya2 ke yg pake ori kok katanya kalo update pack yg ada itu buat delphi 5 aja ... yg buat delphi 6 & 7 ngga ada yg bener gimana mustinya ? ada atau engga yah ?
more ...
- Pages:
- 1
reply |
Report Obsolete
Last Articles
Last Topic
- PascalTalk #6: (Podcast) Kuliah IT di luar negeri, susah gak sih?
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #5: UX: Research, Design and Engineer
by LuriDarmawan in Tutorial & Community Project more 2 years ago - PascalTalk #4: Obrolan Ringan Seputar IT
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #2: Membuat Sendiri SMART HOME
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #3: RADically Fast and Easy Mobile Apps Development with Delphi
by LuriDarmawan in Tutorial & Community Project more 3 years ago - PascalTalk #1: Pemanfaatan Artificial Intelligence di Masa Covid-19
by LuriDarmawan in Tutorial & Community Project more 3 years ago - Tempat Latihan Posting
by LuriDarmawan in OOT more 3 years ago - Archive
- Looping lagi...
by idhiel in Hal umum tentang Pascal Indonesia more 11 years ago - [ask] koneksi ke ODBC user Dsn saat runtime dengan ado
by halimanh in FireBird more 11 years ago - Validasi menggunakan data tanggal
by mas_kofa in Hal umum tentang Pascal Indonesia more 11 years ago
Random Topic
- backup database ACCESS dari Delphi
by ganang in Tutorial & Community Project more 16 years ago - Stored Procedure,triger MYSQL
by surip in Hal umum tentang Pascal Indonesia more 16 years ago - ada yang salah g' dng SQL commandku
by arjuna_1982 in MySQL more 14 years ago - data dari database (MySQL)
by alvian_tc in MySQL more 14 years ago - Hargai Karya Orang Lain
by doels in Kritik & Saran more 16 years ago - program multi user
by gito in Lain-lain more 16 years ago - scrolling navigator pada DBGrid dan pada Combobox
by Tiwul in Form Enhancement & Graphical Controls more 12 years ago - cara cek Tstringlist?
by barcodebima in Tip n Trik Pemrograman more 16 years ago - Apakah Program Anda Siap Jalan di OS Windows Vista ?
by MrMixer in Form Enhancement & Graphical Controls more 16 years ago - jumlah
by brodien in Tip n Trik Pemrograman more 17 years ago