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

नीचे

SQL में खाली क्वेरी पैरामीटर मान हो सकते हैं या नहीं इसी तरह की शाखाएँ खोजें


shakh   (2001-12-03 20:29) [0]

शुभ दिन। एक डेटाबेस (access2000) है। एक उपयोगकर्ता इंटरफ़ेस (.exe) है। इंटरफ़ेस और डेटाबेस के बीच संचार ADO और SQL क्वेरी के माध्यम से होता है। विभिन्न डेटाबेस तालिकाओं में भरने के लिए प्रपत्रों का एक सेट है। उसी समय, फ़ॉर्म पर कुछ संपादन खाली छोड़ दिए जा सकते हैं, अर्थात्, कोई मान नहीं होते हैं। अब सवाल यह है कि क्या एसक्यूएल के माध्यम से एक तालिका को जोड़ने (अपडेट) के लिए एक अनुरोध भेजना संभव है अगर कुछ डेटा डेटा फेल है NULL (फ़ील्ड = "") ??? यह मुख्य रूप से पाठ क्षेत्रों की चिंता करता है।
बेशक, "शून्यता" के लिए फ़ील्ड के मूल्य की जांच करने और गतिशील रूप से एक क्वेरी बनाने का विकल्प है, लेकिन अगर एक्सएनयूएमएक्स टुकड़ों के ऐसे क्षेत्र हैं, तो यह बल्कि बोझिल निर्माण प्राप्त होता है।



Котелок   (2001-12-04 07:35) [1]

संभव।

उदाहरण के लिए:

तालिका में डालें (column1, column2) मान: (col1 ,: col2)

और फिर बस उन मापदंडों को असाइन करें जो उन एडिट-एस के मूल्य हैं जो होना चाहिए।
और अगर एडिट खाली था, तो एक खाली फील्ड भी डाला जाएगा।



shakh   (2001-12-04 19:31) [2]

अतिरिक्त ... अच्छा, अच्छा। और यदि एक ही AdoQuery घटक का उपयोग विभिन्न प्रश्नों के लिए किया जाता है, तो मापदंडों की संख्या भिन्न हो सकती है। और यदि आप AdoQuery1.SQL.Add ("में सम्मिलित करें (col1, col2) मान" + Edit1.Text + "," + Edit2.text + ")") जैसे कुछ लिखते हैं; तब Edit1 या Edit2 में रिक्त मानों के साथ, एक अमान्य चर प्रकार के बारे में एक त्रुटि होती है, या यह कि डिफ़ॉल्ट रूप से क्षेत्र का कोई पैरामीटर नहीं है;
और मैं वास्तव में स्थिर अनुरोध मापदंडों के एक समूह के साथ नहीं ले जाना चाहता



Delirium   (2001-12-04 20:08) [3]

और क्या आप "खाली" मूल्यों को प्रसारित करने से रोकता है यदि आपके पास फ़ील्ड हैं, तो निश्चित रूप से अशक्त नहीं है?



Котелок   (2001-12-05 00:46) [4]

अगर आपके पास लाइनें हैं, तो इसे इस तरह से आज़माएं ...

AdoQuery1.SQL.Add ("तालिका में सम्मिलित करें (col1, col2) मान" + "" "Edit1.Text +" "" + "," + "" "Edit2.text +" "" "+") ");
स्पष्ट संकेत के साथ कि यह एक स्ट्रिंग है।
हालांकि parambyname के माध्यम से अभी भी सुरक्षित है।



shakh   (2001-12-05 02:08) [5]

और अधिक।
शायद मुझे समझ में नहीं आया कि कुत्ते ने कहाँ अफवाह उड़ाई)
एक क्वेरी AdoQuery1.SQL.Add है ("तालिका में सम्मिलित करें (col1, col2) मान) (" + "" + "Edit1.Text +" "" + "," + "" "Edit2.text +" "" "" "" ""। + ")");
सब कुछ स्पष्ट है। लेकिन यदि डेटा प्रविष्टि के दौरान फ़ॉर्म पर Edit1 (उदाहरण के लिए) खाली छोड़ दिया गया था, तो इस क्वेरी को निष्पादित करते समय, Egor को जाम कर दिया गया था। इसलिए, मैं न्यूनतम लागत के साथ उनमें से (त्रुटि "s) से छुटकारा पाना चाहूंगा।
कुछ लिखना ... मान (: col1 ,: col2) क्वेरी में अच्छा है, लेकिन जब कुछ क्षेत्र हैं, और अगर 20 टुकड़े हैं, तो ऑब्जेक्ट निरीक्षक में इन सभी मापदंडों को बनाएं और फिर, उनके बड़े द्रव्यमान से भ्रमित हुए बिना ... , उन्हें इकाइयों से मान प्रदान करें - यह पहले से ही तामझाम के साथ एक संख्या है।
यह संभव है कि प्रकार की जाँच छड़ी हो
अगर Edit1.Text <> "" तो enable_field_in_query
लेकिन यह पूरी तरह से विकृत है!



Котелок   (2001-12-05 03:33) [6]

यह पूरी तरह से स्पष्ट नहीं है कि निरीक्षक में ऑब्जेक्ट्स क्यों बनाएं?

अनुरोध में एक पैरामीटर के खाली संपादन और गतिशील समावेश के लिए जाँच के लिए, तो यह इस तरह की विकृति नहीं है, लेकिन काफी सामान्य घटना है, हालांकि यह सांकेतिक शब्दों में बदलना करने के लिए कठिन है।

यहाँ उदाहरण के लिए:

sqlText: = "टेबल में डालें (";
अगर edit1.text <> "" तब
sqlText: = sqlText + "column1,"
अगर edit2.text <> "" तब
sqlText: = sqlText + "column2,"
हटाएं (sqlText, लंबाई (sqlText), 1);
sqlText: = sqlText + ") मान (";
अगर edit1.text <> "" तब
sqlText: = sqlText + ": column1,"
अगर edit2.text <> "" तब
sqlText: = sqlText + ": column2,"
हटाएं (sqlText, लंबाई (sqlText), 1);
sqlText: = sqlText + ")";

AdoQuery1.close;
AdoQuery1.SQL.clear;
AdoQuery1.SQL.Add (sqlText);
AdoQuery1.ExecSql;

मैं टेबल कंस्ट्रक्टर में प्रवेश करने का सुझाव भी दे सकता हूं जिसमें आप इसे सम्मिलित करते हैं और सभी क्षेत्रों के लिए जो खाली हो सकते हैं, पैरामीटर को खाली लाइनों के इनपुट की अनुमति देते हुए सेट करें। और फिर खाली खेतों के लिए परीक्षण गायब हो जाना चाहिए और त्रुटियों को स्थान नहीं देना चाहिए ।।



Ra   (2001-12-05 14:03) [7]

आपको केवल इस तरह की क्वेरी करने की अनुमति नहीं है। दो में से एक तरीका
1) निष्पादन से पहले जांच करें ... यदि सभी फ़ील्ड भरे नहीं गए हैं - एक संदेश जारी करें ...
2) या सभी सामान्य डेटा (जब तक कि सभी आवश्यक डेटा दर्ज नहीं किए गए हैं) सामान्य रूप से "disab" नियंत्रण। इसके लिए .. सभी संपादन के लिए, OnChange घटना पर, निम्न हैंडलर लटकाएं:

शुरू करना Button1.Enable: = (Edit1.Text <> "") और (Edit2.Text <> "") और ... अंत;




NDeu   (2001-12-05 14:19) [8]

> रा © (05.12.01 14: 03)
बल्कि:
शुरू करना
Button1.Enable: = (TEdit के रूप में प्रेषक) .Text <> ""
अंत;
:)





Котелок   (2001-12-06 01:00) [9]

> रा
कभी-कभी ऐसे कार्य होते हैं जब ऐसा अनुरोध बस आवश्यक होता है।

मुझे स्वयं इस तरह के कार्य का सामना करना पड़ा, हालाँकि मैंने 25 क्षेत्रों के साथ एक साधारण स्थिर क्वेरी का उपयोग किया था और तालिका में रिक्त लाइनों को दर्ज करने की अनुमति थी।



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

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

ऊपर









मेमोरी: 0.85 एमबी
समय: 0.026 c
1-22203
T2
2001-12-16 07:07
2002.01.08
अनुपस्थिति त्रुटि पकड़ना msWord


14-22331
बस्क
2001-10-26 17:57
2002.01.08
क्या प्रोग्रामर के बीच कई वामपंथी हैं?


3-21988
एंड्रयू
2001-11-29 22:16
2002.01.08
एसक्यूएल


1-22026
रोमांटिक स्टैशन
2001-12-18 11:07
2002.01.08
डेल्फी कैसे चल सकता है * .exe साथ ...।


14-22372
froz
2001-11-08 16:25
2002.01.08
अत्यावश्यक!





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