2013-08-05 213 views
0

我试图用delphi通过qbfc库连接到QuickBooks公司文件7.德尔福的QuickBooks

进口已经创造了一个QBFC12Lib_TLB的类型库文件

包含的文件到我的窗体的应用列表

代码连接到库

var 
    TempSession : QBSessionManager; 
    TempRequest : IMsgSetRequest; 
    TempCustomer : ICustomerAdd; 
    TempResponse : IMsgSetResponse; 
    AppID, AppName : WideString; 
begin 
    AppID := '123'; 
    AppName := 'Hello'; 
    TempSession.OpenConnection2(AppID, AppName, ctLocalQBDLaunchUI); 
    TempSession.BeginSession('', omDontCare); 

但访问冲突错误发生在“TempSession.OpenConnection2 ......”

有没有人试过这个或有人可以有一些样品如何做到这一点?

+4

像其他任何Delphi类或接口一样,您需要在使用它之前真正创建它。在Delphi为您创建的类中查看类型库(TLB文件)。你会看到一个类似'TQBSessionManager'的东西,它有一个'Create'构造函数。使用它,就像'TempSession:= TQBSessionManager.Create;'(你需要查看该构造函数以确切知道如何调用它,因为我没有安装QB - 如果我这样做了,我会发布一个答案代替)。在调用构造函数之后,您应该可以使用'TempSession.OpenConnection2'和其他。 –

回答

2

由于Ken White建议(并在this SO question所示),您需要实例化QBSessionManager对象打电话之前OpenConnection2

QBSessionManager TempSession = new QBSessionManager(); 

或可能(虽然我无法找到使用这个符号的任何实例)

TempSession := QBSessionManager.Create(); 
+1

感谢万@Sam看来我使用的是QBSessionManager而不是TQBSessionManager – KE50