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
|
|
No data from Transaction table and extremely slow. |
Author |
Message |
typo |
|
Group | : Members |
Posts | : 2 |
Joined | : 2007-04-06 |
|
Profile |
|
Posted : 2007-04-06 06:15:15 |
Hi,
I've crawled through these forums and tried everything I could find but still no luck. I have also tried what I will describe below from the demo program and SQL using linked server both with OpenQuery and 4 part naming.
Firstly, using the latest QODBC and QB 2005. My QB file is only 80Megs (1.5 years of data).
I cannot for the life of me get data out the transaction table. I've tried all data, top x, limit by dates you name it. Almost all attempts take 2-3 hours to run, I get back column names and no data but also no error messages. I tried data imports via SQL and it just crashes SQL when hitting that table.
Any ideas? Thanks Craig |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2007-04-06 10:51:02 |
The Transaction table will contain a large amount of transaction lines as there will be a line for every transaction made and modified, so a:
SELECT * FROM Transaction
query will take forever. While limiting the transactions to say only transactions modified this month (Apr 2007) is better:
SELECT * FROM Transaction where TimeModified >= {ts '2007-04-01 00:00:00.000'} and TimeModified < {ts '2007-05-01 00:00:00.000'}
You should optimize the Transaction table by running:
sp_optimizeupdatesync Transaction
in VB Demo first and then use the NOSYNC tag to queries the optimized table directly:
SELECT * FROM Transaction NOSYNC where TimeModified >= {ts '2007-01-01 00:00:00.000'} and TimeModified < {ts '2008-01-01 00:00:00.000'}
See: Using DTS to Load QuickBooks Data into Microsoft SQL Server for more. |
|
|
|
typo |
|
Group | : Members |
Posts | : 2 |
Joined | : 2007-04-06 |
|
Profile |
|
Posted : 2007-04-06 13:52:46 |
Tom,
Thanks for the reply - I did try that, I even tried just the last couple days - same result, no data.
thanks, Craig |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2007-04-06 16:12:59 |
Please use VB Demo to ensure you have valid data in the Transaction table first, not MS SQL Server. The Transaction table is only available in USA versions of QuickBooks 2006 and 2007. |
|
|
|
|
Posted : 2008-09-01 01:16:33 |
QB version 8 notes: qodbc provides direct access to the non-system tables, excluding Transaction, with a speed of about 10-20 records per second for any non-join query I run regardless of the approach (ACCESS link/load table or VBA ADO code, the VB demo, the CPP demo) and regardless of the cursor types and chunk sizes I use in my code. The Transaction table fails, or at least takes impossibly long time, to reach record one after nearly instantaneous connection, if you try to look at anything other than the structure (i.e. touch any record with your request). Using simple joins I can extract the contents of the Transaction table one related table at a time and the speed of record recovery goes down by a factor of ~10 or 20 as compared to the unjoined non-Transaction table.
This is not something that makes any sense based upon only the size of the transaction table. There seem to be buffering issues at least. It makes this tool (qodbc) of questionable value in a production situation, though it frees users from the restrictions of the QBW format and provides for advanced reporting and record maintenance.
Some fact and Opinion |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2008-09-01 08:04:41 |
Ok what you are missing here is that the TRANSACTION table isn't really a table but a glorified report table view. The transaction table should be used as a flat table only. There is no QODBC jump-in between any table the TRANSACTION table. As far linking tables are concerned, you should always use jump-in columns or a optimized index. Run:-
sp_column tablename
to see what columns jump-in to other table columns natively under QuickBooks. We also have:
sp_statistics tableaname
which is a stored procedure that returns all index information (including QuickBooks and optimizer only FQSPECIAL indexes).
Using sp_statistics BillPaymentCheckLine for example, we can see that there is now a special QODBC optimized index to use for the AppliedToTxnTxnID lookups for bill payments which doesn't exist as a native lookup in QuickBooks:-
|
|
|
|
|