Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Такакя проблема. Моя программа написана на VB6, использует Access97 базу. Как мне переименовать таблицу в моей базе програмным путём? Просто много юзеров и ручками у всех исправлять не получится. Заранее очень благодарна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 17:53 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 18:23 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Alex, вы гений и ваша программа совершенно замечательная! Просто и гениально. Спасибо вам огромное-преогромное! You made my day. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 18:40 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Вы молодец Алекс, только я сделала ещё короче, может кому-то пригодиться. Я напрямую переименовываю мою таблицу, чем экономлю время и обрабатываю ошибку, если чего. Но всё с вашей подачи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 19:02 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Девушка, позволю себе поперхнуться глядя на то что вы называете обработкой ошибки. А в остальном нормально. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 19:21 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Мне конечно жаль вас, юноша, что вы так поперхнулись, но чем вам моя обработка не угодила? Я получаю точно то, чего я хочу: всё отабатывает и тихо делает своё дело. Я делаю resume next и дальше сразу же чищу ошибку. Может эта вторая строка вас смутила? У меня были мысли, что может ошибка уже почищена после resume next, но неохота было проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2004, 22:53 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Девушка, благодарю покорно за трогательную заботу о моем здоровье, но позволю себе заметить что: 1.Если уж использовать On Error Resume Next, то ставится он в начале процедуры, вмето посылания на хендлер. 2.On Error GoTo 0 не чистит ошибку а отключает активный обработчик. Очистка свойств обьекта Err происходит вызовом Err.Clear 3.При выходе из процедуры нет смысла ее чистить вообще. 4. Все отрабатывает тихо или неотрабатывает , тоже тихо. Т.е. если в ьтот момент по каким либо причинам прервется связь с базой , вы будете прибывать в блаженном неведении относительно происшедшего. Спасибо за внимание. Я кстати уже давно не юноша ;) Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2004, 01:20 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Дорогой Уже не юноша, Не хотелось ввязываться в препирания, но незаметно для себя втянулась. 1.Если уж использовать On Error Resume Next, то ставится он в начале процедуры, вмето посылания на хендлер. А вот и неправда, зависит от вашего стиля письма. Наоборот рекомендованно посылать всех на хендлер, а там с ними разбираться. Ежу понятно, что это намного грамотней. Там и номера ошибочек и всё что захотите при желании вписываете и обратно в код. А куда вы иначе пихаете обработку определённого номера ошибки? Ищи-свищи? То-то же. 2.On Error GoTo 0 не чистит ошибку а отключает активный обработчик. Очистка свойств обьекта Err происходит вызовом Err.Clear Какая разница, в данном случае для меня не критично 3.При выходе из процедуры нет смысла ее чистить вообще. Ну это полный шедевр. Ну так хотя бы on error goto 0 поставили. А что у вас разве не стоит обработка в каждой процедуре? Если не то и но то, она ж вывалится на верний уровень обработки и завалится там, если конечно у вас не стоит намертво resume next в начале каждой вашей процедуры 4. Все отрабатывает тихо или неотрабатывает , тоже тихо. Т.е. если в этот момент по каким либо причинам прервется связь с базой , вы будете прибывать в блаженном неведении относительно происшедшего. У меня если нету связи с базой, то это выяснится на гораздо более раннем этапе заведения программы. И она просто даст сообщение и отрубится. И вообще, если связи нету, то меня страшно волнует переименование таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2004, 05:28 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Стихийно продолжаем. Вы, как я вижу тоже не спите. Ну что ж: автор1.Если уж использовать On Error Resume Next, то ставится он в начале процедуры, вместо посылания на хендлер. А вот и неправда, зависит от вашего стиля письма. Наоборот рекомендованно посылать всех на хендлер, а там с ними разбираться. Ежу понятно, что это намного грамотней. Там и номера ошибочек и всё что захотите при желании вписываете и обратно в код. А куда вы иначе пихаете обработку определённого номера ошибки? Ищи-свищи? То-то же. авторКакая разница, в данном случае для меня не критично Вы невнимательны. И от стиля "письма" это не зависит. Существует понятие хорошей практитки. Именно для данного случая не имее никакого смысля делать лишний переход на метку только для того чтобы продолжить обработку на следующем операторе(которого кстати и нет) и тут же отключить обработчик. автор3.При выходе из процедуры нет смысла ее чистить вообще. Ну это полный шедевр. Ну так хотя бы on error goto 0 поставили. А что у вас разве не стоит обработка в каждой процедуре? Если не то и но то, она ж вывалится на верний уровень обработки и завалится там, если конечно у вас не стоит намертво resume next в начале каждой вашей процедуры В каждой? Нет, не стоит.On Error Resume Next практически никогда не использую. Потому что для меня важна каждая строка. Должно отработать все или ничего(применительно к коду одного метода). С транзакциями случайно не доводилось работать? Дело в том что в многоуровневых приложениях зачустую метод какого либо класса не имеет понятия что делать с ошибкой и правильно ее обработать просто не в состоянии. В этом случае ошибка отдается наверх "как есть" и так до того уровня на котором ее перехватит СООТВЕТСТВУЮЩИЙ обработчик. авторУ меня если нету связи с базой, то это выяснится на гораздо более раннем этапе заведения программы. И она просто даст сообщение и отрубится. И вообще, если связи нету, то меня страшно волнует переименование таблицы. Связь с базой может быть оборвана на любом этапе, в любую секунду, к примеру драйвер отрубится. И если вас не волнует выполнится код или нет, зачем его писать в таком случае? Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2004, 06:24 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
2 Madama Мало того ,что Ваш обработчик ошибок бессмысленен, так он еще и содержит "маленькую" логическую ошибку,которая может привести к очень большим проблемам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.03.2004, 22:41 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Существует понятие хорошей практитки. Именно для данного случая не имее никакого смысля делать лишний переход на метку только для того чтобы продолжить обработку на следующем операторе(которого кстати и нет) и тут же отключить обработчик. Ха-ха-ха! Имеется ввиду как стиль письма, а не одна строчка кода конечно же. Простите, думала, что для вас это очевидно. Связь с базой может быть оборвана на любом этапе, в любую секунду, к примеру драйвер отрубится. И если вас не волнует выполнится код или нет, зачем его писать в таком случае? Правильно, и не пишите, вдруг прервётся связь с базой? Это ж всегда может произойти! Надо просто прекратить писать все коды, закрыть эту лавочку и разогнать всех программеров нафиг. А если по серьёзному, то не волнует меня по одной простой причине, что мой код выполнится в любой следующий раз, когда юзер загрузиться. Что так кипятиться? Неужели вы так уж плохо обо мне думаете? А вообще-то я тут не собираюсь претендовать на всезнайство и меряться писюнами. Хотя бы по одной простой причине, что такого не имею. А то бы непременно померилась! Спокойной всем ночи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 06:04 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Мадама. А как вы узнаете, что ваша процедура переименовала необходимую вам таблицу на новое имя? Может какой нибудь умный пользователь уже это сделал за вас, но не на то имя, которое вам надо!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 09:31 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
2 мадама Не вижу смысла далее с вами препираться, разговор слепого с глухим. Просто желаю вам чаще прислушиваться к советам окружающих. Если вы свято верите что в том что написали есть смысл, что ж, удачи. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 14:42 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Косте Ну неужели вы думаете, что мой пользователь будет ходить и ковыряться а моих таблицах, сколько их там не есть, 200 и более и переименовывать их? Канадцы - народ дисциплинированный и как правило таких вещей не делают . А если он и займётся этим неблагодарным для него занятием, программа на его машине просто не будет правильно работать и он же первый прибежит ко мне с мольбами подчинить её. Кому охота делать что-либо во вред себе? Магнусу Не сомневаюсь, что парень вы толковый и у вас всё получиться. И вправду получилось склочновато. Не мой стиль. Но зацепилась и ,как говориться, поехало! А советы окружающих я люблю, что в этом форуме и ценю со страшной силой - советы окружающих, что же ещё. И с огромной благодарностью воспринимаю мнения, подкреплённые кодом. Но никогда бы не позволила себе поперхнуться или высокомерно издеваться над чужой ошибкой. Чего и вам желаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 18:29 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
2 мадама Вы сами себе противоречите. Весь топик пытаетесь доказать что правы а теперь "советы окружающих я люблю". Я может и выдал начальный "совет" в несколько грубой форме, ну что ж, уж больно меня задела ваша "обработка". А вы вместо того чтобы послушать что говорят люди и научится делать эту самую обработку правильно - гнете свое. Хотите проимер? Изовльте. Что бы сделал я.. В данномй процедуре имее всегоодин вызов, поэтому не мудрствуя лукаво вывводим сообщение подобного содержания: "Произошла ошибка при переименовании таблицы.". Больше пользователю ничего не нужно. А саму ошибку с подробностями вплоть до номера строки пишем в лог. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 18:39 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Немогу согласиться. При данном алгоритме ошибка будет всегда. Процедура отрабатывает каждый раз при загрузке аппликации.Таблица переименуется один-единственный раз, самый первый. Все последующие разы это будет ошибка, так как программа будет пытаться обратитьсяч к таблице, которой уже нет, чтобы переименовать её. И нафига мне её писать в лог? И нафига пользователю знать об этом? Регулярно меняется структура базы, у меня всё наработанно.(Кроме переименования таблицы, но сейчас и это есть) Меняются поля, добавляютя, убавляются, меняюся свойства. Всё программным путём. Куча юзеров. Юзер об этом и знать не ведает. Это не бог весть какая высшая математика. Тестирую сначала на моей машине, потом посылаю автоматический upgrade всем юзерам. Да, есть ошибки, которые нужно ловить и которые нужно наверное писать в лог и выдаваь о них мессижи. Но не в данном конкретном случае. Спасибо anyway ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 19:02 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Что "значит При данном алгоритме ошибка будет всегда"? У вас что имя таблицы жестко прописано? Вы програмно меняете стуктуру базы? А не проще ли посылать скрипт для этого? Ладно замнем. Мы друг друга не понимаем. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 19:11 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
У меня имя таблицы передаётся в аргументах процедуры. Новое и старое. Привожу ещё раз. Код: plaintext Да , я програмно меняю структуру базы. Не всю конечно. По мере надобности. А что в этом плохого? А какой скрипт проще посылать? Можете please пояснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 20:06 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
2 мадама Проблема не в том ,что Вы "коряво" делаете обработку ошибки, а в том что делаете это не правильно. Посмотрите внимательно на свой код и задайте вопрос Сколько раз выполнится оператор Код: plaintext Правильно, ни разу. А это значит , что по при возврате из подпрограммы в точку вызова будет продолжать действовать установка Код: plaintext Кстати , недавнее отключение электричества по всей Канаде - это не результат работы Вашей программы ? Удачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 22:10 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Во-первых я на последней строчке и не настаивала, а наоборот написала, что неохота проверять . Во-вторых никуда resume next не пойдёт, потому что во всех до одной процедурах у меня стоит обработка (не resume next, это только для отдельных случаев) и она перехватит контроль. Код надо рассматривать в общем контексте. Поскольку контекста вы не знаете, а знаю я, могу точно сказать, что код свою функцию выполняет. Ну и напоследок сознаюсь, да это я отрубила в Канаде всё электричество. Дело было вечером, делать было нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 22:44 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
> могу точно сказать, что код свою функцию выполняет. Выполнять то он выполняет,спору нет. Только что будет после того ,как Вы попытаетесь переименовать таблицу ,которой в базе нет-одному богу известно. Впрочем ,мне все равно. Слава богу ,я не живу в Канаде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 23:01 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Только что будет после того ,как Вы попытаетесь переименовать таблицу ,которой в базе нет-одному богу известно А вы попробуйте и вам будет известно тоже. У всех работает, никто ещё не пожаловался. Не надо драматизировать. Слава богу ,я не живу в Канаде Я рада за вас. Надеюсь нас разделяет хотя бы океан! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2004, 23:23 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Магнус, ты меня уел. resume next лучше всё таки ставить в начале процедуры. Это в другом куске кода и по другому поводу, но иначе хреново. Поднимаю лапки кверху ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 19:22 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Это был VIG, я давно сдался :). Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2004, 23:50 |
|
||
|
Переименование таблицы программным путём
|
|||
|---|---|---|---|
|
#18+
Можно я еще немного поглумлюсь? Мадам, ваша изначальная конструкция Код: plaintext 1. 2. 3. 4. 5. 6. ничем не отличается от такой: Код: plaintext 1. 2. 3. 4. ибо если мы находимся в блоке обработки ошибок (куда попали по первому On Error), то никакие другие On Error'ы не действуют. Хоть On Error Resume Next в блоке обработки ошибок пиши, хоть On Error Goto 0 - один хрен при возникновении ошибки в блоке обработки ошибок происходит выброс ошибки на уровень вверх. До тех пор, пока не выйдем из блока обработки ошибок (с помощью Resume) - все обшибки являются неперехватываемыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2004, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32451916&tid=2169838]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 467ms |

| 0 / 0 |
