Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 11:28   #1
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
Восклицание OPENDATASOURCE и OPENROWSET в MS SQL

Из D7 обращаюсь к процедуре MS SQL использующей OLE DB провайдер VFPOLEDB.1, в которой есть код:
Код:
SELECT U.S7
  FROM OPENDATASOURCE('VFPOLEDB.1',
    'Data Source=<путь>;Mode=Read;Password="";Collating Sequence=MACHINE')...Sches AS U
  WHERE U.s7=0
Выполняется примерно 12 секунд

То же самое, но с использованием ODBC (драйвер dBase 5.0):
Код:
SELECT U.S7
  FROM OPENROWSET('MSDASQL',
    'DSN=Dbf;DefaultDir=<путь>',
    'SELECT s7 FROM Sches WHERE s7=0') AS U
Выполняется примерно 3 секунды! К сожалению этот драйвер не стабильно работает в моей ситуации и пришлось перейти к VFPOLEDB.1

Хочется проверить время выполнения с использованием OLE DB провайдера VFPOLEDB.1 и OPENROWSET, но какие бы параметры не подбирал - MS SQL выдает ошибку. В Help-е MS SQL написано, что эта функция как раз и предназначена для OLE DB, но примеров для VFPOLEDB нет
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 06.01.2011 в 11:30.
Аватар вне форума Ответить с цитированием
Старый 06.01.2011, 15:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А VFoxpro какое стоит? У 9-ки были проблемы провайдером
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.01.2011, 16:31   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А VFoxpro какое стоит? У 9-ки были проблемы провайдером
А что наличие фокса при этом обязательно? Я что-то не заметил разницы при обращении к dbf-файлу влияния наличия или отсутствия установленного VFP на запросы при использовании как ODBC, так и OLE DB
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.01.2011, 14:42   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Нашел вариант запроса, жаль на временные характеристики практически не повлияло
Код:
SELECT U.S7
  FROM OPENROWSET('VFPOLEDB.1',
    '<путь>';'';'',
    'SELECT s7 FROM Sches WHERE s7=0') AS U
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.01.2011, 15:13   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А что наличие фокса при этом обязательно?
А-а-а ты ODBC рулишь...
Я просто такое замечал в VFP, когда работал с им...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2011, 17:04   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А-а-а ты ODBC рулишь...
Я просто такое замечал в VFP, когда работал с им...
Да нет, ODBC под VFPOLEDB не настраивал и вряд ли получится. По-моему по документации он и не поддерживает работу через ODBC. Провайдер брал с интета и устанавливаю независимо от VFP. Да и в самом тексте запроса нет явной ссылки на имя DSN
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
Запросы SQL и PL/SQL sharpest Фриланс 1 05.02.2008 18:58
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15