2012-04-24 3 views
5

मैं अपने ऑब्जेक्ट्स के लिए अंतिम संशोधित या अंतिम एक्सेस किए गए समय को इंगित करने वाला एक फ़ील्ड जोड़ना चाहता हूं। क्या ऐसा करने के लिए एक आसान, ऑटो रीफ्रेशेड विधि है?क्या ORMLite और Android का उपयोग करते समय अंतिम संशोधित टाइमस्टैंप जोड़ने का कोई आसान तरीका है?

उत्तर

6

मुझे यकीन नहीं है कि अंतिम संशोधित टाइमस्टैम्प का समर्थन करने के लिए SQLite का उपयोग कैसे करें। हालांकि, ORMLite की विशेषताओं में से एक संस्करण फ़ील्ड है। आप Date फ़ील्ड को version = true के साथ चिह्नित कर सकते हैं और कभी भी यह अपडेट होने पर यह Date को नवीनतम मान पर अपडेट करेगा। अधिक जानकारी के लिए दस्तावेज़ देखें:

@DatabaseField(version = true) 
Date modificationDate; 

मैं यह अच्छी तरह से दोनों निर्माण के लिए काम करता है की पुष्टि कर लें:

http://ormlite.com/docs/version-field

तो आप अपने वर्ग के लिए निम्न की तरह कुछ जोड़ना होगा और संशोधन तिथियां। इसके अलावा, इस है कि जब आप किसी भी अपग्रेड करते हैं, यह अद्यतन बयान स्वतः के अंत में निम्नलिखित की तरह कुछ जोड़ देगा का अर्थ है:

UPDATE yourclass SET ... >>> WHERE modificationDate = existing-date; <<< 

अधिक जानकारी के लिए दस्तावेज़ देख सकेंगे। ओह, और आप एक लंबे समय के रूप में यह स्टोर करने के लिए, की तरह कुछ बजाय तुम कर सकते हो चाहते हैं, तो:

@DatabaseField(version = true, dataType = DataType.DATE_LONG) 
Date modificationDate; 
+0

बिल्कुल वही जो मैं खोज रहा था! धन्यवाद!! – Quentamia

3

आप ट्रिगर के लिए हर बार एक डालने और अद्यतन SQLite में होता है अपने modificatoinDate अपडेट हो जाता है बना सकते हैं।

उदाहरण:

db.execSQL("create trigger updateModDate " + 
    "after insert on MY_TABLE for each row begin " + 
    "update MY_TABLE set modificationDate = date('now') where id = NEW.id " + 
    "end;"); 

db.execSQL("create trigger updateModDate " + 
    "after update on MY_TABLE for each row begin " + 
    "update MY_TABLE set modificationDate = date('now') where id = NEW.id " + 
    "end;"); 

मेरा मानना ​​है कि चलाता एंड्रॉयड द्वारा प्रयोग किया जाता SQLite डेटाबेस में उपलब्ध हैं। मैंने सत्यापित नहीं किया है कि ये अद्यतन काम करते हैं, लेकिन यह एक पारदर्शी समाधान हो सकता है।

मुझे अंतिम पहुंच समय के बारे में निश्चित नहीं है। जब भी कोई चयन किया जाता है, तो मुझे अद्यतन करने के प्रदर्शन को देखने से नफरत होगी।

+0

यही वह है! "जहां आईडी = NEW.id" –

संबंधित मुद्दे