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

Popular posts from this blog

Member with no value in F# -

java - Joda Time Interval Not returning what I expect -

c# - Showing a SelectedItem's Property -