나는 Elixir을 사용하여 MSSQL 데이터베이스에 연결하고 있습니다. 데이터베이스에는 계산 된 열이있는 테이블이 있습니다. 그러나 개체의 다른 열을 업데이트하고 변경 내용을 커밋하면 Python에서 계산 열에 삽입 할 수 없다고 알려줍니다.Elixir를 사용하여 db에 쓸 때 계산 된 필드를 남기는 방법 session.commit()
나는 자동로드를 내 모델 있도록 사용하고 있습니다 :
class Slot(Entity):
using_options(tablename='tbScheduleSlots', autoload=True)
using_table_options(schema='sch')
나는 슬롯을 생성하고 몇 가지 값을 제공 한 후 커밋 :
ss = Slot(StartDateTime='2012-01-01 13:00:00:000', Program_ID=1234, etc)
session.commit()
중요 정보를! 계산 된 필드이기 때문에 ss 개체에 EndDateTime에 대한 값을 제공하지 않습니다. 그렇게 효과적으로, 나는 그 분야의 데이터베이스에 아무것도 돌려 보내지 않을 것이다.
오류 :
sqlalchemy.exc.ProgrammingError: (ProgrammingError) ('42000', '[42000] [FreeTDS][SQL Server]The column "EndDateTime" cannot be modified because it is either a computed column or is the result of a UNION operator. (271) (SQLPrepare)') 'INSERT INTO sch.[tbScheduleSlots] ([Program_ID], [SlotType_ID], [StartDateTime], [EndDateTime], [Duration], [Description], [Notes], [State], [MasterSlot_ID]) OUTPUT inserted.[ID_ScheduleSlot] VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' (5130, 1, '2012-01-01 13:00:00:000', None, None, None, None, 2, None)
훨씬 더 많은 정보가 필요합니다! 어떻게 테이블 클래스를 정의합니까? 열을 어떻게 업데이트합니까? 어떤 오류 메시지가 나타 납니까? 적어도 일부 코드 스 니펫이 필요합니다. – seb
네 말이 맞아. 미안. 잘하면 내 편집이 더 좋다 – MFB
계산 된 필드 또는 특정 필드를 이름별로 무시하도록하는 옵션이 있는지 궁금합니다. – HardCode