Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Провайдер OLE DB от VFP SP2 (число прочтений - 20978 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Провайдер OLE DB от VFP SP2
03. Ноября 2007 :: 19:25
Печать  
Выдрал OLE DB провайдер для Фокса из 2-го сервис-пака для Фокспра. Теперь практически все тесты OLE DB из конфы тестирования 1С++ падают с ошибкой:
Цитата:
OleDBТесты:УжасLEDBData_СоздатьИСоединить() : FAILED! IDataInitialize::GetDataSource(): Формат строки инициализации не соответствует спецификации OLE DB.
лРезультатСоединения = OLEDBData.Соединение(СтрокаПодключения);


А я ведь говорил, что самая правильная строка подключения - такая:
Цитата:
           глСтрокаПрямогоПодключенияКБД = Шаблон ("Provider=VFPOLEDB.1; Mode=ReadWrite;
           |Data Source=[КаталогИБ ()];");


С такой строкой я даже не заметил перехода на новую разновидность провайдера.

Эх, вот не слушаете вы меня  Очень довольный

Кстати, вроде бы новый провайдер малость шустрее работает. Процентов эдак на 5. Улыбка
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Провайдер OLE DB от VFP SP2
Ответ #1 - 03. Ноября 2007 :: 20:24
Печать  
В новой редакции нужно закомментировать
"Deleted=Yes; "
видимо опция больше не поддерживается

т.е. правильно
Код
Выбрать все
Рез=глОлеДБ.Соединение("
	|Provider=VFPOLEDB.1;
//	|Deleted=Yes;
	|Null = Yes;
	|Exclusive = No;
	|SourceType = DBF;
	|Data Source=" + КаталогИБ() + ";
	|Mode=ReadWrite;
	|Extended Properties="""";
	|User ID="""";
	|Password="""";
	|Mask Password=False;
	|Collating Sequence=MACHINE;
	|DSN="""""); 



Хотя согласен, непонятно какие опции ставятся по умолчанию.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #2 - 03. Ноября 2007 :: 20:27
Печать  
kiruha писал(а) 03. Ноября 2007 :: 20:24:
В новой редакции нужно закомментировать
"Deleted=Yes; "
видимо опция больше не поддерживается

Эта опция и раньше "не поддерживалась"  Смех Можешь проверить Улыбка
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Провайдер OLE DB от VFP SP2
Ответ #3 - 03. Ноября 2007 :: 20:30
Печать  
Uzhast писал(а) 03. Ноября 2007 :: 20:27:
kiruha писал(а) 03. Ноября 2007 :: 20:24:
В новой редакции нужно закомментировать
"Deleted=Yes; "
видимо опция больше не поддерживается

Эта опция и раньше "не поддерживалась"  Смех Можешь проверить Улыбка


Она стоит по умолчанию у меня в рабочей базе.
На новом - не работает.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #4 - 03. Ноября 2007 :: 20:32
Печать  
kiruha писал(а) 03. Ноября 2007 :: 20:30:
Она стоит по умолчанию у меня в рабочей базе.
На новом - не работает.

Ну и что, что стоит? Главное, она не поддерживается - т.е. не влияет ни на что  Смех
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Провайдер OLE DB от VFP SP2
Ответ #5 - 03. Ноября 2007 :: 20:34
Печать  
Uzhast писал(а) 03. Ноября 2007 :: 20:32:
kiruha писал(а) 03. Ноября 2007 :: 20:30:
Она стоит по умолчанию у меня в рабочей базе.
На новом - не работает.

Ну и что, что стоит? Главное, она не поддерживается - т.е. не влияет ни на что  Смех


Ну и в чем спор? Улыбка
Я только говорю - что ошибка из за нее.
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #6 - 03. Ноября 2007 :: 20:39
Печать  
kiruha писал(а) 03. Ноября 2007 :: 20:34:
Ну и в чем спор? Улыбка
Я только говорю - что ошибка из за нее.

Дык, смешно просто Улыбка Если больше "не поддерживается", значит раньше поддерживалась типа Улыбка

А вообще, я настаиваю на своем варианте строки подключения. В MSDN очень мало параметров у строки подключения для OLE DB. А та куча, что у тебя, скорее всего, включает параметры, которые раньше поддерживались ODBC-драйвером. А для OLE DB почти все это не нужно. Более того - вредно. Ибо может вылезти боком в случае изменения провайдера OLE DB, как это сейчас произошло.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Провайдер OLE DB от VFP SP2
Ответ #7 - 03. Ноября 2007 :: 20:49
Печать  
Uzhast писал(а) 03. Ноября 2007 :: 20:39:
kiruha писал(а) 03. Ноября 2007 :: 20:34:
Ну и в чем спор? Улыбка
Я только говорю - что ошибка из за нее.

Дык, смешно просто Улыбка Если больше "не поддерживается", значит раньше поддерживалась типа Улыбка

А вообще, я настаиваю на своем варианте строки подключения. В MSDN очень мало параметров у строки подключения для OLE DB. А та куча, что у тебя, скорее всего, включает параметры, которые раньше поддерживались ODBC-драйвером. А для OLE DB почти все это не нужно. Более того - вредно. Ибо может вылезти боком в случае изменения провайдера OLE DB, как это сейчас произошло.


Ну как минимум установка сортировки влияет очень значительно.
http://www.1cpp.ru/forum/YaBB.pl?num=1176287559

Т.е. этот параметр точно поддерживается, возможно, в твоем варианте она ставится в mashine по умолчанию.
А доверять Fox что он там поставит по умолчанию - не есть Good
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #8 - 03. Ноября 2007 :: 20:56
Печать  
kiruha писал(а) 03. Ноября 2007 :: 20:49:
Ну как минимум установка сортировки влияет очень значительно.
http://www.1cpp.ru/forum/YaBB.pl?num=1176287559

Т.е. этот параметр точно поддерживается, возможно, в твоем варианте она ставится в mashine по умолчанию.
А доверять Fox что он там поставит по умолчанию - не есть Good

Это она СЕЙЧАС влияет. Но в документации эта опция не указана. Поэтому, если в будущих версиях поддержку этой опции уберут, то они будут не так уж не правы. Потому что опция недокументированная. А таких вещей надо избегать.

А доверять установкам по умолчанию - как раз good. Ибо эти установки четко описаны в документации. Соответственно, fox эти вещи ОБЯЗАН поддерживать.

Если же ты не доверяешь установкам по умолчанию, то лучше использовать вещи типа SET и SYS.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Провайдер OLE DB от VFP SP2
Ответ #9 - 03. Ноября 2007 :: 21:00
Печать  
Лучше бы рассказал - появились ли еще какие то новые особенности (возможности) в последней версии
провайдера? Ну за 2 года должны же они были что то сделать...
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #10 - 03. Ноября 2007 :: 21:01
Печать  
kiruha писал(а) 03. Ноября 2007 :: 21:00:
Лучше бы рассказал - появились ли еще какие то новые особенности (возможности) в последней версии
провайдера? Ну за 2 года должны же они были что то сделать...

Я вот как раз хотел спросить что-то такое у тебя Улыбка
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #11 - 03. Ноября 2007 :: 21:15
Печать  
Могу только сказать, чего они не сделали Улыбка
1. SELECT TOP по прежнему тормозит
2. SET FILTER и SET KEY также отсутствуют. Т.е. поддержка заявлена, при использовании ошибка не возникает, но и ожидаемый эффект полностью отсутствует Улыбка

Похоже, OLE DB - это бедный родственник в системе FoxPro Улыбка А жаль. MSSQL, как я понимаю, вырос на основе опыта разработки FoxPro.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #12 - 05. Ноября 2007 :: 02:28
Печать  
Uzhast писал(а) 03. Ноября 2007 :: 21:15:
Могу только сказать, чего они не сделали Улыбка
1. SELECT TOP по прежнему тормозит
2. SET FILTER и SET KEY также отсутствуют. Т.е. поддержка заявлена, при использовании ошибка не возникает, но и ожидаемый эффект полностью отсутствует Улыбка

Похоже, OLE DB - это бедный родственник в системе FoxPro Улыбка А жаль. MSSQL, как я понимаю, вырос на основе опыта разработки FoxPro.


SET FILTER - а какой ожидаемый эффект?

Specifies a condition that records in the current table must meet to be accessible.


SET FILTER TO [lExpression] [IN nWorkArea | cTableAlias]



Parameters
lExpression


Specifies the condition that records must satisfy. If the current table is indexed on a field or fields specified in lExpression, Rushmore Query Optimization technology can optimize queries based on the field or fields.
IN nWorkArea| cTableAlias


Specifies the work area or table alias affected by the SET FILTER command. Use this clause to specify a work area or a table outside the current work area.
Remarks
Once SET FILTER is issued, only the records that satisfy the condition specified by the logical expression lExpression are available in the table. All commands that access the table respect the SET FILTER condition. A separate filter can be set for every open table.

The condition specified by SET FILTER isn't evaluated until the record pointer is moved in the table.

Issuing SET FILTER TO without lExpression turns off the filter for the current table.

SELECT – SQL does not respect the current filter condition.

  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #13 - 05. Ноября 2007 :: 02:32
Печать  
Nick писал(а) 05. Ноября 2007 :: 02:28:
SELECT – SQL does not respect the current filter condition.

Спасибо, я читал Улыбка Эффект должен проявляться при использовании команд GOTO и SEEK. А его как раз и нет. Поэтому вместо простой реализации фильтра в ТП-провайдере пришлось извращаться Улыбка
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Провайдер OLE DB от VFP SP2
Ответ #14 - 05. Ноября 2007 :: 02:35
Печать  
Эээ... В смысле, при использовании GOTO и SKIP Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать