Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 MSSQLServer -> VFP80  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
В теме: "ODBC - коннект к фокс-про файлам"
Sergey Ch
Использую только OLE DB (VFP, ASP.NET) - работает как часы

А ODBC - как говорится, устарел однако...

Я решил поставить маленький эксперимент. Я понимаю, что я не ГУРУ, поэтому сильно не убивайте пожалуйста. А лучше, о! великие ГУРУ, направьте в нужном направлении. Ведь всегда интересно узнать более новое и лучшее.
Цель эксперимента: узнать скорость получения информации от SQLServer до клиента при различных соединениях (ODBC, OLEDB ODBC, OLEDB SQLServer).
1. На сервере создал таблицу в базе
CREATE TABLE [Provod] (
	[id_prov] [int] NOT NULL ,
	[c_prim] [char] (40) NULL CONSTRAINT [DF_Provod_c_prim] DEFAULT (''),
	CONSTRAINT [PK_Provod] PRIMARY KEY  NONCLUSTERED 
	(
		[id_prov]
	) WITH  FILLFACTOR = 90  ON [PRIMARY] 
) ON [PRIMARY]
GO
2. Заполнил ее (таблицу) 1 000 000 записями.
3. В VFP создал три формы:
wf_provod_odbc - просмотр записей через ODBC
wf_provod_ado_sqlodbc - просмотр записей через CA->ADO->Provider=MSDASQL.1(OLEDB ODBC)
wf_provod_ado_sqloledb - просмотр записей через CA->ADO->Provider=SQLOLEDB.1(OLEDB SQLServer)
в формах wf_provod_ado_sqlodbc, wf_provod_ado_sqloledb
в LOAD:
PUBLIC m.c_time1
m.c_time1 = TIME()
в INT:
SELECT Provod
GO BOTTOM  && Для заполнения всех записей
GO TOP
LOCAL m.c_time2, m.n_sec
m.c_time2 = TIME()
m.n_sec = (VAL(SUBSTR(m.c_time2,1,2))-VAL(SUBSTR(m.c_time1,1,2)))*3600 + ;
          (VAL(SUBSTR(m.c_time2,4,2))-VAL(SUBSTR(m.c_time1,4,2)))*60 + ;
          (VAL(SUBSTR(m.c_time2,7,2))-VAL(SUBSTR(m.c_time1,7,2)))

THIS.Lbl1.Caption = 'Время:  '+ ALLTRIM(STR(m.n_sec,25)) + ' сек.'
в форме wf_provod_odbc
DataEnvironment.Cursor.NoDataOnLoad[ = .F.
в LOAD:
LOCAL m.c_time1, m.c_time2, m.n_sec
m.n_sec = 0
m.c_time1 = TIME()

SELECT Provod
=REQUERY()
GO BOTTOM
GO TOP

m.c_time2 = TIME()
m.n_sec = (VAL(SUBSTR(m.c_time2,1,2))-VAL(SUBSTR(m.c_time1,1,2)))*3600 + ;
          (VAL(SUBSTR(m.c_time2,4,2))-VAL(SUBSTR(m.c_time1,4,2)))*60 + ;
          (VAL(SUBSTR(m.c_time2,7,2))-VAL(SUBSTR(m.c_time1,7,2)))
THIS.Lbl1.Caption = THIS.Lbl1.Caption +'  '+ ALLTRIM(STR(m.n_sec,25)) + ' сек.' 
Результаты эксперимента:
ODBC - 6-8 сек.
OLEDB ODBC и OLEDB SQLServer - 15-19сек.
Может я плохо настраивал CA, т.к. я с ними первый раз работаю. Но результаты таковы...
17 мар 05, 11:44    [1393627]     Ответить | Цитировать Сообщить модератору
 Re: MSSQLServer -> VFP80  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
я тя бить не буду у меня такой же опыт
но кажеться разговор был про делфи
17 мар 05, 11:49    [1393658]     Ответить | Цитировать Сообщить модератору
 Re: MSSQLServer -> VFP80  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
leaf
но кажется разговор был про делфи

Из темы конечно получается что разговор ODBC->Delphi и OLE DB->Delphi.
А почему у VFP должно быть иначе?
17 мар 05, 12:53    [1394013]     Ответить | Цитировать Сообщить модератору
 Re: MSSQLServer -> VFP80  [new]
Igor Korolyov
Member

Откуда: Гомель, Беларусь
Сообщений: 2512

Hi Владимир СА!

Ну фоксу ЯВНО сложнее переводить ADO RS в курсор чем ODBC данные. Другой вопрос что многих фишек ADO в ODBC просто нету. А если касаться ИМЕННО VFP ODBC и VFP OLE DB - то тут вообще БЕЗ вопросов - ODBC 6-й версии, а OLE DB - 9-й :)
Из настроек - ну если не лень, то попробуй с разными типами CursorType/CursorLocation для ADO...

Posted via ActualForum NNTP Server 1.1

18 мар 05, 03:47    [1396194]     Ответить | Цитировать Сообщить модератору
 Re: MSSQLServer -> VFP80  [new]
leaf
Member [заблокирован]

Откуда: Ростов-на-Дону --> Москва
Сообщений: 2661
ну собственно ответили
добавлю тока что насколько я знаю и понимаю делфи более приспособлен к адо а фокспро к одбс по крайней мере 6,7
так уж жизнь устроена такие правила игры
может в 9 что измениться
18 мар 05, 11:06    [1396859]     Ответить | Цитировать Сообщить модератору
 Re: MSSQLServer -> VFP80  [new]
Владимир СА
Member

Откуда:
Сообщений: 7882
Спасибо всем! Начинаю более детально изучать CursorAdapter->ADO . Тема закрыта.
18 мар 05, 11:33    [1396968]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить