Уважаемые коллеги, ДРУЗЬЯ.
У меня возникла проблема с сабжем. Может у кого есть примеры и желательно описание на русском языке, а то в МСДНе очень скупо сказано по данному вопросу.
m_strSort — задаваемое значение является выражением типа String,
содержащим предложение ORDER BY инструкции SQL без зарезервированных
слов ORDER BY.
поле_1 [ASC | DESC ][, поле_2 [ASC | DESC ]
m_strFilter — значение данного свойства имеет тип String и
содержит предложение WHERE инструкции SQL без
зарезервированного слова WHERE.
example:
m_strFilter="((index1>90)AND(index2<90))AND(Name='name')"
в результат запроса попадают только те записи у которых
index1>90
index2<90
Name='name'
Здравствуйте VfFtp, Вы писали:
VF>m_strSort — задаваемое значение является выражением типа String, VF>содержащим предложение ORDER BY инструкции SQL без зарезервированных VF>слов ORDER BY. VF>поле_1 [ASC | DESC ][, поле_2 [ASC | DESC ] VF>m_strFilter — значение данного свойства имеет тип String и VF>содержит предложение WHERE инструкции SQL без VF>зарезервированного слова WHERE. VF>example:
m_strFilter="((index1>>90)AND(index2<90))AND(Name='name')" VF>в результат запроса попадают только те записи у которых
index1>>90 VF>index2<90 VF>Name='name'
Спасибо.
А могу я использовать это при подготовки предварительного просмотра, т.е. я хотел бы создать отчет. отсортировать записи и подсчитать количество строк отсортироанных в Recordset. Или только при инициавлизации списка это возможно?
G>А могу я использовать это при подготовки предварительного просмотра, т.е. я хотел бы создать отчет. отсортировать записи и подсчитать количество строк отсортироанных в Recordset. Или только при инициавлизации списка это возможно?
Не совсем понял вопрос. Но для создания отчета можно так же использовать SQL запрос при открытии, вот на пример:
[vc]
strUID.Format("%s%d",strUID,UID);
strSubDir.Format("%s%d",strSubDir,SubDirID);
strSQL="SELECT Index_dirs,DIRNAME FROM Dirs WHERE (((UID_dirs="+strUID+")AND(SUBDIR_ID="+strSubDir+")))";
TRY
{
recset.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
while( !recset.IsEOF() )
{
recset.MoveNext();
size_++;
}
recset.Requery();
}
CATCH (CDBException, e)
{
AfxMessageBox("Database error: "+e->m_strError);
return DIR_MAN_ERROR;
}
END_CATCH;
[/vc]
причем хочу заметить,что тут есть одни "грабли", recset.GetRecordCount() работала у меня не так как хотелось... Возвращала 0 — если нет записей, и 1 — если они есть, и не важно сколько их. Поэтому количество записей я счетал while-ом.
G>>А могу я использовать это при подготовки предварительного просмотра, т.е. я хотел бы создать отчет. отсортировать записи и подсчитать количество строк отсортироанных в Recordset. Или только при инициавлизации списка это возможно? VF>Не совсем понял вопрос. Но для создания отчета можно так же использовать SQL запрос при открытии, вот на пример: VF>[vc] VF> strUID.Format("%s%d",strUID,UID); VF> strSubDir.Format("%s%d",strSubDir,SubDirID); VF> strSQL="SELECT Index_dirs,DIRNAME FROM Dirs WHERE (((UID_dirs="+strUID+")AND(SUBDIR_ID="+strSubDir+")))"; VF> TRY VF> { VF> recset.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly); VF> while( !recset.IsEOF() ) VF> { VF> recset.MoveNext(); VF> size_++; VF> } VF> recset.Requery(); VF> } VF> CATCH (CDBException, e) VF> { VF> AfxMessageBox("Database error: "+e->m_strError); VF> return DIR_MAN_ERROR; VF> } VF> END_CATCH; VF>[/vc] VF>причем хочу заметить,что тут есть одни "грабли", recset.GetRecordCount() работала у меня не так как хотелось... Возвращала 0 — если нет записей, и 1 — если они есть, и не важно сколько их. Поэтому количество записей я счетал while-ом.
Вопрос сотоял в том, что я могу в функции OnPrint выполнить эти действия? Уже проект запущен, набор записей уже сформирован.