घर
Top.Mail.Ru Yandeks.Metrika
फोरम: "मामले";
वर्तमान संग्रह: 2004.04.18;
डाउनलोड करें: [xml.tar.bz2];

नीचे

"मास्टर-डिटेल" तालिकाओं के बीच संबंध का अनुकरण कैसे करें इसी तरह की शाखाएँ खोजें


DmitryNekl ©   (2004-03-23 11:00) [0]

क्वेरी का उपयोग करते समय?

समस्या यह है। 3 टेबल हैं। 3 पहले और दूसरे (पहले और दूसरे स्वतंत्र हैं) से डेटा का उपयोग करता है, प्रत्येक तालिका में डेटा का एक गुच्छा होता है। उपयोग के लिए, TADOQuery घटकों का उपयोग किया जाता है।

पहले और दूसरे टेबल के पास चेकबॉक्स हैं।

यदि पहली तालिका के चेकबॉक्स को चेक किया जाता है, तो केवल वह रिकॉर्ड होता है जिसमें निर्दिष्ट फ़ील्ड पहले तालिका में वर्तमान फ़ील्ड से मेल खाती है, तीसरी तालिका में रहना चाहिए। पहली तालिका के साथ चलते समय, तीसरा बदलता है।
इसी तरह, दूसरी तालिका के साथ। एक ही समय में दोनों चेकबॉक्स की जाँच नहीं की जा सकती है।

मैं क्या कर रहा हूँ? मैं ईवेंट को संसाधित करने के लिए चेकबॉक्स पर क्लिक करता हूं:

प्रक्रिया MakeMasterDetailExecute (प्रेषक: TObject); var s: string; शुरू करना अगर (प्रेषक = checkbox1) तो शुरू करना checkbox2.Enabled: = not checkbox2.Enabled; अगर checkbox1.Checked है s: = "SELECT * FROM tbl3 जहां id1 =" + "" + DataModule1.ADOQuery1.Fields [0] .AsStest + "। अन्यथा s: = "का चयन करें * tbl3 से"; अंत; अगर (प्रेषक = checkbox2) तो शुरू करना checkbox1.Enabled: = not checkbox1.Enabled; अगर checkbox2.Checked है s: = "SELECT * FROM tbl3 जहां id2 =" + "" + DataModule1.ADOQuery2.Fields [0] .AsStest + "। अन्यथा s: = "का चयन करें * tbl3 से"; अंत; RunSQL (DataModule1.ADOQuery3, s); // अनुरोध को निष्पादित करें अंत;

इसके बाद, मैं DataSourceDataChange घटना की प्रक्रिया करता हूं:

प्रक्रिया DataModule1.DataSourceDataChange (प्रेषक: TObject; क्षेत्र: TField); वर s: स्ट्रिंग; शुरू करना अगर प्रेषक = DataSource1 तो यदि Form1.checkbox1.Checked है शुरू करना s: = "SELECT * FROM tbl3 जहां id1 =" + "" + DataModule1.ADOQuery1.Fields [0] .AsStest + ";" RunSQL (NewsDataModule.ADOQuery3, s); अंत; अगर प्रेषक = DataSource2 तो यदि Form1.checkbox2.Checked है शुरू करना s: = "SELECT * FROM tbl3 जहां id2 =" + "" + DataModule1.ADOQuery2.Fields [0] .AsStest + ";" RunSQL (NewsDataModule.ADOQuery3, s); अंत; अंत;

और जब आप किसी चेकबॉक्स पर क्लिक करते हैं, तो प्रोग्राम इस प्रक्रिया के दौरान लूप और हैंग हो जाता है। मैं क्या गलत कर रहा हूँ? गलती क्या है? और आप समस्या को कैसे हल कर सकते हैं (यानी मास्टर-विस्तार संचार का अनुकरण करें)?



stud ©   (2004-03-23 11:10) [1]

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



DmitryNekl ©   (2004-03-23 11:16) [2]

संरचनात्मक रूप से, 2 बक्से विभिन्न पैनलों पर स्थित हैं। और वे एक दूसरे को पाश में कहां बदल रहे हैं? एक समय में एक पोक किया - उसने दूसरा बंद कर दिया ... और जब तक हम पहली बारी नहीं करते, तब तक दूसरा चालू नहीं होगा ...



Sergey13 ©   (2004-03-23 11:21) [3]

बेतकल्लुफ़।
और द्वारा नहीं होता है
checkbox2.Enabled: = not checkbox2.Enabled;
चेकबॉक्स मान परिवर्तन घटना? चेक नहीं किया, लेकिन ऐसा लगता है। डीबगर के नीचे देखें।



bushmen ©   (2004-03-23 11:24) [4]

> मैं ईवेंट को संसाधित करने के लिए चेकबॉक्स पर क्लिक करता हूं:
और आप इस बात को ध्यान में नहीं रखते हैं कि चेकबॉक्स को अनचेक करना एक ऐसी घटना है जिसे संसाधित किया जा रहा है!



DmitryNekl ©   (2004-03-23 11:38) [5]

ज़्नुमक्स बुशमैन

बेशक मैं इसे ध्यान में रख रहा हूँ! एक चेक भी है: यदि चेकबॉक्स की जांच की जाती है, तो हम रिकॉर्ड के एक हिस्से का चयन करते हैं, अनियंत्रित - सभी रिकॉर्ड।

एक्सएनयूएमएक्स सर्गेईएक्सएनयूएमएक्स

नहीं, नहीं हो रहा है। और क्या दिलचस्प है: यदि आप DataSourceDataChange घटना के प्रसंस्करण को बिल्कुल भी बाहर फेंक देते हैं, तो चेकबॉक्स पर क्लिक करने पर अच्छी तरह से संसाधित किया जाता है और सब कुछ उसी तरह काम करता है जैसे कि ... केवल जब वर्तमान रिकॉर्ड को बदला जाता है, तो कुछ भी नहीं होता है। और मैं DataSourceDataChange में वर्तमान रिकॉर्ड के परिवर्तन को पकड़ने की कोशिश करता हूं - यह लूप किया जाता है ... :(



Sergey13 ©   (2004-03-23 11:48) [6]

2DmitryNekl © (23.03.04 11: 38) [5]
> और मैं वर्तमान रिकॉर्ड में बदलाव को पकड़ने की कोशिश कर रहा हूं
"परिवर्तन" के अर्थ में? अपडेट या स्क्रॉल करें? सिर की तालिकाओं में प्रविष्टियों के माध्यम से आगे बढ़ने के बाद, आपको उन पर आफ़्टरक्रोल को संसाधित करने की आवश्यकता है।



DmitryNekl ©   (2004-03-23 12:20) [7]

मैंने DataSourceDataChange के बजाय आफ्टरस्क्रॉल का उपयोग करके सब कुछ फिर से लिखा है और एक दिलचस्प विशेषता देखी है:

प्रक्रिया DataModule1.ADOQuery1AfterScroll (DataSet: TDataSet); प्रक्रिया RunSQL (var क्वेरी: TADOQuery? s: string); शुरू करना Query.Close; Query.SQL.Clear; Query.SQL.Add (s); प्रश्नोत्तरः = सत्य; अंत; वर s: स्ट्रिंग; शुरू करना अगर डेटासेट = ADOQuery1 तो यदि Form1.checkbox1.Checked है शुरू करना s: = "का चयन करें * से tbl_Articles_Publications जहां id_gr = "+" "+ DataSet.Fields.Fields [0] .AsString +" "; RunSQL (DataModule1.ADOQuery3, s); अंत; अंत;

F8 ट्रेस मोड में, RunSQL (DataModule1.ADOQuery3, s) को कॉल करने के बाद, DataModule1.ADOQuery1AfterScroll ... फिर से शुरू होता है।

मुझे आश्चर्य है कि ADOQuery3 पर क्वेरी का निष्पादन ADOQuery1 की स्क्रॉलिंग की ओर कैसे जाता है ???



पन्ने: 1 पूरी शाखा

फोरम: "मामले";
वर्तमान संग्रह: 2004.04.18;
डाउनलोड करें: [xml.tar.bz2];

ऊपर





मेमोरी: 0.58 एमबी
समय: 0.047 c
1-1080542143
Kremen
2004-03-29 10:35
2004.04.18
PopupMenu


9-1065961007
Larrel
2003-10-12 16:16
2004.04.18
आरपीजी के लिए 2D Isometric इंजन


1-1080631571
_Andy_
2004-03-30 11:26
2004.04.18
आउटलुक साइडबार?


11-1061927457
Boguslaw
2003-08-26 23:50
2004.04.18
उच्च रिज़ॉल्यूशन पर स्विच करने पर फ़ॉर्म / नियंत्रण / फ़ॉन्ट को कैसे स्केल करें


1-1080734556
Sisiusp
2004-03-31 16:02
2004.04.18
ApplicationEvents के माध्यम से शॉर्टकट को इंटरसेप्ट करना?





अफ्रीकी अल्बानियन अरबी भाषा अर्मेनियाई आज़रबाइजानी बस्क बेलारूसी बल्गेरियाई कैटलन सरलीकृत चीनी) चीनी पारंपरिक) क्रोएशियाई चेक डेनिश डच अंग्रेज़ी एस्तोनियावासी फिलिपिनो फिनिश फ्रेंच
गैलिशियन् जॉर्जियाई जर्मन यूनानी हाईटियन यहूदी हिंदी हंगरी आइसलैंड का इन्डोनेशियाई आयरिश इतालवी जापानी कोरियाई लात्वीयावासी लिथुआनियाई मेसीडोनियन मलायी मोलतिज़ नार्वेजियन
फ़ारसी पोलिश पुर्तगाली रोमानियाई रूसी सर्बियाई स्लोवाक स्लोवेनियाई स्पेनिश स्वाहिली स्वीडिश थाई तुर्की यूक्रेनी उर्दू वियतनामी वेल्श यहूदी बंगाली बोस्नियाई
सिबुआनो एस्पेरांतो गुजराती हौसा हमोंग ईग्बो जावानीस कन्नड़ खमेर लाओ लैटिन माओरी मराठी मंगोलियन नेपाली पंजाबी सोमाली तामिल तेलुगु योरूबा
ज़ुलु
Английский Французский Немецкий Итальянский Португальский Русский Испанский