PDA

Просмотр полной версии : 1C 7.xx и Win 7



NextAvto
17.01.2012, 13:37
Скажите, платформы от 7ки отсюдаhttp://forum.ruboard.ru/showthread.php/10844-%D0%9F%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%8B-7.x-8.x.-%D0%A2%D0%9E%D0%9B%D0%AC%D0%9A%D0%9E-%D0%A1%D0%A1%D0%AB%D0%9B%D0%9A%D0%98-%D0%BD%D0%B0-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%83-!!! встанут на Win7ИИ
есть портабл версия годишной давности, не работает:( ругается на несоответствие чегото там в системе и программе......

user1212
08.02.2012, 07:37
зайди в конфигуратор, администрирование, кодовая страница ИБ
Выбери пункт "Текущая системная установка"
На будущее указывай точно на что ругается программа. иначе на вопрос "ругается на несоответствие чегото там" получишь ответ "сделай что нибудь"

TigeRuS
14.03.2012, 09:28
Почитай тут может быть поможет: http://gtigerus.blogspot.com/2012/01/1-77-windows-7-sql-1-windows-7.html

Koktul
19.03.2012, 17:31
Прошу помочь!

1С 7.7 сетевая (универсальный инсталятор - 027) не открывает базу по сети из 2 компов с Win 7. Никаких ошибок не выдает, а просто тухнет и все. Запускается только на компе с базой.

TigeRuS
19.03.2012, 18:16
Это проблема не 1С, а настройки сети и брандмауэра. Посмотри настройки для 1С в Пуск--Панель управления -- Система и безопастность -- Разрешения запуская программ через брандмауэр Windows. Если стоит фаервол аутпост или касперский, то смотри еще и там.

Koktul
19.03.2012, 18:40
Спасибо!

Начал копать глубже и нашел. В доступе к папке не было разрешения на Запись, а только на чтение. Снял также парольную защиту, но главное в записи.

vadimvad
29.01.2013, 17:51
Подскажите, на одном ПК стоит Win XP и 1С 7.7 сетевая платформа 27 с базой. Остальные 3 ПК с Win XP работают с базой по сети. Появился новый ПК с W7х64. Как настроить на нем 1С, чтобы и этот ПК работал по сети с 1С 7.7. , не трогая кодовые страницы и т.д. на ПК с Win XP. Спасибо!

МАХХ_r
12.03.2013, 09:20
Подскажите, на одном ПК стоит Win XP и 1С 7.7 сетевая платформа 27 с базой. Остальные 3 ПК с Win XP работают с базой по сети. Появился новый ПК с W7х64. Как настроить на нем 1С, чтобы и этот ПК работал по сети с 1С 7.7. , не трогая кодовые страницы и т.д. на ПК с Win XP. Спасибо!

В папке bin на На ПК с W7x64 создай файл OrdNoChk.prm и работай без изменения кодовой страницы

Grooz-in
18.03.2013, 16:48
Здравствуйте, подскажите в чем дело, под WIN7 стоит 1С - Бухгалтерия 7.7. платформа на сколько понял 4.5, не печатает машинопечатные формы, покапал нет, нашел модуль для печати PDF417(версии 3.0.9) утановил WinScript 5.6, как указанно в тех документации, MSXML 4.0 уже стоял. вроде все соответствует требованиям, но когда отправляешь на печать выдает сообщение о том, что не удается вывести компонент, по адресу \\БЛА-БЛА\...\....\v7plus.dll Точную формулировку не скажу, но суть в том что не может прочитать эту библиотеку. Подскажите в чем дело, может сама 1С-ка глючит и модуль тут не причемИ
Заранее благодарю за ответы, и извиняюсь если это офф топ)

МАХХ_r
20.03.2013, 00:52
Здравствуйте, подскажите в чем дело, под WIN7 стоит 1С - Бухгалтерия 7.7. платформа на сколько понял 4.5, не печатает машинопечатные формы, покапал нет, нашел модуль для печати PDF417(версии 3.0.9) утановил WinScript 5.6, как указанно в тех документации, MSXML 4.0 уже стоял. вроде все соответствует требованиям, но когда отправляешь на печать выдает сообщение о том, что не удается вывести компонент, по адресу \\БЛА-БЛА\...\....\v7plus.dll Точную формулировку не скажу, но суть в том что не может прочитать эту библиотеку. Подскажите в чем дело, может сама 1С-ка глючит и модуль тут не причемИ
Заранее благодарю за ответы, и извиняюсь если это офф топ)


Проблема в самой винде. Заходишь в Панель управления - учетные записи пользователя - изменить параметры контроля учетных записей и ставишь бегунок в самое нижнее положение. Перезагружаешь комп. Если принципиально, то потом можешь все вернуть назад

vovchicnn
16.05.2013, 03:29
...На будущее указывай точно на что ругается программа. иначе на вопрос "ругается на несоответствие чегото там" получишь ответ "сделай что нибудь"
Yes! Классное выражение! Надо запомнить.

Enec
08.01.2014, 18:02
Добрый день. 1С Предприятие 77 сетевая установлена на двух ПК, на одном БД и платформа, на втором - платформа, с которой второй бухгалтер обращается по сети к этой же БД. На обоих ПК Windows7 PROF 64-разрядный. Очень медленно все работает. Ранее было все то же самое, но под ХР, проблемы не было. win7 установили в силу обстоятельств - одна из рабочих станций - новый ноутбук, для которого просто нет драйверов под ХР, пришлось и на основной машине установить w7. Какие лучше попробовать варианты - вернуться к ХР на основном ПК, который с базой, а на ноутбуке установить virtualbox и работать с 1С через него, сделать сервер терминалов, поставить там 1С77 и подключить бухгалтеров к нему, или, может есть еще какое-то средство. Если у кого-то есть опыт работы с сетевой 1C 77 на win7, подскажите, пожалуйста, что можно сделать.

тэсса
29.09.2015, 17:54
"Эта задача разрешилась заменой файла BkEnd.dll из каталога "C:\Program Files\1Cv77\Bin" на пропатченный файл BkEnd.dll." Помогите пжл. решить с этим вопросом мне,бухгалтеру...Сижу сама с собой и ломаю голову Программы для DLL скачала,и все на английском...:blush::confused::(

Koktul
29.09.2015, 18:20
Еще раз в чем проблема?

---------- Post added at 20:19 ---------- Previous post was at 20:17 ----------

Чем помочь?

---------- Post added at 20:20 ---------- Previous post was at 20:19 ----------

"...на одном БД и платформа" - сделайте из него сервер терминалов и тогда все заработает быстро

тэсса
29.09.2015, 19:28
Еще раз в чем проблема?

---------- Post added at 20:19 ---------- Previous post was at 20:17 ----------

Чем помочь?

---------- Post added at 20:20 ---------- Previous post was at 20:19 ----------

"...на одном БД и платформа" - сделайте из него сервер терминалов и тогда все заработает быстро

Вот у меня было ОС ХР теперь 7.Не открываются базы. Редактор для dll поставила, но....не могу стать программистом. Пропатчить не могу....а базы нужна крайне...конец месяца.Как нибудь попроще для обычного бухгалтера,пжл.

avm3110
29.09.2015, 21:54
Вот у меня было ОС ХР теперь 7.

Как нибудь попроще для обычного бухгалтера,пжл.
Самое простое ("для обычного буха" :blush: ) это иметь win 7 макс на которой легко (штатно) поднимается виртуалка с winXP на которой уже без проблем идёт 7-ка

Удачи

Koktul
30.09.2015, 02:02
У Вас базы не запускаются..
Открыть конфигуратор-Администрирование-кодовая страница таблиц ИБ-вместо русский, белорусский... - выбрать - текущая системная установка - ОК

тэсса
30.09.2015, 08:10
У Вас базы не запускаются..
Открыть конфигуратор-Администрирование-кодовая страница таблиц ИБ-вместо русский, белорусский... - выбрать - текущая системная установка - ОК Сделала. и1549

Koktul
30.09.2015, 12:34
Вы запускаете на ПК, где находится база?

тэсса
30.09.2015, 12:52
Вы запускаете на ПК, где находится база? Да (ПК),на нём и работаю...

Koktul
30.09.2015, 12:54
Есть другая база любая - проверить то же самоеИ? Проверьте, если есть

alexandr_ll
30.09.2015, 16:09
Возможно, файлам информационной базы установлен при копировании атрибут "только чтение", проверьте.

тэсса
30.09.2015, 19:46
Есть другая база любая - проверить то же самоеИ? Проверьте, если есть И так всё в разброд.Поставила OrdNoChk.prm и мне пропатчили BkEnd.dll.Одно другое исключает ? .
Вопрос для меня открытым..Далее( sqlsrv32.rll) менять или...Платформа у меня 027 ...

---------- Post added at 22:46 ---------- Previous post was at 22:44 ----------


Возможно, файлам информационной базы установлен при копировании атрибут "только чтение", проверьте. Полный доступ...

alexandr_ll
01.10.2015, 09:58
Полный доступ...
Это доступ, а какие атрибуты файлов?
Судя по скринам у вас проблема именно с базой, а не в платформе.

тэсса
01.10.2015, 15:56
Это доступ, а какие атрибуты файлов?
Судя по скринам у вас проблема именно с базой, а не в платформе. Возможно.Открываю файл в базе (где то только для чтения-сняла,Но как всем придать эти свойства.Сегодня один человек по удалёнке "зашёл" посмотрел...не смог,предположил что идёт конфликт разрешений...)))Будь" прекрасен " тот день, когда я сел за баранку этого пылесоса! :confused:

Koktul
01.10.2015, 18:08
Сталкивался с такой ситуацией: на 64-ой семерке эска при смене кодовой страницы выдавала ошибки. Менял кодовую страницу на 32-разрядной и потом переносил обратно

тэсса
01.10.2015, 18:32
Сталкивался с такой ситуацией: на 64-ой семерке эска при смене кодовой страницы выдавала ошибки. Менял кодовую страницу на 32-разрядной и потом переносил обратно А теперь в формате для "обычного бухгалтера" Зайти туда,сделать то...:yes:

Koktul
01.10.2015, 18:38
Нужен компьютер с 32-х разрядной Windows 7 b установленной 1С семеркой. Посмотреть какая стоит винда можно в свойствах компьютера - правой кнопкой...
Дальше копируем базу и переносим на этот ПК с 32-разрядной семеркой. Дальше открываем конфигуратор и меняем кодовую страницу на текущую системную вместо русский, белорусский. Затем возвращаем обратно - можно с помощью архива.

тэсса
03.10.2015, 19:03
Самое простое ("для обычного буха" :blush: ) это иметь win 7 макс на которой легко (штатно) поднимается виртуалка с winXP на которой уже без проблем идёт 7-ка

Удачи И так про удачу.Поставила Максимальную....Завтра начну разбираться...

avm3110
03.10.2015, 21:17
.Завтра начну разбираться...
Ну может "обычному буху" в этой части поможет инфа из этих ссылок
http://windows.microsoft.com/ru-ru/windows7/install-and-use-windows-xp-mode-in-windows-7
http://www.youtube.com/watch?v=ARZra297Mwg

тэсса
04.10.2015, 16:21
[quote]Ну может "обычному буху" в этой части поможет инфа из этих ссылок
http://windows.microsoft.com/ru-ru/w...e-in-windows-7
http://www.youtube.com/watch?v=ARZra297Mwg[ ))) Вот поставила 3 штуки,а хотела штук десять. Обычный бух. и виртуалка. Вообщем (((....

avm3110
04.10.2015, 17:23
Обычный бух. и виртуалка
Ой, да ладно... "Эх времена, эх нравы" ()с не мой
Скажи ещё лет так надцать, что "обычный бух" будет через инет узнавать что и как ему делать, что общение в соц сетях будет превышать обычные посиделки - ну кто бы когда поверил бы :blush:

тэсса
04.10.2015, 18:01
Ой, да ладно... "Эх времена, эх нравы" ()с не мой
Скажи ещё лет так надцать, что "обычный бух" будет через инет узнавать что и как ему делать, что общение в соц сетях будет превышать обычные посиделки - ну кто бы когда поверил бы :blush: Ха ха. И так...установила платформу(27) 2. Сделала доступ к базе OK(отдельно к МД) ...Доступ к файлу/..../.../1сv7.MD закрыт.Что это может быть ?


Так кое что пропустила....доступ есть. Конфигуратор , администрирование... и т.п. 1554 обычный бух. ждёт помощи...

avm3110
04.10.2015, 18:40
1сv7.MD закрыт.Что это может быть ?
А можно ли на установленной платформе (епе я понимаю 7.7) установить какую-нибудь демку? Ну например ЗиК и бухию?

hugo_
02.08.2016, 10:07
Добрый день! Не могу скачать установочник платформы 1с 7.7, все ссылки битые.
http://forum.ruboard.ru/showthread.php/10844-%D0%9F%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%8B-7.x-8.x.-%D0%A2%D0%9E%D0%9B%D0%AC%D0%9A%D0%9E-%D0%A1%D0%A1%D0%AB%D0%9B%D0%9A%D0%98-%D0%BD%D0%B0-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%83-!!!

ankr
11.08.2016, 13:56
Добрый день! Не могу скачать установочник платформы 1с 7.7, все ссылки битые.
http://forum.ruboard.ru/showthread.php/10844-%D0%9F%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%8B-7.x-8.x.-%D0%A2%D0%9E%D0%9B%D0%AC%D0%9A%D0%9E-%D0%A1%D0%A1%D0%AB%D0%9B%D0%9A%D0%98-%D0%BD%D0%B0-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D 1%83-!!!

https://yadi.sk/d/i2Ni96CB4ucci

muhtar
15.11.2016, 16:34
Добрый день!
Для того чтобы 1С77 (сетевая) работала под Win8/10 (64бит) нужно заменить файлы sqlsrv32.rll, sqlsrv32.dll, odbcbcp.dll,sqlunirl.dll в папках SysWOW64 и System32 из комплекта WinXP. Предварительно им надо сменить владельца и переименовать их. Это много раз надо тыкать мышкой и т.д. запутаться можно. А может кто-нибудь написать скрипт (батник), который бы все это сделал? ((думаю это все не обязательно проделывать под админом, а например под учеткой system. Или не?)

alexandr_ll
15.11.2016, 16:47
Добрый день!
Для того чтобы 1С77 (сетевая) работала под Win8/10 (64бит) нужно заменить файлы sqlsrv32.rll, sqlsrv32.dll, odbcbcp.dll,sqlunirl.dll в папках SysWOW64 и System32 из комплекта WinXP. Предварительно им надо сменить владельца и переименовать их. Это много раз надо тыкать мышкой и т.д. запутаться можно. А может кто-нибудь написать скрипт (батник), который бы все это сделал? ((думаю это все не обязательно проделывать под админом, а например под учеткой system. Или не?)

1С 7.7 прекрасно работает под Win8/10 (64бит) без всяких переименований

muhtar
15.11.2016, 16:59
SQL-ная?

alexandr_ll
15.11.2016, 17:11
SQL-ная?

Вы писали про сетевую.

muhtar
15.11.2016, 17:52
Да, я неверно выразился. Про sql-версию речь. Простите.

Touch_of_soul
12.12.2016, 10:04
Да, я неверно выразился. Про sql-версию речь. Простите.

Если ещё нужен SQL движок 7.7 пишите вышлю уже работает на SQL на ура

muhtar
13.12.2016, 12:40
Если ещё нужен SQL движок 7.7 пишите вышлю уже работает на SQL на ура

Спасибо. Все работает и так. Это была просто идея насчет упрощения установки 7.7. под Вин8.

Iwan777
27.03.2017, 18:27
Необходимо запустить 1С 7.7 на Windows Server 2016 Standard. При запуске появляется ошибка: Программа "1C:V7 starter program (multi-user) не работает" (на скриншоте). Запускается только в режимах Отладчик и Монитор. Конфигуратор и предприятие не запускаются.
База данных используется файловая.
Погуглил, выполнил следующие рекомендации:
1. Скопирована папка с программой в папку C:\Program Files (x86)\ на сервер с ОС Windows Server 2016 Standard
2. 1C:V7 добавлена в исключения DEP, сервер перезагружен
3. На папку с программой даны права на полный доступ
4. На папку с базой даны права на полный доступ.
не помогает

Что ещё можно сделать, чтобы 1С 7.7 запустилась на Windows Server 2016 Standard?

Iwan777
27.03.2017, 19:03
И в журнале Windows появляются такие ошибки:

Имя сбойного приложения: 1cv7.exe, версия: 7.70.0.27, метка времени: 0x4573fcb7
Имя сбойного модуля: MFC42.DLL, версия: 6.6.8063.0, метка времени: 0x57898e13
Код исключения: 0xc0000409
Смещение ошибки: 0x0003b2f7
Идентификатор сбойного процесса: 0x428
Время запуска сбойного приложения: 0x01d2a7071b6422c8
Путь сбойного приложения: C:\Program Files (x86)\1Cv77\BIN\1cv7.exe
Путь сбойного модуля: C:\Windows\SYSTEM32\MFC42.DLL
Идентификатор отчета: 0255082f-1630-4e2a-83ed-0d76b4433591
Полное имя сбойного пакета:
Код приложения, связанного со сбойным пакетом:

Вторая:
Контейнер ошибки , тип 0
Имя события: APPCRASH
Отклик: Нет данных
Идентификатор CAB: 0

Сигнатура проблемы:
P1: mscorsvw.exe
P2: 4.6.1586.0
P3: 575a1279
P4: mscorwks.dll
P5: 2.0.50727.8745
P6: 573d3066
P7: c0000005
P8: 00003f94
P9:
P10:

Вложенные файлы:

Эти файлы можно найти здесь:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\A ppCrash_mscorsvw.exe_c35cb7fde15668ed01f918d280dd1 c93beac87_00000000_2081a7e4

avm3110
27.03.2017, 21:07
Что ещё можно сделать, чтобы 1С 7.7 запустилась на Windows Server 2016 Standard?
Запускаешь в виртуалку с Винэкспи и в ней 7.7 нормально работает.

тебе шашечки или ехать?

Iwan777
28.03.2017, 10:28
Скопировал из WindowsXP MFC42.DLL и ещё пару библиотек с похожим названием в папку с программой и 1С 7.7 заработала на Windows Server 2016 Standard.

Touch_of_soul
22.11.2017, 07:11
Запускаешь в виртуалку с Винэкспи и в ней 7.7 нормально работает.

тебе шашечки или ехать?

а не проще по нормальному сделать, чем страдать ерундой? У меня 7.7 на SQL крутится 2014 Экспресс и винда 2012 Р2 там чуть чуть крякаешь движок 1с и на SQL запросик и всё.. Кому интересно как пишите в личку..

Touch_of_soul
22.11.2017, 07:19
Скопировал из WindowsXP MFC42.DLL и ещё пару библиотек с похожим названием в папку с программой и 1С 7.7 заработала на Windows Server 2016 Standard.

у меня даже получилось на SQL запустить))) чтоб снимать авто архивы бесплатной прогой

вот решение:

1 выполнить скрипт для эмуляции сторой хранимой процедуры
2 создать sa1 дать ему все права
3 зайти в консоль под sa1 и создать базу
4 BkEnd.dll из 1c должен быть ломаным
4 bkend.dll заменить dbid= на kpid= 2 раза


USE [master]
GO


/****** Object: StoredProcedure [dbo].[sp_dboption] Script Date: 21.03.2012 7:33:37 ******/


SET ANSI_NULLS ON
GO


SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[sp_dboption] -- 1999/08/09 18:25
@dbname sysname = NULL, -- database name to change
@optname varchar(35) = NULL, -- option name to turn on/off
@optvalue varchar(10) = NULL -- true or false
as


set nocount on
declare @dbid int -- dbid of the database
declare @catvalue int -- number of category option
declare @optcount int -- number of options like @optname
declare @allstatopts int -- bit map off all options stored in sysdatqabases.status
-- that can be set by sp_dboption.
declare @alloptopts int -- bit map off all options stored in sysdatqabases.status
-- that can be set by sp_dboption.
declare @allcatopts int -- bit map off all options stored in sysdatqabases.category
-- that can be set by sp_dboption.
declare @exec_stmt nvarchar(max)
declare @fulloptname varchar(35)
declare @alt_optname varchar(50)
declare @alt_optvalue varchar(30)
declare @optnameIn varchar(35)


select @optnameIn = @optname
,@optname = LOWER (@optname collate Latin1_General_CI_AS)
-- If no @dbname given, just list the possible dboptions.
-- Only certain status bits may be set or cleared by sp_dboption.
-- Get bitmap of all options that can be set by sp_dboption.
select @allstatopts=number from master.dbo.spt_values where type = 'D'
and name = 'ALL SETTABLE OPTIONS'
select @allcatopts=number from master.dbo.spt_values where type = 'DC'
and name = 'ALL SETTABLE OPTIONS'
select @alloptopts=number from master.dbo.spt_values where type = 'D2'
and name = 'ALL SETTABLE OPTIONS'
if @dbname is null
begin
select 'Settable database options:' = name
from master.dbo.spt_values
where (type = 'D'
and number & @allstatopts <> 0
and number not in (0,@allstatopts)) -- Eliminate non-option entries
or (type = 'DC'
and number & @allcatopts <> 0
and number not in (0,@allcatopts))
or (type = 'D2'
and number & @alloptopts <> 0
and number not in (0,@alloptopts))
order by name
return (0)
end
-- Verify the database name and get info
select @dbid = dbid
from master.dbo.sysdatabases
where name = @dbname
-- If @dbname not found, say so and list the databases.
if @dbid is null
begin
raiserror(15010,-1,-1,@dbname)
print ' '
select 'Available databases:' = name
from master.dbo.sysdatabases
return (1)
end
-- If no option was supplied, display current settings.
if @optname is null
begin
select 'The following options are set:' = v.name
from master.dbo.spt_values v, master.dbo.sysdatabases d
where d.name=@dbname
and ((number & @allstatopts <> 0
and number not in (-1,@allstatopts)
and v.type = 'D'
and (v.number & d.status)=v.number)
or (number & @allcatopts <> 0
and number not in (-1,@allcatopts)
and v.type = 'DC'
and d.category & v.number <> 0)
or (number & @alloptopts <> 0
and number not in (-1,@alloptopts)
and v.type = 'D2'
and d.status2 & v.number <> 0))
return(0)
end
if @optvalue is not null and lower(@optvalue) not in ('true', 'false', 'on', 'off')
begin
raiserror(15241,-1,-1)
return (1)
end
-- Use @optname and try to find the right option.
-- If there isn't just one, print appropriate diagnostics and return.
select @optcount = count(*) ,@fulloptname = min(name)
from master.dbo.spt_values
where lower(name collate Latin1_General_CI_AS) like '%' + @optname + '%'
and ((type = 'D'
and number & @allstatopts <> 0
and number not in (-1,@allstatopts))
or (type = 'DC'
and number & @allcatopts <> 0
and number not in (-1,@allcatopts))
or (type = 'D2'
and number & @alloptopts <> 0
and number not in (-1,@alloptopts)))
-- If no option, show the user what the options are.
if @optcount = 0
begin
raiserror(15011,-1,-1,@optnameIn)
print ' '
select 'Settable database options:' = name
from master.dbo.spt_values
where (type = 'D'
and number & @allstatopts <> 0
and number not in (-1,@allstatopts)) -- Eliminate non-option entries
or (type = 'DC'
and number & @allcatopts <> 0
and number not in (-1,@allcatopts))
or (type = 'D2'
and number & @alloptopts <> 0
and number not in (-1,@alloptopts))
order by name
return (1)
end
-- If more than one option like @optname, show the duplicates and return.
if @optcount > 1
begin
raiserror(15242,-1,-1,@optnameIn)
print ' '
select duplicate_options = name
from master.dbo.spt_values
where lower(name collate Latin1_General_CI_AS) like '%' + @optname + '%'
and ((type = 'D'
and number & @allstatopts <> 0
and number not in (-1,@allstatopts))
or (type = 'DC'
and number & @allcatopts <> 0
and number not in (-1,@allcatopts))
or (type = 'D2'
and number & @alloptopts <> 0
and number not in (-1,@alloptopts))
)
return (1)
end
-- Just want to see current setting of specified option.
if @optvalue is null
begin
select OptionName = v.name,
CurrentSetting = (case
when ( ((v.number & d.status) = v.number
and v.type = 'D')
or (d.category & v.number <> 0
and v.type = 'DC')
or (d.status2 & v.number <> 0
and v.type = 'D2')
)
then 'ON'
when not
( ((v.number & d.status) = v.number
and v.type = 'D')
or (d.category & v.number <> 0
and v.type = 'DC')
or (d.status2 & v.number <> 0
and v.type = 'D2')
)
then 'OFF'
end)
from master.dbo.spt_values v, master.dbo.sysdatabases d
where d.name=@dbname
and ((v.number & @allstatopts <> 0
and v.number not in (-1,@allstatopts) -- Eliminate non-option entries
and v.type = 'D')
or (v.number & @allcatopts <> 0
and v.number not in (-1,@allcatopts) -- Eliminate non-option entries
and v.type = 'DC')
or (v.number & @alloptopts <> 0
and v.number not in (-1,@alloptopts) -- Eliminate non-option entries
and v.type = 'D2')
)
and lower(v.name) = lower(@fulloptname)
return (0)
end
select @catvalue = 0
select @catvalue = number
from master.dbo.spt_values
where lower(name) = lower(@fulloptname)
and type = 'DC'
-- if setting replication option, call sp_replicationdboption directly
if (@catvalue <> 0)
begin
select @alt_optvalue = (case lower(@optvalue)
when 'true' then 'true'
when 'on' then 'true'
else 'false'
end)
select @alt_optname = (case @catvalue
when 1 then 'publish'
when 2 then 'subscribe'
when 4 then 'merge publish'
else quotename(@fulloptname, '''')
end)
select @exec_stmt = quotename(@dbname, '[') + '.dbo.sp_replicationdboption'
EXEC @exec_stmt @dbname, @alt_optname, @alt_optvalue
return (0)
end
?

-- call Alter Database to set options
-- set option value in alter database
select @alt_optvalue = (case lower(@optvalue)
when 'true' then 'ON'
when 'on' then 'ON'
else 'OFF'
end)
-- set option name in alter database
select @fulloptname = lower(@fulloptname)
select @alt_optname = (case @fulloptname
when 'auto create statistics' then 'AUTO_CREATE_STATISTICS'
when 'auto update statistics' then 'AUTO_UPDATE_STATISTICS'
when 'autoclose' then 'AUTO_CLOSE'
when 'autoshrink' then 'AUTO_SHRINK'
when 'ansi padding' then 'ANSI_PADDING'
when 'arithabort' then 'ARITHABORT'
when 'numeric roundabort' then 'NUMERIC_ROUNDABORT'
when 'ansi null default' then 'ANSI_NULL_DEFAULT'
when 'ansi nulls' then 'ANSI_NULLS'
when 'ansi warnings' then 'ANSI_WARNINGS'
when 'concat null yields null' then 'CONCAT_NULL_YIELDS_NULL'
when 'cursor close on commit' then 'CURSOR_CLOSE_ON_COMMIT'
when 'torn page detection' then 'TORN_PAGE_DETECTION'
when 'quoted identifier' then 'QUOTED_IDENTIFIER'
when 'recursive triggers' then 'RECURSIVE_TRIGGERS'
when 'default to local cursor' then 'CURSOR_DEFAULT'
when 'offline' then (case @alt_optvalue when 'ON' then 'OFFLINE' else 'ONLINE' end)
when 'read only' then (case @alt_optvalue when 'ON' then 'READ_ONLY' else 'READ_WRITE' end)
when 'dbo use only' then (case @alt_optvalue when 'ON' then 'RESTRICTED_USER' else 'MULTI_USER' end)
when 'single user' then (case @alt_optvalue when 'ON' then 'SINGLE_USER' else 'MULTI_USER' end)
when 'select into/bulkcopy' then 'RECOVERY'
when 'trunc. log on chkpt.' then 'RECOVERY'
when 'db chaining' then 'DB_CHAINING'
else @alt_optname
end)
if @fulloptname = 'dbo use only'
begin
if @alt_optvalue = 'ON'
begin
if databaseproperty(@dbname, 'IsSingleUser') = 1
begin
raiserror(5066,-1,-1);
return (1)
end
end
else
begin
if databaseproperty(@dbname, 'IsDBOOnly') = 0
return (0)
end
end
if @fulloptname = 'single user'
begin
if @alt_optvalue = 'ON'
begin
if databaseproperty(@dbname, 'ISDBOOnly') = 1
begin
raiserror(5066,-1,-1);
return (1)
end
end
else
begin
if databaseproperty(@dbname, 'IsSingleUser') = 0
return (0)
end
end
select @alt_optvalue = (case @fulloptname
when 'default to local cursor' then (case @alt_optvalue when 'ON' then 'LOCAL' else 'GLOBAL' end)
when 'offline' then ''
when 'read only' then ''
when 'dbo use only' then ''
when 'single user' then ''
else @alt_optvalue
end)
if lower(@fulloptname) = 'select into/bulkcopy'
begin
if @alt_optvalue = 'ON'
begin
if databaseproperty(@dbname, 'IsTrunclog') = 1
select @alt_optvalue = 'RECMODEL_70BACKCOMP'
else
select @alt_optvalue = 'BULK_LOGGED'
end
else
begin
if databaseproperty(@dbname, 'IsTrunclog') = 1
select @alt_optvalue = 'SIMPLE'
else
select @alt_optvalue = 'FULL'
end
end
if lower(@fulloptname) = 'trunc. log on chkpt.'
begin
if @alt_optvalue = 'ON'
begin
if databaseproperty(@dbname, 'IsBulkCopy') = 1
select @alt_optvalue = 'RECMODEL_70BACKCOMP'
else
select @alt_optvalue = 'SIMPLE'
end
else
begin
if databaseproperty(@dbname, 'IsBulkCopy') = 1
select @alt_optvalue = 'BULK_LOGGED'
else
select @alt_optvalue = 'FULL'
end
end
-- construct the ALTER DATABASE command string
select @exec_stmt = 'ALTER DATABASE ' + quotename(@dbname) + ' SET ' + @alt_optname + ' ' + @alt_optvalue + ' WITH NO_WAIT'
EXEC (@exec_stmt)
if @@error <> 0
begin
raiserror(15627,-1,-1)
return (1)
end
return (0) -- sp_dboption
GO