![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADO [D7, XP]
DimOk © (2008-03-03 09:34:00)Доброго времени суток вам мастера. Скажите пожалуйсто как можно ускорить работу ADO. У меня ситуация следующая - таблица имеет около 20 тысяч записей, после того как я пишу ADOTable.Activate := True; сижу и смоотрю в монитор минут пять, при чем на достаточно хорошм железе.... Все настройки компонента по умолчанию, за исключением Connection
Kolan (2008-03-03 12:54:00) [41]А ты параметры в диалоге выбираешь?
DimOk (2008-03-03 12:52:00) [42]Наверное у меня драйвер не правильно работает.... Сейчас опять пустой проект создали попробовал через ODBC Ошибка SQLSetConnectAttr драйвера.
sniknik (2008-03-03 12:50:00) [43]> В данном случа Table а не Database
нет. в данном случае как раз таки Database, т.к. реплика была к
DimOk (03.03.08 12:36) [108]
...
> Еще хуже.... среда повисла..... :(
а там указано в подключении вовсе не Table.
Сергей М. (2008-03-03 12:45:00) [44]
> В данном случа Table а не Database
>
по барабану.
И так и эдак должнго работать
DimOk (2008-03-03 12:44:00) [45]
> DSN "Visual FoxPro Database"
В данном случа Table а не Database
sniknik (2008-03-03 12:43:00) [46]> Еще хуже.... среда повисла..... :(
а DSN "Visual FoxPro Database" у тебя есть? чтобы к нему подключаться...
а вообще, все это как как мертвому припарки... настройками не поможешь, реализацию/логику менять надо.
DimOk (2008-03-03 12:42:00) [47]
> Я так и не понял. у тебя vfp odbc установлен или нет ?
Да. Но когда я в ODBC выбираую поставщика Microsoft Visual FoxPro Table , то вылетает ошибка инициализации поставщика :(
Сергей М. (2008-03-03 12:40:00) [48]
> DimOk (03.03.08 12:36) [108]
>
>
Я так и не понял. у тебя vfp odbc установлен или нет ?
DimOk (2008-03-03 12:36:00) [49]
> Provider=MSDASQL.1;Persist Security Info=False;Extended
> Properties="DSN=Visual FoxPro Database;UID=;SourceDB=g:\DBASES\SOME_VFPDB_DIR;
> SourceType=DBF;Exclusive=No;Back groundFetch=Yes;Collate=Machine;
> Null=Yes;Deleted=Yes;"
Еще хуже.... среда повисла..... :(
Palladin (2008-03-03 12:29:00) [50]
> Сергей М. © (03.03.08 12:23) [105]
угу... согласен...
Сергей М. (2008-03-03 12:28:00) [51]Вот строка подключения для связки ADO -> OLEDB for ODBC -> VFP ODBC:
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=Visual FoxPro Database;UID=;SourceDB=g:\DBASES\SOME_VFPDB_DIR;SourceType=DBF;Exclusive=No;Back groundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
p.s. Флаг ShareDenyNone убрать нафих !
Сергей М. (2008-03-03 12:23:00) [52]
> Palladin © (03.03.08 12:05) [99]
Я просто полностью не исключаю "кривизну" имеющегося у автора oledb-провайдера.. Или "кривизну" его инсталляции.
А MSAccess позволит подключиться к фоксовым таблицам иным маршрутом - через OLEDB for ODBC + VFP ODBC .. хотя бы для исключения подозрения на "кривизну"
DimOk (2008-03-03 12:19:00) [53]
> сравнил. там же не делается выборки всей таблицы предварительно,
> там она просто открывается как файл и отображаются(читаются)
> только несколько первых строк по числу показанных в гриде.
>
И что при запуске формы на гриде отображается тлько количество строк которое в него вмещается...? :)
Palladin (2008-03-03 12:14:00) [54]смотри
> sniknik © (03.03.08 12:09) [100]
про выборку всей таблицы
DimOk (2008-03-03 12:14:00) [55]
> > выставь парметры
> >
> > q.CursorLocation:=clUseServer;
> > q.CursorType:=ctOpenForwardOnly;
> > q.LockType:=ltReadOnly;
>
> Всеравно медленно.... :(
И выдает ошибку Dataset does not support bookmarks, with are required for multi-record data controls
DimOk (2008-03-03 12:11:00) [56]
> выставь парметры
>
> q.CursorLocation:=clUseServer;
> q.CursorType:=ctOpenForwardOnly;
> q.LockType:=ltReadOnly;
Всеравно медленно.... :(
sniknik (2008-03-03 12:09:00) [57]> Хотя в фоксе кидаешь грид на форму, устанавливаешь ему в качестве источника данных эту таблици и.. вуаля,
> грид заполняется практически мнгновенно....
сравнил. там же не делается выборки всей таблицы предварительно, там она просто открывается как файл и отображаются(читаются) только несколько первых строк по числу показанных в гриде.
реализация в общем там не твоя... уже сделано все за тебя.
Palladin (2008-03-03 12:05:00) [58]
> остается попробовать через связку ADO+ODBC или Jet+ODBC
лучше не надо, в случае существования OLEDB провайдера
Palladin (2008-03-03 12:04:00) [59]выставь парметры
q.CursorLocation:=clUseServer;
q.CursorType:=ctOpenForwardOnly;
q.LockType:=ltReadOnly;
Сергей М. (2008-03-03 12:02:00) [60]ODBC - это
http://www.google.ru/search?complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla:ru:official&hs=Lml&defl=ru&q=define:ODBC&sa=X&oi=glossary_definition&ct=title
Не вдаваясь в подробности, для тебя это выглядит как "поставщик данных" или "источник данных".
Соотв. драйвер ODBC должен быть утановлен в системе.
В строке ADO-коннекта ты должен указать, что ты используешь именно odbc-, а не oledb-поставщика данных.
Равно как и при импорте/привязке внешних таблиц в MS Access-базе ты можешь указать, что источником данных является такой-то конкретный odbc-движок.
Только MS Access подключается к odbc-движку через "родной" для него Jet, а не через ADO.