Please be aware that the content in SAP SQL Anywhere Forum will be migrated to the SAP Community in June and this forum will be retired.

Hello, I had a working mobilink sync (MSSQL Server 2008 and Ultralite) and I added a couple of columns to my download script. After the change i started getting E. <4> [-10002] Consolidated database server or ODBC error: ODBC: [Microsoft][SQL Server Native Client 10.0]Invalid Descriptor Index (ODBC State = 07009, Native error code = 0, Column or parameter #17) Even when i removed the newly added columns i kept on getting that error and whatever i did the error doesn't disappear. Do you have any idea what can be causing the problem or is there a way to clean all sync models from my database and reset the Mobilink

asked 27 Mar '12, 11:37

katalun4o's gravatar image

katalun4o
331121521
accept rate: 85%


We've seen that SQL Server error before when a large column is not the last column. A future release of our documentation will include a note like the following:

Due to restrictions of the SQL Server ODBC driver, see: http://support.microsoft.com/kb/238080, all BLOB columns should be placed at the end of columns, when a synchronization table is defined, especially when the download_cursor script for this table must be written as a stored procedure call or a batch of SQL statements. This restriction can be ignored, if the download_cursor script for a synchronization table that contains BLOB columns can be written as a single SELECT statement.

Since you mentioned sync models, did you add the columns to your synchronization and then redeploy it?

If not, that can cause problems from outdated ml_column entries. Sync model deployment adds rows to MobiLink's ml_column table in a particular order, via ordered calls to ml_add_column.

You can call that stored procedure for each synchronized table with null as the column name to clear all the ml_column entries. Then you can either re-add the correct ones or instead have your UltraLite application upload column names.

FYI, in version 12 column names are sent by default. Since you didn't mention which version and build of UltraLite and MobiLink you are using, you may have to enable it.

permanent link

answered 27 Mar '12, 13:15

Graham%20Hurst's gravatar image

Graham Hurst
2.7k11843
accept rate: 29%

Thanks alot for your answers. I moved the BLOB column at the end of the download script and it worked.

(28 Mar '12, 02:57) katalun4o

If your download_cursor script returns BLOBs and the script is written as a stored procedure call, you need to put all the BLOB columns at the end of the result set. Please see:

http://support.microsoft.com/kb/238080

Otherwise, please post your table definition and the download_cursor script.

There is no such a restriction, if the script is written as a plain "SELECT" statement.

permanent link

answered 27 Mar '12, 13:11

Yufei%20Guo's gravatar image

Yufei Guo
401213
accept rate: 6%

edited 27 Mar '12, 15:35

Breck%20Carter's gravatar image

Breck Carter
32.5k5417261050

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×371

question asked: 27 Mar '12, 11:37

question was seen: 5,606 times

last updated: 28 Mar '12, 03:37