Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переименование таблицы базы данных 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:36 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
hDrummer Ограничения Код работает только с соединениями OLEDB. Думается не только oledb, но и odbc. Там только провайдеры разные, и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2004, 18:48 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Начал переводить для рассылки, потом оказалось что не то... ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 08:39 |
|
||
|
Переименование таблицы базы данных Access
|
|||
|---|---|---|---|
|
#18+
Max ProТам только провайдеры разные, и всё. Не проверял, эта тема мне мало интересна. snake;) Ага, второй раз уже нарываюсь :) Вроде б в тему, а потом смотришь - нет :) А уже половина переведена :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2004, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=32554771&tid=1395562]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 283ms |
| total: | 396ms |

| 0 / 0 |
