Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADO+DBF, как добавить столбец? 
V
    Опции темы
Данкинг
Дата 10.5.2007, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Подключаюсь к DBF-файлу через ADO. При попытке запросом добавить в таблицу столбец возникает ошибка "file must be opened  exclusively". Можно ли вообще добавлять и удалять столбцы в таблицах подобным способом??

Код

adoquery.sql.add('alter table BASE.DBF add column sss c(50)');




--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Rodman
Дата 10.5.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



 а где тип добавляемого поля???

может
Код

adoquery.sql.clear;
adoquery.sql.add('alter table BASE.DBF add column sss varchar(50)');
adoquery.execsql;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Данкинг
Дата 10.5.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Rodman @ 10.5.2007,  14:06)
а где тип добавляемого поля???

Как где тип -  "c(50)" ! 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Rodman
Дата 10.5.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 22
Всего: 122



я такого типа не знаю...

какой нить из этих вариантов сработает?
Код

adoquery.sql.clear;
adoquery.sql.add('alter table BASE.DBF add column sss INTEGER');
adoquery.execsql;

и
Код

adoquery.sql.clear;
adoquery.sql.add('alter table BASE.DBF add column sss varchar(50)');
adoquery.execsql;

PM MAIL WWW Skype GTalk YIM MSN   Вверх
SergeBS
Дата 10.5.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Данкинг, 
Цитата
"file must be opened  exclusively".

Колдуй с настройками ShareDeny у компонента - он должен один захватывать файл. А тип надо пробовать - char(50) IMHO.
Но вообще через ADO работать с dbf - нецелесообразно. Возьми что-либо другое. 

PM MAIL   Вверх
Данкинг
Дата 10.5.2007, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Rodman @ 10.5.2007,  14:32)
я такого типа не знаю...


На фоксе именно так обозначается CHAR. А другие варианты тоже не катят...

Добавлено через 1 минуту и 27 секунд
Цитата(SergeBS @ 10.5.2007,  17:19)
Данкинг, 
Цитата
"file must be opened  exclusively".

Колдуй с настройками ShareDeny у компонента - он должен один захватывать файл. А тип надо пробовать - char(50) IMHO.
Но вообще через ADO работать с dbf - нецелесообразно. Возьми что-либо другое.

У какого компонента? В AdoTable такого не нашёл. А по-другому работать - говорят, что tDbf так же глючит в данном случае (хотя я его ни разу не видел).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
SergeBS
Дата 11.5.2007, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Данкинг, 
Connection - Mode - cmShareDenyNone/cmShareExclusive
Цитата
А по-другому работать - говорят, что tDbf так же глючит в данном случае (хотя я его ни разу не видел). 

Насчет добавления поля - это везде не сахар. Лично я просто создаю новую таблицу, в нее перегоняю данные, старую убиваю и переименовываю новую. Это работает.
PM MAIL   Вверх
Данкинг
Дата 11.5.2007, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(SergeBS @ 11.5.2007,  08:43)
Данкинг, 
Connection - Mode - cmShareDenyNone/cmShareExclusive

Да, с cmShareExclusive получилось. smile 
 А создание новой таблицы - это, конечно, выход, но связанный с риском потери данных...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
SergeBS
Дата 14.5.2007, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



Данкинг, 
Цитата
А создание новой таблицы - это, конечно, выход, но связанный с риском потери данных... 

Наоборот. Когда я создаю новую таблицу и в нее перегоняю значения из старой, все некорректные значения автоматом заменяются пустышками с соответствующим сообщением в логе: запись № ... - поле ... - некорректные данные, заменены на ... Лог напечатал, ручками поправил.
И к тому же то же самое, но неявно, происходит при добавлении поля в таблицу. Точно так же: новая таблица, в нее данные, удаление старой, переименование.
PM MAIL   Вверх
AyanTai
Дата 23.12.2008, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 28.10.2008

Репутация: нет
Всего: нет



все заработало! спасибо!  smile  НО есть одно НО, записывает только поледнее значение ФИО ((
PM MAIL   Вверх
Данкинг
Дата 23.12.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



AyanTai, и на кой ты мою древнюю тему поднял? smile  smile  smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.