Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите с Alter Table (число прочтений - 1916 )
Vatikan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 22. Апреля 2008
Помогите с Alter Table
30. Ноября 2009 :: 08:55
Печать  
Всем доброго дня. Работаю через OLEDBData.  Столкнулся с проблемой. Делаю следующее.
     тз=СоздатьОбъект("ТаблицаЗначений");
     рс.ВыполнитьИнструкцию("select * from table;", тз);
       СейчасВБазеПолей=тз.КоличествоКолонок();
       рс.Выполнить("SET NULL OFF;");
При попытке выполнить инструкцию
       рс.Выполнить("ALTER TABLE table ADD Pole1 char(100) NOT NULL NOVALIDATE;");
возникает ошибка File must be opened exclusively.
Если перед alter table не делать селект то все работает.
Убрать select не подходит, потом ниже будет еще insert.
Я подозреваю что select как то держит таблицу и не дает взять ее в монопольное использование.
Понимаю что где то туплю, но где пока не понимаю Смущённый
Сильно не пинайте Смущённый - учуся..... Улыбка
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите с Alter Table
Ответ #1 - 30. Ноября 2009 :: 09:32
Печать  
а что это за СУБД? Может нужно закрыть первый рекордсет?
Код
Выбрать все
рс.Закрыть(); 

  
Наверх
 
IP записан
 
Vatikan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 22. Апреля 2008
Re: Помогите с Alter Table
Ответ #2 - 30. Ноября 2009 :: 13:48
Печать  
alexdd писал(а) 30. Ноября 2009 :: 09:32:
а что это за СУБД? Может нужно закрыть первый рекордсет?
Код
Выбрать все
рс.Закрыть(); 


пробовал. Ничего не меняет.
Работаю с VFP.
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Помогите с Alter Table
Ответ #3 - 30. Ноября 2009 :: 14:54
Печать  
сори, не шарю в VFP, но здесь пишут, что для alter table база должна быть открыта эксклюзивно http://support.microsoft.com/kb/130659

Цитата:
However, commands that directly relate to the database (.DBC file) structure and commands that involve the creation or deletion of objects require exclusive use of the database. These commands include:
CREATE TABLE
MODIFY STRUCTURE
ALTER TABLE
...
  
Наверх
 
IP записан
 
Vatikan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 22. Апреля 2008
Re: Помогите с Alter Table
Ответ #4 - 30. Ноября 2009 :: 17:13
Печать  
а я и открываю ее эксклюзивно
DRIVER={Microsoft Visual FoxPro DB="+КаталогИБ()
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с Alter Table
Ответ #5 - 01. Декабря 2009 :: 06:58
Печать  
Ну если ты её из той же базы 1С открываешь, то получается точно не эксклюзивно.
  
Наверх
 
IP записан
 
Vatikan
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 22. Апреля 2008
Re: Помогите с Alter Table
Ответ #6 - 01. Декабря 2009 :: 16:31
Печать  
JohnyDeath писал(а) 01. Декабря 2009 :: 06:58:
Ну если ты её из той же базы 1С открываешь, то получается точно не эксклюзивно.


Я ее открываю не из той же 1С, а отдельно. Она у меня и лежит в отдельной папке.
Не совсем корректно указал строку подключения, сорри. На самом деле должно быть так
DRIVER={Microsoft Visual FoxPro ce
DB="+КаталогИБ()+"\folder\"
В папке folder и лежит моя дбф'ка


Спасибо всем кто откликнулся!!! Я немного покопался по форумам и понял что нормально эта конструкция в vfp решается только созданием новой таблицы, добавлением необходимого кол-ва полей и перекачиванием в новую таблицу всех данных, затем старая таблица удаляется а новая переименовывается в старую.
В принципе работает переподключение к базе. Но этот способ мне не понравился и я сразу изначально его откинул.
Может это кому то поможет.

Сам же я пошел по другому пути. К субд привязки не было, поэтому реализовал все что мне нужно на sqlite. Там все работает нормально. Правда работаю через 1С компоненту и неизвестно делает ли оно после alter переподключение к базе или нет.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите с Alter Table
Ответ #7 - 02. Декабря 2009 :: 06:30
Печать  
Vatikan писал(а) 01. Декабря 2009 :: 16:31:
... на sqlite. Там все работает нормально. Правда работаю через 1С компоненту и неизвестно делает ли оно после alter переподключение к базе или нет.

А должен переподключаться?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать