>I have a cursoradapter class (ADO), i make a query on a table and i set buffering=3, i have set conversionfunc to convert empty date value to null, when i insert a new record i have an error. But if i use a little table (5 fields) no problem, i receive the error with another table (more than 100 fields in it).......where can be the problem ? The error is "Multiple-step OLE DB operation generated errors.
>Check each OLE DB status value, if available. No work was done."........i have compiled the updatablefieldlist, but the updatenamelist is empty...because it is truncated with many fields...so i don't fill it.
>Thanks
You need updatablefieldlist and updatenamelist. You can do that in code. ie:
Define Class Ca_Person As CaBase Of ("CaBase.prg")
Alias = "Person"
SelectCmd = ;
"select personID, Firstname, Midname, Lastname, "+;
"Phone, Email, Address, City, State, Zip, "+;
"Createtime from Person"
CursorSchema = ;
"personID c(36) default uniqueID(), Firstname C(15), "+;
"Midname C(10), Lastname C(20), Phone C(15), Email C(40),"+;
"Address C(35), City C(15), State C(2), Zip C(10), "+;
"Createtime T default DATETIME()"
UpdatableFieldList = ;
"personID, Firstname, Midname, Lastname, Phone, Email,"+;
"Address, City, State, Zip, Createtime"
UpdateNameList = ;
"personID Person.personID, Firstname Person.Firstname, "+;
"Midname Person.Midname, Lastname Person.Lastname, "+;
"Person.Phone, Email Person.Email, Address Person.Address, City "+;
"Person.City, State Person.State, Zip Person.Zip, "+;
"Createtime Person.Createtime"
KeyFieldList = "personID"
Tables = "Person"
ConversionFunc = ;
"Firstname TRIM, Midname TRIM, Lastname TRIM, "+;
"Phone TRIM, Email TRIM, Address TRIM, City TRIM, State TRIM, Zip TRIM,"+;
"Createtime E2N"
Procedure AfterCursorFill
Lparameters lUseCursorSchema, NoDataOnLoad, cSelectCmd, lResult
If Tagcount(This.Alias) = 0
CursorSetProp("Buffering",3,This.Alias)
Select (This.Alias)
Index On LASTNAME Tag 'Lastname'
Index On personID Tag 'personID'
CursorSetProp("Buffering",5,This.Alias)
Set Order To 0
If !Empty(This.Order)
Set Order To Tag (This.Order)
Endif
Endif
Endproc
Enddefine