Iterator Error |
Author |
Message |
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-07 00:59:06 |
I added FROM UNOPTIMIZED to my Customer query to force all records to be returned and I received the below.
OLE DB provider "MSDASQL" for linked server "egroup_QB" returned message "[QODBC] Error: 3391 - The iteratorID "{deaaec06-c36b-4dfa-b1a5-28eea7a909ee}" is not valid.".
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "egroup_QB".
|
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-07 08:34:38 |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-07 09:43:27 |
I followed the instructions and I am attempting the queries now. Could the iterator error be related to a corrupt optimizer file? I was getting that error without using the UNOPTIMIZED argument as well.
Also, could a corrupt file explain the BillItemLine NULL error I was receiving? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-07 14:08:55 |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-08 03:36:30 |
Most queries are returning this iterator error - it has rendered the application unusable. Any suggestions at all? I have already reinstalled QODBC with no luck.
Cannot fetch a row from OLE DB provider "MSDASQL" for linked server "egroup_QB". OLE DB provider "MSDASQL" for linked server "egroup_QB" returned message - The iteratorID {fef44ce9-bb35-42db-8e20-1ba493576f73} is not valid.
Help.
Ian |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-08 12:24:18 |
You need to be using the Microsoft OLE DB Provider for ODBC for your QODBC linked tables. |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-09 00:56:35 |
MSDASQL is the Microsoft OLE DB Provider for ODBC -
Some queries work and some don't - the same queries that are now failing with the above error worked fine a couple of days ago. Even now, some continue to work.
Is that error being returned from QODBC or the QB SDK? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-09 15:56:34 |
Please ensure you're running QODBC v6.00.00.176 and then test the queries that fail using VB Demo and look at both the QODBC and SDK Message logs to see what the real errors are.
See: How do I turn on the trace log? for more. |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-11 10:07:49 |
One other thing to note - just as I was having issues with a certain column being NULL in BillItemLine - TimeTracking returns the iterator error when I select certain columns but not when I select * (wierd!).
Example from QODBC Log: (There were a lot of these)
2006-07-10 18:50:12 QODBC Ver: 6.00.00.176 ********************************************************************************************************************* IsAService: True SQLOptimize_OpenOptimizeDBHandle prepare: SELECT "type", "tbl_name" FROM "SQLite_MASTER" file is encrypted or is not a database
Example from SDK Log:
20060710.185349 I 3988 RequestProcessor ========= Started Connection ========= 20060710.185349 I 3988 RequestProcessor Request Processor, QBXMLRP2 v5.0 20060710.185349 I 3988 RequestProcessor Connection opened by app named 'FLEXquarters QODBC' 20060710.185349 I 3988 CertVerifier The file does not contain an Authenticode signature. 20060710.185352 I 3988 RequestProcessor Opening the file in the DoNotCare mode. 20060710.185352 I 3988 RequestProcessor Connection closed by app named 'FLEXquarters QODBC' 20060710.185352 I 3988 RequestProcessor ========== Ended Connection ========== 20060710.185352 I 552 QBSDKProcessRequest Application named 'FLEXquarters QODBC' starting requests (process 3988). 20060710.185354 I 552 SpecVersion Current version of qbXML in use: 5.0 20060710.185354 I 552 QBSDKMsgSetHandler QUERY: Bill 20060710.185354 I 552 BillStorage::DoQuery Setting iterator chunk size to 00000100 20060710.185732 I 552 QBSDKMsgSetHandler Request 1 completed successfully. 20060710.185732 I 552 MsgSetHandler Finished. 20060710.185732 I 552 QBSDKProcessRequest Application named 'FLEXquarters QODBC' finishing requests (process 3988), ret = 0. 20060710.185733 I 552 QBSDKProcessRequest Application named 'FLEXquarters QODBC' starting requests (process 3988). 20060710.185734 I 552 SpecVersion Current version of qbXML in use: 5.0 20060710.185734 I 552 QBSDKMsgSetHandler QUERY: Time Tracking 20060710.185734 I 552 TimeTrackingStorage::DoQuery Setting iterator chunk size to 00000100 20060710.185735 I 552 QBSDKMsgSetHandler Request 1 completed successfully. 20060710.185735 I 552 MsgSetHandler Finished. 20060710.185735 I 552 QBSDKProcessRequest Application named 'FLEXquarters QODBC' finishing requests (process 3988), ret = 0. |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-11 11:19:23 |
The question was, do the queries run successfully using VB Demo? |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-11 13:25:11 |
Yes, they work fine in VBDemo. Also, the query that returns the null error in BillItemLine works fine in VBDemo.
This was a sudden thing - everything was working great and then these null and iterator errors started. I am not aware of anything that changed to cause this to happen.
Thanks again for your help.
Ian |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-11 13:27:24 |
I also found this in the log:
2006-07-10 19:44:40 QODBC Ver: 6.00.00.176 ********************************************************************************************************************* IsAService: True SQL Statement: SELECT TxnID, VendorRefListID, TxnDate, DueDate, AmountDue, TermsRefListID, ItemLineCustomerRefListID, ItemLineItemRefListID, ItemLineQuantity, ItemLineCost, ItemLineAmount, ItemLineBillableStatus, Memo, ItemLineDesc FROM BillItemLine WHERE ItemLineI temRefListID = '370001-1118367865' Error Getting XML in BuildAndLoadXMLForNextRecord Input XML: <?xml version="1.0" encoding="ISO-8859-1"?> <?qbxml version="5.0"?> <QBXML> <QBXMLMsgsRq onError="continueOnError"> <BillQueryRq requestID="1" iterator="Continue" iteratorID="{ae480fd2-f056-4bec-9fc5-ee67185c00ba}"> <MaxReturned>00000100</MaxReturned> <IncludeLineItems>1</IncludeLineItems> <IncludeLinkedTxns>0</IncludeLinkedTxns> <IncludeRetElement>TxnID</IncludeRetElement> <IncludeRetElement>EditSequence</IncludeRetElement> <IncludeRetElement>VendorRef</IncludeRetElement> <IncludeRetElement>TxnDate</IncludeRetElement> <IncludeRetElement>DueDate</IncludeRetElement> <IncludeRetElement>AmountDue</IncludeRetElement> <IncludeRetElement>TermsRef</IncludeRetElement> <IncludeRetElement>Memo</IncludeRetElement> <IncludeRetElement>ItemGroupLineRet</IncludeRetElement> <IncludeRetElement>ItemLineRet</IncludeRetElement> </BillQueryRq> </QBXMLMsgsRq> </QBXML> |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-11 14:27:45 |
Queries like:
SELECT TxnID, VendorRefListID, TxnDate, DueDate, AmountDue, TermsRefListID, ItemLineCustomerRefListID, ItemLineItemRefListID, ItemLineQuantity, ItemLineCost, ItemLineAmount, ItemLineBillableStatus, Memo, ItemLineDesc FROM BillItemLine WHERE ItemLineItemRefListID = '370001-1118367865'
have to do a full table scan of BillItemLine. So the larger the number of records, the longer it's going to take. At this stage I'm guessing something is happening while running this query via a SQL Server Linked table.
Does the error happen all of the time, some of the time, or if it's the only thing running?
What version of QuickBooks are you running (including update release [R6 or R7])? |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-12 14:55:01 |
The null item error happens every time with the BillItemLine. The error that is returned to SQL is not a SQL error, it is a QB error isn't it?
The larger issue is most queries now fail with the iterator error I mentioned to you. I did get a customer query to run yesterday but it only returned 101 rows before failing and giving the iterator error. I am seeing this iterator error in Customer, Vendor, TimeTracking, etc.
Quickbooks Pro 2006 Release R7P |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-13 00:28:21 |
This issue has been escalated to second level support to our Software Engineer on Ticket ID: QS00000001. It may take up to 48 hours before a reply is posted here. |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-18 11:25:17 |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-07-18 14:12:38 |
We will most likely add a setting to the QODBC Advanced Setup tab to turn off the Iterators for use with MS SQL Server and other multi-threaded applications. The QuickBooks session is per thread and we have to restart a new session every time the MS SQL Server thread ID changes.
Note: Only USA Editions of QuickBooks 2006 have the iterator feature, meaning QuickBooks 2005 and other country versions (non-USA editions) don't have this issue. |
|
|
|
Ian |
|
Group | : Members |
Posts | : 19 |
Joined | : 2006-05-03 |
|
Profile |
|
Posted : 2006-07-18 20:35:30 |
What is the time frame for something like this? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2006-08-14 10:38:32 |
This has been fixed in QODBC Setup v6 Build 186 (or higher):
QODBC Advanced Setup
The selected defaults in the Advanced settings should apply to most users and normally don't need not be changed.
- Reconnect Delay: Is an amount of time to wait after a disconnect when using the remote connector. This allows QuickBooks to fully unload it if it is being loaded in the background on the Host Remote Connector, before you connect again.
- Maximum Field Name Length: is set to the QuickBooks limitation but certain applications like Delphi can not handle this limit and must be set accordingly.
- Use Case Sensitive RefNumber Searches when checked means a refnumber of 'ABC' and 'abc' will be different, but means QuickBooks can use an index internally for a search instead of a complete table scan. (Note: this feature applies to versions of QuickBooks 2005 and higher)
- Include Raw Files if checked will display both filtered and raw data formats. QODBC formats data into SQL field types more easily used in programming languages for math and comparison operations. The Raw tables return the data as it is returned to QODBC without modification.
- Run 2.1 ODBC Compatibility is checked for certain applications that require ODBC 2.1 Compatibility to use QODBC. Anything that uses the Java ODBC library, like ColdFusion, requires this option turned on or recordsets will be returned with no rowsets or only 1 rowset.
- Simulate Transaction Support for SQL Server will turn transaction support on so that SQL Server will allow updates when using QODBC as a linked server. QODBC still does not support transactions, but simulates the turning on and off of transactions.
- The Advanced tab in QODBC Setup v6 Build 186 and later has new defaults for Use Iterators and Iterator or Chunk Size fields. This allows you to turn off iterators. This is needed on systems like MS-SQL and Web Servers that use multiple threads.
- Integrated Application Defaults Authorization popup settings. These settings are only available to USA QuickBooks 2005 and USA QuickBooks 2006 users, otherwise they are greyed out.
|
|
|
|
|
Posted : 2008-06-10 09:09:39 |
I am importing data from QB to SQL Server . I could't import some tables and record this error
Msg 7342, Level 16, State 1, Line 1
An unexpected NULL value was returned for column "[QB]...[WorkersCompCode].Desc" from OLE DB provider "MSDASQL" for linked server "QB". This column cannot be NULL.
I have looked on itreator option under Advance table it is checked and default vlaue is 500.
I am using 8.00.00.240 trial version of QODBC and Enterprise edition 2008 of QB?
Is there any soultion.
|
|
|
Ahmad Drshen
MCP,MCDBA,MCITP |
| Top | |
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2008-06-10 11:33:16 |
This error has nothing to do with the Iterator. Some columns in QuickBooks will return NULL values. For example: BillItemLine.ItemGroupLineItemGroupRefListID is often a NULL because not every inventory item will belong to a group. You will need to subsitute the null value using something along the lines of:
Select TxnID, {fn IFNULL(ItemGroupLineItemGroupRefListID, 'NULL')} as ItemGroupLineItemGroupRefID from BillItemLine |
|
|
|