使用ADO连接Access数据库,显示错误是"尚末调用CoInitialize",可我加上CoInitialize(nil);还是不行,那位高手指点一下,源代码如下
----------------------------------------------------------------------
procedure TfrmViewFun.pADOData();
begin
CoInitialize(nil);
{Join ODBC}
AConnection:=CreateOleObject('ADODB Connection');
AConnection.Open('DSN=Wordpad'); {Join Table}
// ProList table
ARecordPro:=CreateOleObject('ADODB RecordSet');
ARecordPro.Open('ProList',AConnection);
//FunType table
CoInitialize(nil);
ARecordType:=CreateOleObject('ADODB RecordSet');
ARecordType.Open('FunType',AConnection);
end;
----------------------------------------------------------------------
procedure TfrmViewFun.pADOData();
begin
CoInitialize(nil);
{Join ODBC}
AConnection:=CreateOleObject('ADODB Connection');
AConnection.Open('DSN=Wordpad'); {Join Table}
// ProList table
ARecordPro:=CreateOleObject('ADODB RecordSet');
ARecordPro.Open('ProList',AConnection);
//FunType table
CoInitialize(nil);
ARecordType:=CreateOleObject('ADODB RecordSet');
ARecordType.Open('FunType',AConnection);
end;
解决方案 »
- 动态创建控件数组及其事件相关问题
- 如何在线程中调用dll中的函数??
- 在delphi中如何使用sql脚本文件
- 请教如何向DBGridEh单元格中写数据?比如想把23这个数写到行为4,列为5的单元格中。
- 请问delphi怎么实现数据备份和还原,TShFileOpStruct是什么类?
- 请问如何让不同的窗口再次运行,即像QQ发消息那样,发送给同一人的窗口不运行第二次,其它又可以.
- 求助,关于“跨窗体传递数据的问题”?
- 一直在用流,可不知流是什么概念,查帮助,也没找到,那位高手解释一下,好吗?
- 帮投票,一小时一投,100跟帖结贴开新帖。
- 注册类
- 不太明白与不会使用的2个函数
- 急:delphi6 自带的f1book 怎么合并单元格
可能是別的錯了, 你應該將還是不行的出錯提示, 或什麼异常說出來啊!
//.......
CoInitialize(nil);
end.
//.......
Initialization
CoInitialize(nil);
end.
---------------------------------------------------------------
unit ViewFun;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,Main, ComCtrls, ExtCtrls, ToolWin, StdCtrls,ComObj, ImgList,ActiveX;type
TfrmViewFun = class(TForm)
treFunList: TTreeView;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
panFrame: TPanel;
ToolButton10: TToolButton;
ToolButton15: TToolButton;
lsvFunName: TListView;
redFunInfo: TRichEdit;
ToolButton16: TToolButton;
ImageList1: TImageList;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ToolButton15Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure pCreateTree();
procedure pADOData();
//procedure pViewFun();
end;var
frmViewFun: TfrmViewFun;
AConnection: variant;
ARecordPro:variant;
ARecordSort:variant;
ARecordFun:variant;
ARecordType:variant;implementation
uses DataBox;{$R *.dfm}procedure TfrmViewFun.pADOData();
begin
//CoInitialize(nil);
{Join ODBC}
AConnection:=CreateOleObject('ADODB Connection');
AConnection.Open('DSN=Wordpad'); {Join Table}
// ProList table
ARecordPro:=CreateOleObject('ADODB RecordSet');
ARecordPro.Open('ProList',AConnection);
//FunType table
CoInitialize(nil);
ARecordType:=CreateOleObject('ADODB RecordSet');
ARecordType.Open('FunType',AConnection);
end;//Create tree
procedure TfrmViewFun.pCreateTree();
var
MainNode:TTreeNode;
begin
pADOData();
// Get fields value
ARecordPro.MoveFirst; // Get program list
while not ARecordPro.Eof do
begin
MainNode:=treFunList.Items.Add(nil,ARecordPro.Fields['sProName']); ARecordType.MoveFirst; // Get handle type list
while not ARecordType.Eof do
begin
treFunList.Items.AddChild(MainNode,ARecordType.Fields['sTypeName']);
ARecordType.MoveNext;
end; ARecordPro.MoveNext;
end;
end;procedure TfrmViewFun.FormClose(Sender: TObject; var Action: TCloseAction);
begin
AConnection.Close;
ARecordType.Close;
ARecordPro.Close;
ARecordFun.Close;
ARecordSort.Close;
Action:=caFree;
frmMain.getViewFun(true);
end;procedure TfrmViewFun.ToolButton15Click(Sender: TObject);
begin
Close;
end;procedure TfrmViewFun.FormCreate(Sender: TObject);
begin
pCreateTree();
end; Initialization
CoInitialize(nil);
end.
ConnectionObject: _Connection;
ConnectionObject := CreateOleObject('ADODB.Connection') as _Connection;
CoInitialize(nil) 可以放在 .dpr 文件中。