siguiente es el pseudo-código:SQLCE - Upsert (Actualizar o Insertar) - ¿Cómo preparar una fila usando un método común?
SqlCeResultSet myResultSet = cmd.ExecuteResultSet(Options...etc);
bool found = myResultSet.Seek();
if found {
//do an Update
myResultSet.Read() //make current
//At this point we have a cursor positioned at a row to be edited
myResultSet.SetString(1, "value for col 1");
myResultSet.SetString(2, "value for col 2");
//... etc...
myResultSet.SetString(100, "value for col 100");
//i want to replace above with: CommonMethodToFillRowData(someRow)
//finally update
myResultSet.Update();
} else {
//do an insert
SqlCeUpdatableRecord myRec = myResultSet.CreateRecord();
//set primaryKey
myRec.SetInt32(0, pkValue);
//At this point we have a cursor positioned at a row to be edited
myRec.SetString(1, "value for col 1");
myRec.SetString(2, "value for col 2");
//... etc...
myRec.SetString(100, "value for col 100");
//i want to replace above with: CommonMethodToFillRowData(someRow)
//finally insert
myResultSet.Insert(myRec);
}
partir de lo anterior, si he 100 columnas para preparar, tiene que ser repetido dos veces; Lo que quiero es algún CommonMethodToFillRowData(); Pero, ¿qué tipo de parámetro utilizo para dicho método?
CommonMethodToFillRowData(SqlCeResultSet or SqlCeUpdatableRecord ? parmRow) {
parmRow.SetInt32(col1, value1)
parmRow.SetString(col2, value2)
...etc.
parmRow.SetString(100, "value for col 100");
}
citando Directamente desde MSDN mana en SqlCeUpdatableRecord Clase: -> Representa una fila de valores actualizables desde la fuente de datos. Un objeto SqlCeResultSet contiene uno o más UpdatableRecords.
Si ese es el caso, ¿por qué no puedo tener acceso directo a un único UpdatableRecord dentro de SqlCeResultSet, una vez que coloco el cursor a través de una Seek()?
Si eso fuera posible, eso me habilitado para usar:
CommonMethodToFillRowData(SqlCeUpdatableRecord parmRow) {
//end of story
}
¿Cómo te fue con este JoeDotNot ??? – ETFairfax
Estoy interesado también ... –
@ Sébastien - Consulte mi respuesta de "último minuto". – Greg