Member Login

Username
Password
Forget Password
New Sign Up
Search Forum

Buy Support
Incidents

If you can't find your answer in the FREE PUBLIC QDeveloper Forum, require URGENT Priority Support, or you need to send us private or confidential information:

Click Here
If you can't login and post questions or you are having trouble viewing forum posts:
Click Here
Callback
Support

If you live in USA, UK, Canada, Australia or New Zealand, you can leave us details on your question and request us to call you back and discuss them with you personally  (charges apply).

Click Here
 
Buy Support
Incidents
If you can't find your answer in the FREE PUBLIC QDeveloper Forum, require URGENT Priority Support, or you need to send us private or confidential information:
Click Here

Forum : MS Access - ODBC Call Failed on v7 with Timeout ErrorSearch Forum

Forum Home > QODBC - ODBC Driver for QuickBooks > QODBC v7 Forum

 New Topic 
 
 Post Reply 
[1]  
 MS Access - ODBC Call Failed on v7 with Timeout Error 
 Author   Message 
  Duane 
  
 Group: Members 
 Posts: 8 
 Joined: 2006-09-20 
 Profile
 Posted : 2006-11-30 07:25:05

We recently upgraded to version 7.00.00.199 and are running QuickBooks Enterprise v7.  We are getting ODBC Call Failed on some of our larger reports/queries.  It seems like there is a limit that is cutting the query off after it runs for a minute or so.  The same queries worked fine on v6.

We get the problem when the query pulls unbilled time on all customers.  If the query is restricted to pull unbilled time on just certain customers, such as customers that start with the letters a-d, then it works fine.  By watching the status in the driver pop-up window, it appears to be working and then all of the sudden it cuts off.  We have chunking set to the max 100,000. 

This is a really important issue for us so your help is greatly appreciated.

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 Group: Administrator 
 Posts: 5510 
 Joined: 2006-02-17 
 Profile
 Posted : 2006-11-30 09:33:50

The default timeout in MS Access is 60 seconds, simply increase the query property to 600 seconds:

 

  Top 
  Duane 
  
 Group: Members 
 Posts: 8 
 Joined: 2006-09-20 
 Profile
 Posted : 2006-11-30 15:02:23

Sorry, I forgot to tell you that I already have the ODBC Timeouts all set to 0 in all of the queries to eliminate the timeout.  I originally thought that the timeouts were the problem but they've all been "turned off" and it didn't help.

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 Group: Administrator 
 Posts: 5510 
 Joined: 2006-02-17 
 Profile
 Posted : 2006-11-30 21:13:31
Reduce the chunk size to 20000 and enter a timeout value other than 0. If would also be useful to see the SQL statement that fails. 

  Top 
  Duane 
  
 Group: Members 
 Posts: 8 
 Joined: 2006-09-20 
 Profile
 Posted : 2006-12-01 02:13:08

Thanks for your quick responses, I really appreciate it.  I tried changing the chunk size to 20,000 and the timeout to 600 as you suggested but we still get an error.  I've narrowed down our problem to a particular query.  The SQL is shown below.  As I watch this query run, it pulls up all the relevant data and looks to be done then all the sudden we get:  "QODBC -- call failed, [QODBC] Data Truncated (#10002).  After this message appears, all the data that has been pulled turns to #Name?.  This is the exact query that worked in v6.  Thanks for your help. 

 

SELECT TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName AS Customer, TimeTracking.EntityRefFullName AS Employee, TimeTracking.ItemServiceRefFullName AS Item, TimeTracking.Notes, TimeTracking.TxnDate AS [Date], [DurationMinutes]/60 AS Hours, TimeTracking.BillableStatus, TimeTracking.ItemServiceRefListID
FROM TimeTracking
GROUP BY TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName, TimeTracking.EntityRefFullName, TimeTracking.ItemServiceRefFullName, TimeTracking.Notes, TimeTracking.TxnDate, TimeTracking.BillableStatus, TimeTracking.ItemServiceRefListID, TimeTracking.DurationMinutes
HAVING (((TimeTracking.CustomerRefFullName) Like "*" & [?Customer?] & "*") AND ((TimeTracking.TxnDate)<=[Cutoff]) AND ((TimeTracking.BillableStatus)="Billable"))
ORDER BY TimeTracking.ItemServiceRefFullName, TimeTracking.TxnDate;

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 Group: Administrator 
 Posts: 5510 
 Joined: 2006-02-17 
 Profile
 Posted : 2006-12-01 10:48:54

I can't run your query, but I got this simplified one to work:

SELECT TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName AS Customer, TimeTracking.EntityRefFullName AS Employee, TimeTracking.ItemServiceRefFullName AS Item, TimeTracking.Notes, TimeTracking.TxnDate AS Date, TimeTracking.DurationMinutes/60 AS Hours, TimeTracking.ItemServiceRefListID
FROM TimeTracking
GROUP BY TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName, TimeTracking.EntityRefFullName, TimeTracking.ItemServiceRefFullName, TimeTracking.Notes, TimeTracking.TxnDate, TimeTracking.ItemServiceRefListID, TimeTracking.DurationMinutes
HAVING TimeTracking.CustomerRefFullName Like 'Abercrombie%'
ORDER BY TimeTracking.ItemServiceRefFullName, TimeTracking.TxnDate

I suggest you try:

SELECT TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName AS Customer, TimeTracking.EntityRefFullName AS Employee, TimeTracking.ItemServiceRefFullName AS Item, TimeTracking.Notes, TimeTracking.TxnDate AS Date, TimeTracking.DurationMinutes/60 AS Hours, TimeTracking.BillableStatus, TimeTracking.ItemServiceRefListID
FROM TimeTracking
GROUP BY TimeTracking.CustomerRefListID, TimeTracking.CustomerRefFullName, TimeTracking.EntityRefFullName, TimeTracking.ItemServiceRefFullName, TimeTracking.Notes, TimeTracking.TxnDate, TimeTracking.BillableStatus, TimeTracking.ItemServiceRefListID, TimeTracking.DurationMinutes
HAVING (((TimeTracking.CustomerRefFullName) Like "*" & [?Customer?] & "*") AND ((TimeTracking.TxnDate)<=[Cutoff]) AND ((TimeTracking.BillableStatus)="Billable"))
ORDER BY TimeTracking.ItemServiceRefFullName, TimeTracking.TxnDate;

In my opinion, "[DurationMinutes]/60 AS Hours" is causing a "real" ODBC Call Failed error here and this is not a timeout error. Please check the use of Cutoff also.

 

 

  Top 
  Duane 
  
 Group: Members 
 Posts: 8 
 Joined: 2006-09-20 
 Profile
 Posted : 2006-12-02 04:31:49

Good news...I figured it out.

I rebuilt the query from scratch, adding one field at a time and I found the problem field: TimeTracking.Notes

The query worked flawlessly with the original sql as long as I left out the Notes field.  With the Notes field included, I had to limit the query results by restricting CustomerRefFullName to Like "a*" or Like "b*" or Like "c*" or Like "d*"......I could get to the Like "w*" before the truncation error occured. 

I narrowed the error down to a single customer that started with the letter W.  There was, in fact, a really long note on the employee timesheet for this customer.  After shotening the note, the query is now running smoothly. 

Thanks for your help.

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 Group: Administrator 
 Posts: 5510 
 Joined: 2006-02-17 
 Profile
 Posted : 2006-12-02 12:22:52

You could have also limited the size of the notes returned to say 50 characters programatically like this:-

{fn LEFT("TimeTracking.Notes", 50)} AS "ShortNotes"

 

  Top 
  Tom 
  6c3c1_sdk-qodbc.gif
 Group: Administrator 
 Posts: 5510 
 Joined: 2006-02-17 
 Profile
 Posted : 2006-12-20 10:33:52
We have added conversion support for Text Field Handling in the Advanced Tab in the QODBC Setup Screen: Convert Fields > 255 to LONG VARCHAR and Limit length to: These fields help some development environments get data from long fields that would not be able to otherwise. Connection string options include: ConvertToLongVARCHAR=Yes|No and MaxLONGVARCHAR=4096.  See: QODBC v7.0.0.204 Released for more.   

  Top 
 New Topic 
 
 Post Reply 
[1]  

Jump to