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
|
|
This feature is not enabled or not available in this version of QuickBooks. |
Author |
Message |
|
Posted : 2008-07-16 05:52:49 |
Using ADODB to perform an SQL UPDATE of a field in an Invoice returns the error:
This feature is not enabled or not available in this version of QuickBooks.
The same SQL UPDATE statement runs in the VB Demo on the same DSN without an error.
The UPDATE appears to succeed, in spite of the error, but I'm curious about what causes this error, and what "feature" the message refers to.
This is the Server version of QODB 8 running on the same computer as the Quickbooks 2008 Pro server. The QB version is V18.0D R1. This is not a QODBC evaluation license. The QODBC Version is 8.00.00.242.
Here's a snippet of VBSCRIPT that demonstrates the problem:
Dim oConnection, oRecordset, objCommand, objErr Dim fso, stdout, mySQL
Const adCmdText = &H0001
Set fso = CreateObject ("Scripting.FileSystemObject") Set stdout = fso.GetStandardStream (1) Set objCommand=CreateObject("ADODB.Command") Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open "DSN=Quickbooks Data"
mySQL = "UPDATE Invoice SET FOB = 'XXX' WHERE TxnID = 'C8412-1216141346'"
Set objCommand.ActiveConnection = oConnection objCommand.CommandType = adCmdText objCommand.CommandText = mySQL objCommand.CommandTimeout = 30000 On Error Resume Next ' check explicitly later
objCommand.Execute For each objErr in oConnection.Errors stdout.WriteLine "Description: " & objErr.Description stdout.WriteLine "Help context: " & objErr.HelpContext stdout.WriteLine "Help file: " & objErr.HelpFile stdout.WriteLine "Native error: 0x " & Hex(objErr.NativeError) stdout.WriteLine "Error number: 0x" & Hex(objErr.Number) stdout.WriteLine "Error source: " & objErr.Source stdout.WriteLine "SQL state: " & objErr.SQLState Next On Error GoTo 0 ' Re-enable error trapping
WScript.Quit
The output is:
Description: This feature is not enabled or not available in this version of QuickBooks. Help context: 1319 Help file: qbwoa.hlp Native error: 0x 0 Error number: 0x0 Error source: QuickBooks.Application.18 SQL state:
There are no relevant messages in the QODBC message log.
The SDK message log reports:
20080715.134736 I 4720 QBSDKProcessRequest Application named 'FLEXquarters QODBC' starting requests (process 3544). 20080715.134736 I 4720 SpecVersion Current version of qbXML in use: 7.0 20080715.134736 I 4720 QBSDKMsgSetHandler QUERY: Invoice 20080715.134736 I 4720 QBSDKMsgSetHandler Request 1 completed successfully. 20080715.134736 I 4720 MsgSetHandler Finished. 20080715.134736 I 4720 QBSDKProcessRequest Application named 'FLEXquarters QODBC' finishing requests (process 3544), ret = 0. 20080715.134736 I 4720 QBSDKProcessRequest Application named 'FLEXquarters QODBC' starting requests (process 3544). 20080715.134736 I 4720 SpecVersion Current version of qbXML in use: 7.0 20080715.134736 I 4720 QBSDKMsgSetHandler MODIFY: Invoice 20080715.134736 E 4720 InvoiceStorage::BuildInvoiceLine This feature is not enabled or not available in this version of QuickBooks. HRESULT=0x80040527 20080715.134736 E 4720 InvoiceStorage::BuildInvoiceLine This feature is not enabled or not available in this version of QuickBooks. HRESULT=0x80040527 20080715.134736 E 4720 InvoiceStorage::BuildInvoiceLine This feature is not enabled or not available in this version of QuickBooks. HRESULT=0x80040527 20080715.134736 E 4720 InvoiceStorage::BuildInvoiceLine This feature is not enabled or not available in this version of QuickBooks. HRESULT=0x80040527 20080715.134736 I 4720 QBSDKMsgSetHandler Request 1 completed successfully. 20080715.134736 I 4720 MsgSetHandler Finished. 20080715.134736 I 4720 QBSDKProcessRequest Application named 'FLEXquarters QODBC' finishing requests (process 3544), ret = 0. 20080715.134736 I 3544 RequestProcessor Connection closed by app named 'FLEXquarters QODBC' 20080715.134736 I 3544 RequestProcessor ========== Ended Connection ==========
Any suggestions? |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2008-07-16 08:27:59 |
FOB (free on board) refers to the site from which you usually ship your invoiced products. It has no accounting implications within QuickBooks. You can specify an FOB site to be filled in automatically on sales forms where the FOB field appears.
Where to find this preference:
You need to check with Intuit whether FOB is supported by QuickBooks Pro. It's supported in QuickBooks Premier and Enterprise. |
|
|
|
|
Posted : 2008-07-16 12:50:46 |
Hi Tom
Thanks for the reply. I'm familiar with the FOB field. My problem happened originally with a custom field I was updating, but to eliminate the possibility that the problem was related to custom fields, I also tried it with some of the standard fields. I just picked 'FOB' for the simple demo code because it takes a character string value. I know that the 'FOB' field is supported in QB Pro, since we do use it extensively. The problem doesn't seem to be related to 'FOB', since it happens with several different fields I tried.
Regards,
Kent |
|
|
|
Tom |
|
Group | : Administrator |
Posts | : 5510 |
Joined | : 2006-02-17 |
|
Profile |
|
Posted : 2008-07-16 18:04:18 |
|
|
|
|
Posted : 2008-07-19 01:37:57 |
Hi Tom,
I tried the changes you suggested:
oConnection.Open "DSN=Quickbooks Data;OLE DB Services=-2" oRecordset.CursorLocation = adUseClient
But the results are the same. In fact, the program doesn't use a recordset, but uses the direct SQL command text to update the field. I'll try to do the update with a recordset and the recordset.Update() and see if the problem persists, then post an update in a few days.
Regards,
Kent |
|
|
|
|