cleg
нужно реальзовать такую фичу.
берем имя и табельый номер, если такого табельного номера еще нет - то добавляем нового человека с таким номером и именем. если табельный номер в таблице имеется - то просто меняем имя на другое.
class Person(SQLObject):
name = UnicodeCol()
tabNo = StringCol(length=10, alternateID=True)
@staticmethod
InsertUpdate(tabNo, name):
try:
person = Person.byTabNo(tabNo)
person.name = name
except SQLObjectNotFound:
person = Person(name=name, tabNo=tabNo)
return person
В любом случае всегда получается два запроса к базе. Можно, конечно, сделать сначала update … where tabNo=?, проверить число обновленных записей, и если оно равно нулю, то сделать insert. Тогда в случае update будет всего один запрос. Но как делать это средствами SQLObject мне пока что не приходилось. Если кто-нибудь из присутствующих знает как это сделать - поделитесь, pls.