Вопрос по базе *.ADP

Galustov
Дата: 08.06.2004 09:41:02
У меня есть табличка, содержащая 150000 записей (имущество компании). Мне надо, чтобы пользователь мог открыть форму и увидеть все записи (чтобы поиск осуществлять и т.д. и т.п.) Однако если снимаю ограничение на показ 10000 записей (ставлю 0), то у меня глючит комп выдаёт ошибку (я файл приложил)
Как этого избежать и что это за ошибка такая?

Спасибо
Boroda
Дата: 08.06.2004 10:01:11
1.Сообщение об ошибке не связано с ограничением на количество выводимых записей.
2.В клиент-сервере выдавать больше 10 000 записей на экран ???
Ну ты даешь.
Galustov
Дата: 08.06.2004 10:13:04
А куда мне деваться если юзьверя хотят поиск делать по всем записям? Я и сам понимаю, что дебилизм, а однако что поделаешь?
Хотя наверное стоит просто сделать mdb-шку и не париться - пусть все открывают один файл и роются если им так надо... Я не программер и мне неохота чужую работу делать!
Какие мысли?
Boroda
Дата: 08.06.2004 10:26:21
Сделай форму выбора - пусть вначале отберут, а потом уже все качается на локульный комп. А если юзверей немного можно и на mdb
Galustov
Дата: 08.06.2004 10:30:04
Я честно говоря хочу ADP сделать.
Фишка в том, что у нас есть 4 куска этой таблицы, которые больше 30000 каждый. Не могу понять как изначально фильтровать, чтобы меньшее число записей выдавать пользователям...

Это надо через запрос что ли делать и запрос использовать в качестве источника для формы?
neal
Дата: 08.06.2004 10:43:44
Сообщение об ошибке говорит что в какой-то строке есть значение, которое не может быть сконвертировано.

Посмотри вьюшку, там наверно есть convert или cast или операторы & + для строковых и числовых данных.

А выводить на клиенте надо те записи которые помещаются на 1-2 экрана (TOP 50-100 записей), если пользователю нужно другие страницы, то кнопку "Следующие"/"Предыдущие"
или пусть фильтрует по более жестким условиям (по периоду дат).
Latuk
Дата: 08.06.2004 10:57:39
>Я честно говоря хочу ADP сделать.
Я в таких случаях делаю гибрид
создаю на локальной машине временный MDB
Set dbe = New DAO.DBEngine
On Error Resume Next
Kill CurrentProject.Path + "\__tmp.mdb"
Set db = dbe.Workspaces(0).CreateDatabase(CurrentProject.Path + "\__tmp.mdb", dbLangGeneral)
в нем запрос к серверу
Set q = db.CreateQueryDef("spq")
q.Connect = "ODBC;DRIVER={SQL Server};SERVER=" + GetServerName() + ";DATABASE=" + GetDBName() + ";Trusted_Connection=yes;dsn=;"


и сливаю его в локальную таблицу

q.SQL = "exec dbo.МояХП '" + DateFormat(dtGetDateBeg()) + "','" + DateFormat(dtGetDateEnd()) + "'"
q.Close
db.Execute "select * INTO TmpWr from spq"
На ней откравается DAO рекордсет
Set GetDAORowSourse = db.OpenRecordset("SELECT * FROM TmpWr")
а на нем форма в ADP
Set Me.Recordset = GetDAORowSourse

для любителей локальной фильтрации
с агрегирующими полями просто песня :)
Galustov
Дата: 08.06.2004 12:16:37
2 Latuk
Если я правильно понял такая фишка должна стоять на открытии формы в ADP?
Как сделать кнопку далее? Это мне кажется подойдёт больше.

Спасибо за полезную инфу!!!
Latuk
Дата: 08.06.2004 13:30:25
> фишка должна стоять на открытии формы в ADP?
Да
Еще небольшой код для обновления с сохранением сортировок и фильтров
Если хочеш могу дать полный код
Поменяеш только имя источника и параметры.
Galustov
Дата: 08.06.2004 15:03:19
Можно и полный, хотя вполне достаточно ключевого куска. Мне непонятно как отображать к примеру с 25 по 45 строку.
Спасибо