Здравствуйте!
Помогите пожалуйста решить следующий вопрос:
Довелось использовать базу sqlite в совокупности с отчетами стимулсофта.
Подключение настроил, все работает, запросы выполняются, и отчеты строятся.
Но возникла проблема с передачей параметров даты в DataSource.
База отрабатывает запросы с датой формата 'yyyy-MM-dd'.
Т.е. запрос вида "select * from docs where data >= '2010-01-01' " отрабатывает нормально.
Как только пытаюсь через параметр дату передать (select * from docs where data >= @dateFrom),
то либо ничего не отображается (при типе параметра text), либо возникают ошибки о некорректности сформированной строки.
Как решить данную проблему?
Добавлю еще:
select *
from doc d
where (d.Data >= @dateFrom)
отрабатывает, а запрос вида
select *
from doc d
where (d.Data >= @dateFrom) and (d.Data <= @dateTo)
при корректных значениях параметров ничего не выводит...
вопрос по использованию sqlite
вопрос по использованию sqlite
Здравствуйте,
Сложно сказать в чем может быть проблема. sqlite не использовали, адаптер делали наши пользователи. Что можно попробывать:
1. Тип параметра в любом случае нужно использовать date, не текст.
2. Размер типа параметра (Size свойство у параметра) лучше не оставлять равным 0. Обычно это 10.
3. Заполнять параметры лучше при помощи такого кода:
4. Иногда именованные ( формат @name) )параметры не работают. Иногда не работают два параметра, а один работает. Можно попробывать использовать неименованные параметры - формат (?). К примеру:
В данном случае параметры подставляются в порядке очередности в дереве. Использование неименованных параметров часто решает проблему.
5. В некоторых адаптерах (особенно экзотических) баз данных есть проблемы просто с передачей параметров из .net адаптера. При этом запрос без параметров работает хорошо. Можно попробывать использовать выражения в тексте запроса. Но стоит учитывать, что такое использование не верно, с точки зрения sql стандартов. Например:
В данном случае Вам нужно будет присвоить нужное значение переменной myvariable, и, желательно, в строковом формате. Также нужно быть аккуратным с переменными типа - дата. В этом случае нужно сразу преобразовать их в правильный строковый формат.
Спасибо.
Сложно сказать в чем может быть проблема. sqlite не использовали, адаптер делали наши пользователи. Что можно попробывать:
1. Тип параметра в любом случае нужно использовать date, не текст.
2. Размер типа параметра (Size свойство у параметра) лучше не оставлять равным 0. Обычно это 10.
3. Заполнять параметры лучше при помощи такого кода:
Код: Выделить всё
report.Compile();
report["@parametername"] = value;
Код: Выделить всё
select * from customers where id = ? and name = ?
5. В некоторых адаптерах (особенно экзотических) баз данных есть проблемы просто с передачей параметров из .net адаптера. При этом запрос без параметров работает хорошо. Можно попробывать использовать выражения в тексте запроса. Но стоит учитывать, что такое использование не верно, с точки зрения sql стандартов. Например:
Код: Выделить всё
select * from customers where id = {myvariable}
Спасибо.