|
|
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Начал переводить для рассылки, потом оказалось что не то, но уж раз начал, то закончил - м.б. кому интересно будет. Переименование таблицы базы данных Access By Justin Macklin http://www.4guysfromrolla.com/ Вступление Я несколько дней пытался переименовать таблицу Microsoft Access из ASP. Очевидно, что переименовать таблицу на SQL Server легко с помощью хранимой процедуры (exec sp_rename oldtable, newtable), но в Access нет такого эквивалента. Казалось, что единственным выходом может быть создание новой таблицы, затем использование SELECT INTO для переноса данных с последующим вызовом DROP для удаления оригинальной таблицы. Вряд ли это эффективный способ и уж наверняка некрасивый. Затем я прочёл интересную статью от Ramesh Balaji и Scott Mitchell - Working with ADOX. Если вы её не читали, я настоятельно её вам рекомендую. По существу, ADOX, т.е. ADO Extensions, это дополнительный объектный слой ADO, предоставляющий информацию к схеме БД. Используя ADOX вы можете выполнять такие задачи как получение списка таблиц БД, полей таблицы, их типов и т.д. Прочитав статью об ADOX, я сообразил, что ADOX может быть использована в качестве фундамента для построения процедуры переименования таблицы в MS Access. Поиск в MSDN показал, что свойство Name объекта Table является свойством для чтения и записи! Это значит, что я мог бы переименовать таблицу в БД Access просто установив свойство Name объекта Table в соответствующее значение. Код Следующий код приводит текст функции RenameTable, которая принимает в качестве параметра строку соединения (conStr), текущее (старое) имя таблицы (oldName) и новое имя (newName). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код ясен. Создаётся объект Catalog и устанавливается его свойство ActiveConnection в строку соединения. Это позволяет получить доступ к объектам из схемы БД (в т.ч. к таблицам). Свойство Name таблицы из oldName меняется на newName. Затем очищаем переменные, установив объект каталога в Nothing. Также можно переименовать и другие объекты БД. Библиотека MSDN ( http://msdn.microsoft.com/library/en-us/ado270/htm/adproname.asp) утверждает, что свойство Name является свойством для чтения и записи для объектов Column, Group, Key, Index, Table, и User, но только для чтения для объектов Catalog, Procedure и View. Полный пример В следующем примере переименовывается таблица test в changed в БД, расположенной в c:\example.mdb. <% Call RenameTable("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\example.mdb", "test", "changed") Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Ограничения Код работает только с соединениями OLEDB, так как показано в примере. Кроме того, для систем NT/2000/XP должны быть установлены соответствующие права на файл БД Access. Код обработки ошибок в примере опущен для ясности. Он может быть легко добавлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 16:35 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
1) Название топика с содержимым как-то связаны? 2) Еще бы код проверки на наличие блокировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 16:40 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Темный1) Название топика с содержимым как-то связаны? Слово пропущено - Переименование ТАБЛИЦЫ базы ... Модераторы, исправьте плиз, чтоб в заблуждение не вводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 16:43 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Дайте мне кнопку! :))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 16:47 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
вообче-то это уже давно применяеца - ADOX. ишо с А2000. спасибо за напоминание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 17:13 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Переименовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 18:37 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Топик. А я - заголовок статьи в тексте. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 20:35 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32555200&tid=1673971]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
189ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 532ms |

| 0 / 0 |
