På första frågan så kommer inga värden över automatiskt i pDataRow från den gamla strukturen vid tilldelningen. Det du gör när du förbereder för ett anrop till AdkUpdate är att tala om vad du vill ha ändrat jämfört med det som finns. Det gör du i den nya pDataRow som du skapat. Du tilldelar order genom AdkSetData och efter ett lyckat anrop till AdkUpdate, så fyller apiet i datat för alla raderna. Så - om du försöker titta på innehållet i pDataRow så ser du bara dina ändringar fram till att du commitat med en AdkUpdate. Svaret på andra frågan är att den bara innehåller "Annat värde" för fältet ADK_OOI_ROW_TEXT. Efter att du kört AdkUpdate (och det gick bra förstås) så är datastrukturen uppdaterad med de värden som finns i databasen och då kan man se det gamla värdet. Det är bara det du ändrat som du ser direkt efter du gjort anropet till AdkSetData. Här förutsätter jag att du jobbat med nyskapade rader via AdkCreateDataRow. Skulle du istället i detta fall jobba med befintliga rader så ser du ju även värdet för ADK_OOI_ROW_TYPE_OF_ROW. Om man inte ska skapa nya rader är det onödigt med att skapa om radområdet (förutsatt att du jobbar med en order du tagit fram med tex AdkFind). pRow = AdkGetDataRow(AdkGetData(pOrder, ADK_OOI_HEAD_ROWS), 1) borde tex funka. Om man går upp till din ursprungliga fråga - så finns det en situation där det blir lite krångligt, och det är när man vill infoga en rad mellan två befintliga rader. Säg att du har 4 rader och vill få in en rad på som rad 3. Då får du skapa en struktur med 5 rader, kopiera innehållet från rad 4 i ordern till din nya strukturs rad 5, sen kopiera rad 3 till 4, sen skriva in din nya data för rad 3, göra en AdkSetData och slutligen köra en AdkUpdate. Om du är intresserad av att kunna läsa ut gammal data skulle jag föreslå att du skapar en ny orderpekare (pOrderToUpdate) vid sidan om den du fått genom AdkFind. I den sätter du ordernummer från den du sökt fram och AdkSetData med dina nya rader, och kör AdkUpdate på pOrderToUpdate istället.
... Visa mer