2013-08-05 217 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