Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обнулить счетчик в Access 
:(
    Опции темы
yours-tester
Дата 2.7.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Перед вставкой в базу данных новых значений 
удаляю из неё все записи:
Код

 sSQLString=_T("DELETE * FROM Executors");
 dstConn->Execute(sSQLString, 0 , ADODB::adCmdText);


в базе есть поле ID - длинное целое, тип данных счетчик,
последовательные значения, совпадения не допускаются, индексированное

и несмотря на то что все записи были удалены в дальнейшем при добавлении
записей нумерация в это поле продолжается со старого значения...

Возможно ли обнулить этот счетчик?
PM MAIL   Вверх
jonie
Дата 2.7.2007, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



только изменив значение текущее счетчика в файле (что незаконно - формат закрытый). Иначе имхо никак ( я задавался подобной проблемой давно и иного решения законного ненашел). Да  и зачем это надо... на то оно и уникальное значение...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
yours-tester
Дата 3.7.2007, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(jonie @  2.7.2007,  18:27 Найти цитируемый пост)
только изменив значение текущее счетчика в файле (что незаконно - формат закрытый). Иначе имхо никак 


Да вот и изменение текущего значения счетчика в файле не помогает.
Я несколько раз скопировал базу DBF-> в файл Access, там чуть менее 200 записей, пока я несколько раз копировал не удаляя старые записи счетчик догнался до ~1000, затем я стал удалять старые записи, но счетчик всё равно шел вверх. Тогда я стал принудительно переписывать и сам счетчик через ADO, теперь в базе последняя запись 198, а когда добавляешь новую у неё становится номер 1458. Вот и решил выяснить, а нет ли способа в это вмешаться и принудить Access считать как мне надо. Должен же быть способ какой то не могли же они это не предусмотреть...
PM MAIL   Вверх
Rodman
Дата 3.7.2007, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


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

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



я не уверен, но вот попробуй
PM MAIL WWW Skype GTalk YIM MSN   Вверх
yours-tester
Дата 3.7.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Да там по ссылке похожая проблема, но решение для MySQL,
JET такую команду не принимает

_com_error.descripton():
Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

Тут похоже нужен специалист по MS Access.
PM MAIL   Вверх
Rodman
Дата 3.7.2007, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


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

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



Код

Подскажите чайнику - в таблице поле - "Счетчик". Набрано 8 записей. после их удаления при наборе новых записей счет идет с 9 и дальше. Как обнулить счетчик?
Ответ.
   Вопрос сложный. Access не даст Вам изменить поле счетчика ручным или программным способом. Выход заключается в том, что необходимо уничтожить старое поле "Счетчик", а потом создать новое. Недостаток такого способа - рост размера базы данных. Пример создания и удаления счетчика приведен в программе la_table.mdb.
   P.S. Теоретически и практически возможно изменение счетчика, минуя ядро Access, но для этого необходимо знать структуру mdb файла. Я никогда в разработках не использую поле счетчик, а стараюсь генерировать уникальный номер с помощью собственной функции.


http://www.leadersoft.ru/russian/help/subscribe/sub17.htm

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


Шустрый
*


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

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



Видимо ты прав, прекращаю стучаться лбом о стену.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


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

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


 




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


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

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