com中有个接口:
ISchemaClass = interface(IDispatch)
['{2B5D4DB7-4699-4ADB-8543-1A69EC59BFD5}']
function create_schema: HResult; stdcall;
function Set_AOwner(Param1: SYSINT): HResult; stdcall;
end;
有个接口对象TSchema,
然后编写对象事件:function TSchema.Set_AOwner(Param1: SYSINT): HResult;
var p:^tcomponent;
begin
p:=ptr(param1);
AOwner:=p^; //AOwner在前面已经声明过
// Result := DefaultInterface.Set_AOwner;
end;function TSchema.create_schema: HResult;
var query1:tquery;
begin
query1.Create(AOwner);
query1.Close ;
query1.SQL.Clear;
query1.SQL.Add('create table SchemaTable1');
query1.SQL.Add('(TableName char(255),');
query1.SQL.Add(' DimKey char(255),');
query1.SQL.Add(' primary key (tableName,DimKey))');
query1.Prepare;
query1.ExecSQL ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('create table SchemaTable1');
query1.SQL.Add('(TableName char(255),');
query1.SQL.Add(' DimObj char(255),');
query1.SQL.Add(' primary key (tableName,DimObj))');
query1.Prepare;
query1.ExecSQL ;
// Result := DefaultInterface.create_schema;
end;我在form中添加一个button,事件是:procedure TForm1.Button1Click(Sender: TObject);
var crtschm:olevariant;
begin
crtschm:=coschema.create;
crtschm.AOwner:=integer(addr(self));
crtschm.Creat_schema;
end;程序能够运行起来,但是一单击button1,就出错,提示为:
Project metadataproject.exe raised exception class EOleSysError with message 'Class not registered'.Process stopped.Use Step or Run to continue.我点击错误提示的ok后,在crtschm:=coschema.create;这一句出现蓝条,用鼠标指向这句,出现提示:coschema.create=inaccessible value;开始我以为是com没注册,然后进type library点了注册按钮,但再运行还是出现这个错误,请大虾帮帮忙啊~~~~~~~~~~谢谢了!
ISchemaClass = interface(IDispatch)
['{2B5D4DB7-4699-4ADB-8543-1A69EC59BFD5}']
function create_schema: HResult; stdcall;
function Set_AOwner(Param1: SYSINT): HResult; stdcall;
end;
有个接口对象TSchema,
然后编写对象事件:function TSchema.Set_AOwner(Param1: SYSINT): HResult;
var p:^tcomponent;
begin
p:=ptr(param1);
AOwner:=p^; //AOwner在前面已经声明过
// Result := DefaultInterface.Set_AOwner;
end;function TSchema.create_schema: HResult;
var query1:tquery;
begin
query1.Create(AOwner);
query1.Close ;
query1.SQL.Clear;
query1.SQL.Add('create table SchemaTable1');
query1.SQL.Add('(TableName char(255),');
query1.SQL.Add(' DimKey char(255),');
query1.SQL.Add(' primary key (tableName,DimKey))');
query1.Prepare;
query1.ExecSQL ;
query1.Close;
query1.SQL.Clear;
query1.SQL.Add('create table SchemaTable1');
query1.SQL.Add('(TableName char(255),');
query1.SQL.Add(' DimObj char(255),');
query1.SQL.Add(' primary key (tableName,DimObj))');
query1.Prepare;
query1.ExecSQL ;
// Result := DefaultInterface.create_schema;
end;我在form中添加一个button,事件是:procedure TForm1.Button1Click(Sender: TObject);
var crtschm:olevariant;
begin
crtschm:=coschema.create;
crtschm.AOwner:=integer(addr(self));
crtschm.Creat_schema;
end;程序能够运行起来,但是一单击button1,就出错,提示为:
Project metadataproject.exe raised exception class EOleSysError with message 'Class not registered'.Process stopped.Use Step or Run to continue.我点击错误提示的ok后,在crtschm:=coschema.create;这一句出现蓝条,用鼠标指向这句,出现提示:coschema.create=inaccessible value;开始我以为是com没注册,然后进type library点了注册按钮,但再运行还是出现这个错误,请大虾帮帮忙啊~~~~~~~~~~谢谢了!
解决方案 »
- Delphi中如何通过http get方式来调用url ?
- ask for delphi engineer for a job
- 数据保存问题
- 5行代码,啥意思?
- 控件急死了啊!!100分都给你啊!!!
- 高手援助‘三层休系中,客户端程序运行问题?在另一台机运行客户端程序,提示应用服务器不能用'
- 如果实现类似与资源管理器方式的功能,那个展示文件夹内容的控件是什么,听说是ListView?怎么使用?
- 在线等待,菜单事件?请高手指点。
- 怎样写下载百分比?
- delphi利用MSXML2.XMLHTTP调用webservice带参数helloworld,参数要怎么录入
- 关于SQL语句的问题
- DBGrid 的奇怪现像,显示出两条完全相同的记录(库中只有一条)???
+--------------------------+
| 我是DELPHI菜鸟 +
+--------------------------+