|
|
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Отчет без группировок, без источника данных и без Inputparameters. (хотя хотелось бы в перспективе и с группировками) В событии Open присваиваю ему Recordset, созданый динамически. (таким образом я пытаюсь обойти ограничение 255 символов на входящий текстовый параметр отчета) И при попытке перейти на его последнюю страницу - ненормально завершается Access. Что делать и кто виноват? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:49 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
А если присваивать не Recordset, а RecordSource? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:51 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч А если присваивать не Recordset, а RecordSource? Тогда придется задавать и InputParameters, который урезает входящий текстовый параметр до 255 символов. Из за чего, собственнол, и весь сыр/бор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:55 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
А зачем входящий текстовый параметр? Есть ведь глобальные переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:56 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
2 Жмурик Не понял, зачем? Adp или mdb? Select * from sometable where Idsometable = 1 - поставляем это в RecordSource и не знаем бед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:57 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
К вопросу о параметрах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 17:58 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч А зачем входящий текстовый параметр? Есть ведь глобальные переменные. Какие такие глобальные переменные? У меня на входе в сохраненную процедуру текстовый параметр (до 800 символов бывает и более). Собственно, это набор чисел, упакованый в XML. При вызове этой процедуры через объекты ADODB все нормально, но при присвоении полученного Recordset отчету последний неслабо глючит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:00 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
О, там сохраненная процедура... В вопросе был только отчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:04 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
В переменную загоняйте, потом через openargs передавайте в отчёт - всё будет работать нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:04 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
В принципе, в конструкторе отчёта можно сразу прописать значение параметра в хранимой равное возвращаемому значению функции в аксесе, а в источнике данных вашу хранимую - в ссылке различные варианты действий описаны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:06 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Hummer sorry adp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:07 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Хаммер Мне надо не получить, а передать длинный параметр ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:10 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
2 Жмурик По ссылке можно прочитать, как работать с отчётами - ещё поиск по форуму, а наиболее распространённые способы решения я уже изложил выше... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:10 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Получилось решить проблему с помощью назначения источнику строк "exec dbo.sp_ла_ла_ла 'Значение очень длинного параметра............'". При этом InputParameters оставить пустым. Однако, согласитесь, это некрасиво. На самом деле параметров может быть несколько и придется значение типа даты передавать как строку, что не есть хорошо и надежно. Хаммер Речь идет не об умении работать с Access, а о борьбе с ошибками в его реализации. Весь форум, где встречается слово Recordset я прошерстил полностью, прежде, чем задавать вопрос. Вообще-то не работа получается, а бред какой-то. Чтобы сделать что либо минимальное, приходиться извращаться и приспосабливаться, искать какие-то лазейки вместо того, чтобы выбирать наиболее оптимальный путь. Или я (и задачи, стоящие передо мною) давно переросли его возможности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:31 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
Только что попробовал через функцию. А именно, в InputParameters прописываю ..............., @Парам text = getvalue() а в getvalue() as string возвращаю значение. На коротких значениях опять таки все работает, а на длинных - урезает. То есть: Никакой разницы со ссылкой на поля форм. Остается один единственный способ - мой предыдущий пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:47 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
или непрвильная постановка задачи.... (эта не чтоб обидеть)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 18:50 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
вадя или непрвильная постановка задачи.... Вы хотите поговорить об этом?...:) Давайте сформулируем правльно. Цель - реализовать пользовательский фильтр из длинного списка для отчета. И что без гемороя с временными таблицами. Против таблиц против ничего не имею, против геммороя имею. И желательно этот фильтр запоминать для каждого пользователя... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 19:21 |
|
||
|
Отчет.Recordset = MyRecordset => Вылетает Access 2002
|
|||
|---|---|---|---|
|
#18+
2 Жмурик Речь идет не об умении работать с Access, а о борьбе с ошибками в его реализации. Весь форум, где встречается слово Recordset я прошерстил полностью, прежде, чем задавать вопрос По ссылке ходили? Там как раз пример работы с отчётами. Ну нельзя в аксесе программно задавать InputParameters в отчётах и точка. Такой момент: В конструкторе отчёта в RecordSource: [owner].mySuperSP, в InputParameters: @myparam varchar(8000)=mysuperfunc(), где mysuperfunc() string function. Сохраняем отчёт. Теперь в хранимой процедуре делаем селект в какую-нибудь временную табличку количества знаков в @myparam - ну не верю я, что что-то обрезается. Не нашёл нигде ограничения по кол-ву символов в InputParameters. Более того, у нас передаётся строка SQL в ХП для динамического формирования запроса для отчёта, свои грабли - но так исторически сложилось в некоторых местах (оффтоп просто) - никогда ничего не обрезалось. Ещё такой момент - вы упомянули, что через ADODB.Command всё работает, так значит и по вышеописанному тоже всё должно работать. И желательно этот фильтр запоминать для каждого пользователя... Так и запоминайте в таблице фильтров для пользователя, при изменении - сохраняйте последний фильтр. Не временная табличка:) Либо делайте ини файл на каждой машине либо в реестр (но это уже не для фильтров). Или я (и задачи, стоящие передо мною) давно переросли его возможности? Ну-ну:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 09:50 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32407729&tid=1676676]: |
0ms |
get settings: |
8ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 490ms |

| 0 / 0 |
