RDBMS को एक्सेस करते समय, आपको जो ResultSet मिलता है, वह आमतौर पर रो-ओरिएंटेड होता है। दूसरे शब्दों में, जब भी आप ResultSet::next() को कॉल करते हैं, तो कर्सर अगली पंक्ति में चला जाता है। इसलिए आपका लूप
for (int i = 0; i < columncount; i++)
{
while (res->next())
{
...
}
}
केवल पहली विशेषता दिखा रहा है।
आम तौर पर आप आंतरिक और बाहरी छोरों को स्विच करते हैं जैसे कि
while (res->next())
{
for (int i = 0; i < columncount; i++)
{
...
}
}
लेकिन अगर आपको वास्तव में एक समय में एक कॉलम तक पहुंचने की आवश्यकता है, तो आपको यह जांचना होगा कि क्या परिणामसेट आपको कर्सर को पहली पंक्ति में रीसेट करने की अनुमति देता है। यदि नहीं, तो आपको या तो डेटा को कैश करना होगा, या एक ही SQL क्वेरी को बार-बार जारी करना होगा।