S.T.A.L.K.E.R.
Member
Re: Відповідь: Re: Вопрос по С++
rs.Open();
rs.IsEOF();
rs.GetFieldValue();
rs.MoveNext();
пытаюсь в цикле с их помощью вывести записи, и их выводит. Но не всё так хорошо как хотелось бы, выводит записи только из первого столбца таблицы. Как быть в таком случае? Отдельный GetFieldValue() и ListBox создать для других столбцов БД? Но ведь с другой стороны это не выход, так как при запросе я не могу точно сказать с каким количеством столбцов мне придется работать. Вот мой код:
{
CDb db;
db.Open("localhost",FALSE,FALSE,"DRIVER={Oracle in XE};UID=SYSTEM;PWD=1;SERVER=localhost");
if(db.IsOpen())
{
AfxMessageBox("Connected");
}
else
{
AfxMessageBox("Not Connected");
return;
}
CRecordset rs(&db);
CString s,z;
rs.Open(CRecordset::forwardOnly,"SELECT fname, duration, genre FROM Film WHERE fname LIKE '% %'",CRecordset::readOnly);
while(!rs.IsEOF())
{
rs.GetFieldValue(short(0),s);
m_list1.AddString(s);
rs.MoveNext();
}
rs.Close();
}
В данном случае выводит только колонку fname, потому что в функции rs.GetFieldValue(short(0),s);
Спасибо, с этим разобрался. Есть такие функции (в классе CRecordset):ExecuteSQL используется для добавления, удаления или обновления , записей , она не возвращает результата запроса.
нужная функция должна быть в CRecordset или CRecordView
rs.Open();
rs.IsEOF();
rs.GetFieldValue();
rs.MoveNext();
пытаюсь в цикле с их помощью вывести записи, и их выводит. Но не всё так хорошо как хотелось бы, выводит записи только из первого столбца таблицы. Как быть в таком случае? Отдельный GetFieldValue() и ListBox создать для других столбцов БД? Но ведь с другой стороны это не выход, так как при запросе я не могу точно сказать с каким количеством столбцов мне придется работать. Вот мой код:
{
CDb db;
db.Open("localhost",FALSE,FALSE,"DRIVER={Oracle in XE};UID=SYSTEM;PWD=1;SERVER=localhost");
if(db.IsOpen())
{
AfxMessageBox("Connected");
}
else
{
AfxMessageBox("Not Connected");
return;
}
CRecordset rs(&db);
CString s,z;
rs.Open(CRecordset::forwardOnly,"SELECT fname, duration, genre FROM Film WHERE fname LIKE '% %'",CRecordset::readOnly);
while(!rs.IsEOF())
{
rs.GetFieldValue(short(0),s);
m_list1.AddString(s);
rs.MoveNext();
}
rs.Close();
}
В данном случае выводит только колонку fname, потому что в функции rs.GetFieldValue(short(0),s);
Останнє редагування: