我正在使用QODBC驅動程序處理將自定義應用程序中創建的發票導入QuickBooks的代碼。我的工作幾乎可行,但我遇到了INSERT問題,它添加了實際的發票記錄。我的整體代碼基於http://support.flexquarters.com/esupport/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=10726&nav=0,58,64上的模型。插入QuickBooks發票行時出錯
在這個特定的情況下,插入到InvoiceLine表在工作,但INSERT到發票失敗,此錯誤:
[QODBC]錯誤:3140 - 有一個無效引用QuickBooks的項目「」在發票行。
下面是我送在這種情況下,INSERT命令:
INSERT INTO Invoice (CustomerRefListID, ARAccountRefFullName, TxnDate, RefNumber, TermsRefFullName, TemplateRefFullName, SalesRepRefListID, ClassRefListID)
VALUES ('80000855-1326914216', 'Receivables', {d '2012-01-17'}, '12-1005', '30 days', 'Customized Invoice', '30000-1034349330', '8F70000-912629594')
爲CustomerRefListID,SalesRepListID和ClassRefListID值都做一下起坐到相應的表來確定。我也確認在「條款」表中出現「30天」。
生成此命令的代碼的早期版本在幾天前使用了不同的數據。它使用了SalesRepRefFullName和ClassRefFullName。我修改它是因爲這個案例的失敗,認爲我可用的字符串並不總是完全匹配全名。
歡迎任何建議。
Tamar
這已經變得更有趣了。我隔離了INSERT命令(用於InvoiceLine和Invoice)並一次發送一個;當我這樣做時,完全相同的插入序列運行沒有問題。但是,當我遍歷構建命令併發送它們的代碼時,如上所述,最終插入失敗。我確定INSERT命令是相同的,因爲我將它們寫入程序的日誌並從那裏剪切並粘貼來進行手動測試。 INSERT之間的其他SQL命令是否會導致問題?我發送的唯一命令是SELECTs以獲取ListID。 – 2012-01-19 21:21:05