Вопрос по запросам DBX (ошибка?)
Здравствуйте.
Ситуация следующая: в отчете есть 2 запроса, и стоит зависимость 2-го от первого. Настроено соединение к SQLServer ч/з DBX.
Примерный вид 1-го запроса:
SELECT distinct table1.field1 df FROM table1
2-й запрос:
SELECT table1.field1, table2.f1 FROM table1
LEFT OUTER JOIN table2 on table1.field1 = table2.f2
and table2.f2 = :p1
здесь p1 определен как <Запрос1."df">
В чем проявляется ошибка - при выполнении 1-го sql не в FastReport, он возвращает, как и должен 4 строчки (для примера).
При выполнении в FR возвращается 5! строк, причем последняя из них пустая - ''
это было отслежено только по ошибке приведения видов в конструкции table2.f2 = :p1
т.е. отчет строится нормально, все данные есть, но в конце выдает ошибку.
(тип table1.field1 и table2.f2 - uniqueidentifier
Т.е. если строить отчет, и сравнивать, например строковые данные - нет проблем, 5я строка сравнения не пройдет и в результат не будет выведено ничего.
Что подскажете?
ps: используется FR 3.20 stable
Ситуация следующая: в отчете есть 2 запроса, и стоит зависимость 2-го от первого. Настроено соединение к SQLServer ч/з DBX.
Примерный вид 1-го запроса:
SELECT distinct table1.field1 df FROM table1
2-й запрос:
SELECT table1.field1, table2.f1 FROM table1
LEFT OUTER JOIN table2 on table1.field1 = table2.f2
and table2.f2 = :p1
здесь p1 определен как <Запрос1."df">
В чем проявляется ошибка - при выполнении 1-го sql не в FastReport, он возвращает, как и должен 4 строчки (для примера).
При выполнении в FR возвращается 5! строк, причем последняя из них пустая - ''
это было отслежено только по ошибке приведения видов в конструкции table2.f2 = :p1
т.е. отчет строится нормально, все данные есть, но в конце выдает ошибку.
(тип table1.field1 и table2.f2 - uniqueidentifier
Т.е. если строить отчет, и сравнивать, например строковые данные - нет проблем, 5я строка сравнения не пройдет и в результат не будет выведено ничего.
Что подскажете?
ps: используется FR 3.20 stable
Комментарии
В Delphi - метод RecordCount возвращает правильное число,
но если считывать построчно - появляется одна лишняя строка
Видимо особенность дельфей?
вот пример кода
SQLQuery1->Open();
SQLQuery1->First();
while (!SQLQuery1->Eof)
{
ListView1->Items->Add()->Caption = AnsiString(">> ") + SQLQuery1->FieldByName("field1")->AsString;
SQLQuery1->Next();
}
Так что проблема где то в самом FastReportе насколько я понимаю.