Hi,
I found out my problem: I was indexing the cursor after a CursorRefresh(): I moved the code to the AfterCursorFill() event and it works great.
Here is a 'novice' question: why can't I index a cursor when table buffering is on?
Thanks for your help, it is really nice to have folks from Microsoft monitoring this site!
Thierry
>>Thanks for the input. I did create a structural index. My cursor is record buffered. I make a change in a record and I start a transaction to save it: this is when I get error 1548.
>>
>
>Hi Thierry,
>
>How about a small repro code similar to one I've posted?
>It will eliminate all confusions.
>
>Thanks,
>Aleksey.
>
>
>
>>>>Hi,
>>>>
>>>>I index the cursor generated by a cursoradapter. Apparently the index generated is non strutural and I get error 1548 when starting a transaction... Anyone seen this? Any solution?
>>>>
>>>>Thanks,
>>>>
>>>>Thierry Labarre
>>>
>>>
>>>Hi Thierry,
>>>
>>>Just create a structural index:
>>>
>>>
>>>clear
>>>
>>>CREATE TABLE testCA (f1 I)
>>>INSERT INTO TestCA values(1)
>>>INSERT INTO TestCA values(2)
>>>INSERT INTO TestCA values(3)
>>>
>>>oCA=CREATEOBJECT("CursorAdapter")
>>>oCA.DataSourceType="NATIVE"
>>>oCA.SelectCmd="select * from TestCA"
>>>?oCA.CursorFill()
>>>SELECT (oCA.Alias)
>>>INDEX ON f1 TAG f1
>>>*INDEX ON f1 TO testindex
>>>
>>>LOCAL oEx as Exception
>>>
>>>TRY
>>>BEGIN TRANSACTION
>>>LIST
>>>END TRANSACTION
>>>CATCH TO oEX
>>> ? oEx.ErrorNo, oEx.Message
>>>ENDTRY
>>>
>>>
>>>Thanks,
>>>Aleksey.