Information générale
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
TableUpdate sees old records as new
Versions des environnements
server mssql 2008
*STEP1 in the load procedure I create the cursor: cList
SQLEXEC(lnhandle, [select * from table1 where 0=1],[clist])
*STEP2 in other pocedures the users retrieves data from table1 (same table that the cList is created)
SQLEXEC(lnhandle, [select * from table1 where somecriteria_1],[cTemp])
INSERT INTO cList SELECT * FROM cTemp
SQLEXEC(lnhandle, [select * from table1 where somecriteria_2],[cTemp])
INSERT INTO cList SELECT * FROM cTemp
......................................
SQLEXEC(lnhandle, [select * from table1 where somecriteria_50],[cTemp])
INSERT INTO cList SELECT * FROM cTemp
*STEP3 the user changes some values in the cursor Clist (records are displayed in a grid)
*STEP4 save changes
SELECT cList
SCAN
lid=cList.table1_id
SQLEXEC(nhandle,[update table1 set fld1=newval1,fld2=newval2, fld3=newval3 where table1_id=lid])
ENDSCAN
The above code works fine.
The question: is it posible to avoid the scanning and update the data with: Tableupdate(.t., .t., 'cList')
When i try the tableupdate function I receive the error of uniq key violation.
The server sees the records in the cLIst as new records.
The same problem occurs and in the case that I create the cList cursor with the CursorAdapter method.
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement