postgresql - row number 0 is out of range 0..-1 returned when using setSingleRowMode libpq -
मैं PQsetSingleRowMode
का उपयोग करके पंक्ति को एक बार पुनः प्राप्त करने का प्रयास कर रहा था। अंतिम 3 पंक्तियों को छोड़कर परिणाम संख्या ठीक है, पंक्ति संख्या 0 के साथ वापस की जाती है 0 ..-1
यह मेरा मुख्य कार्य है:
int main () {/ * डेटाबेस से कनेक्शन बनाने के लिए कोड ठीक है, इसलिए मैंने इसे छोड़ा * / PQsetnonblocking (conn, 1); Const char * DML_statement = "itsdb.PvKeyword से चयन करें"; Int स्थिति = PQsendQuery (conn, DML_statement); Int हैसिंगेमोड = PQsetSingleRowMode (conn); Res = PQgetResult (conn); Cout & lt; & lt; "अगर 1 सिंगल मोड होता है तो प्रिंट करें:" & lt; & lt; isSingleMode; चार * फ़ील्ड 1; Char * field2; चार * फ़ील्ड 3; जबकि (PQgetResult (conn)! = NULL) PQresultStatus (Res)! = PGRES_TUPLES_OK || PQresultStatus (Res) == PGRES_SINGLE_TUPLE) {res = PQgetResult (conn); फ़ील्ड 1 = PQgetvalue (res, 0,0); Field2 = PQgetvalue (रेस, 0,1); Field3 = PQgetvalue (रेस, 0,2); Cout & lt; & lt; फ़ील्ड 1 & lt; & lt; "," & Lt; & lt; फ़ील्ड 2 & lt; & lt; "," & Lt; & lt; फ़ील्ड 3 & lt; & lt; endl; PQclear (रेस); }
परिणाम सेट:
डेविड, 3, पुरुष नटाली, 1, मादा डैनियल, 1, मादा पंक्ति संख्या 0 सीमा 0 से बाहर है। ।-1 पंक्ति संख्या 0 0 से बाहर है 0 ..- 1 पंक्ति संख्या 0 0 से बाहर है ..-1
मैंने इसे बदल दिया / करते समय बदल दिया और यह काम किया।
चार * फ़ील्ड 1; Char * field2; चार * फ़ील्ड 3; करो {यदि (पीक्यूआरसेट्सस्टैटस (आरएससी) == पीजीआरईएसटीयूटीयूएसओओक) ब्रेक; Res = PQgetResult (conn); फ़ील्ड 1 = PQgetvalue (res, 0,0); Field2 = PQgetvalue (रेस, 0,1); Field3 = PQgetvalue (रेस, 0,2); Cout & lt; & lt; फ़ील्ड 1 & lt; & lt; "," & Lt; & lt; फ़ील्ड 2 & lt; & lt; "," & Lt; & lt; फ़ील्ड 3 & lt; & lt; endl; PQclear (रेस); } जबकि (PQgetResult (conn)! = NULL) PQresultStatus (Res) == PGRES_SINGLE_TUPLE)
आपको निम्न स्थिति का उपयोग करते समय लूप में करना चाहिए:
जबकि (res! = Nullptr & amp; amp; amp;; PQresultStatus (res) == PGRES_SINGLE_TUPLE)
अनुपस्थित PQresultStatus (res) == PGRES_SINGLE_TUPLE
स्थिति अंतिम वैध एक के बाद एक अतिरिक्त पंक्ति को प्राप्त करने की ओर जाता है।
Comments
Post a Comment