예제 #1
0
        internal bool SaveValue(int oid, string field, SqoTypeInfo ti, object value)
        {
            if (field == "OID")
            {
                throw new SiaqodbException("OID cannot be saved from client code!");
            }
            ObjectSerializer serializer = SerializerFactory.GetSerializer(this.path, GetFileByType(ti), useElevatedTrust);

            serializer.NeedSaveComplexObject += new EventHandler <ComplexObjectEventArgs>(serializer_NeedSaveComplexObject);

            if (oid > 0 && oid <= ti.Header.numberOfRecords && !serializer.IsObjectDeleted(oid, ti))
            {
                return(serializer.SaveFieldValue(oid, field, ti, value, this.rawSerializer));
            }
            else
            {
                return(false);
            }
        }
예제 #2
0
        public TransactionObjectHeader PreCommit()
        {
            if (objInfo.Oid > 0 && objInfo.Oid <= objInfo.SqoTypeInfo.Header.numberOfRecords && !serializer.IsObjectDeleted(objInfo.Oid, objInfo.SqoTypeInfo))
            {
                originalObject = engine.LoadObjectByOID(objInfo.SqoTypeInfo, objInfo.Oid);
                TransactionObjectHeader header = new TransactionObjectHeader();
                header.Operation = this.Operation;
                header.OIDofObject = engine.metaCache.GetOIDOfObject(originalObject, objInfo.SqoTypeInfo);
                return header;

            }
            return null;            
        }