Показаны сообщения с ярлыком SQL. Показать все сообщения
Показаны сообщения с ярлыком SQL. Показать все сообщения

пятница, 24 ноября 2023 г.

Получить все таблицы в базе MS SQL, в которых есть колонка с определенным названием

Для автоматизации задачи получения информации о периодах хранения данных в базе 1С.

Решение здесь.

select table_name 
from information_schema.columns
where column_name='_Period'

понедельник, 19 июня 2023 г.

Переименование БД MS SQL Server

Дано: База с неправильным именем не на том диске.

Надо: Переименовать и перенести.

Решение:

1. Меняем имя базы:

sp_renamedb 'старое' , 'новое'

 

2. Меняем логические и физические имена файлов:

ALTER DATABASE имя_базы MODIFY FILE (NAME = 'старое_data', NEWNAME = 'новое_data')
ALTER DATABASE имя_базы MODIFY FILE (NAME = 'старое_log', NEWNAME = 'новое_log')

 

3. Отключаем базу командой detach

4. Переименовываем файлы

5. Переносим в правильное расположение

6. Присоединяем командой attach, указывая правильные ссылки на файлы 

7. Возвращаем правильного владельца через sp_changedbowner (от чьего имени с базой работает 1С)

среда, 3 марта 2021 г.

Перемещение базы данных TEMPDB

Отсюда: https://its.1c.ru/db/metod8dev/content/2377/hdoc

1. Определить логические имена файлов базы данных TEMPDB (колонка "NAME" результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду:

USE tempdb
GO
EXEC sp_helpfile
GO 

2. Изменить месторасположение файлов базы данных TEMPDB с помощью команды ALTER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд:

USE master
GO
ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'Новый_Диск:\Новый_Каталог\tempdb.mdf')
GO
ALTER DATABASE  tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'Новый_Диск:\Новый_Каталог\templog.ldf')
GO

3. Перезапустить  Microsoft SQL Server. 

понедельник, 26 марта 2018 г.

Ошибка SQL 'Error: 3041, Severity: 16, State: 1. Check the backup application log' при попытке создания бекапа базы

Проблема:  Иногда при ночном создании бекапа базы 1С 7.7, на MS SQL Server 2008, получаем ошибку Error: 3041, Severity: 16, State: 1. Check the backup application log, но если запускать утром вручную - выполняется нормально.
Источники:
Error: 3041, Severity: 16, State: 1. Check the backup application log
v7: Не получается создать бекап на сетевой диск
Решение: В нашем случае - начать бекап не позволяла задача CheckDB, выполняющаяся за 5 минут до старта бекапа, и блокирующая базу.
Помог перенос старта задачи на 10 минут, чтобы они не пересекались.
 

пятница, 16 марта 2018 г.

1C 7.7 SQL: Доступ к базе данных на сервере возможен только из одного каталога информационной базы

Решение отсюда: http://www.pokatashkin.com/it/1c/1108

Иногда при попытке подключиться к информационной базе 1С:Предприятие 7.7 в режиме SQL, может возникнуть ошибка: «Доступ к базе данных на сервере возможен только из одного каталога информационной базы». Обычно это происходит из-за некорректного завершения подключения пользователя к базе. В результате остается зависший SQL-процесс и/или открытые по сети файлы *.LCK в каталоге информационной базы и каталогах пользователей. Ниже описаны способы способы решения данной проблемы.
Если завис SQL-процесс, то можно либо просто перезагрузить SQL сервер, либо убрать зависший SQL-процесс с помощью SQL Enterprise Manager. Для этого в Management\Current Activity\Process Info перейдите к зависшему процессу и в меню «Action» выберите пункт «Kill Process».
Если проблема в открытых по сети файлах *.LCK, то как и в первом случае можно просто перезагрузить файл-сервер с информационной базой, либо зайти на этом сервере в Управление компьютеров (Computer Management) в Общие папки\Открытые файлы и закрыть все файлы с расширением *.LCK в каталоге информационной базы и каталогах пользователей.

P.S. Не обязательно файлы LCK - могут быть и 1Cv7.$ui - тоже удаляем, когда 1С закрыта.

Ещё одно замечание:
http://www.vostokit.com/1s-error-sql/

Первый пользователь запускает 1С без ошибок, последующие не могут зайти.
Для исправления ошибки необходимо добавить для пользователя SQL-сервера роль processadmin: SQL Server - Security - Logins - вкладка Server Roles.
Роль processadmin позволяет закрывать sql-соединения и используется очень редко.

среда, 26 апреля 2017 г.

SQL Server 2008 R2 Best Practices Analyzer

Утилита проверяет SQL Server на предмет соответствия набору правил и выдаёт набор рекомендаций. Поддерживаются SQL Server 2008 и SQL Server 2008 R2. BPA ставится отдельно от SQL Server и для своей работы требует Microsoft Baseline Configuration Analyzer 2.0 и Powershell 2.0. Скачать BPA можно здесь - Best Practices Analyzer.

Статья по теме.

пятница, 7 октября 2016 г.

Ошибка «Saving changes is not permitted…» в Microsoft SQL Server 2008 Management Studio при изменении структуры таблицы.

Проблема: В таблице есть колонка nvarchar(60), возникла необходимость увеличить до количество знаков до 75.
При попытке сохранения изменений в дизайнере, SQL Server Management Studio выдает следующее сообщение: "Saving changes is not permitted. The change you have made requires the following table to be dropped and re-created. You have either made changes to a table that can't be recreated or enabled the option prevent saving changes that require the table to be re-created."

Решение:

Вариант 1) Снять чекбокс «Prevent saving changes that require table re-creation» (Tools->Options):

Вариант 2) Выполнить на таблице следующий скрипт:
alter table ИмяНашейТаблицы 
alter column ИмяКолонкиКоторуюНадоУвеличить nvarchar(75)

P.S. Перед выполнением скрипта необходимо удалить индекс по этой колонке - пока этого не сделали, получали сообщение об ошибке.

среда, 21 октября 2015 г.

Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008 R2

Источник: http://tavalik.ru/ustanovka-1spredpriyatie-7-7-na-microsoft-sql-server-2008-r2/

Официально, платформа 1С:Предприятие 7.7 работает только с MS SQL Server 2000. Но с помощью небольших манипуляций можно организовать стабильную работу и с последней, на момент написания статьи, версий Microsoft SQL Server 2008 R2. Ниже представлена пошаговая настройка связки 1С:Предприятие 7.7 + MS SQL Server 2008 R2 + Microsoft Windows Server 2008 R2 (Справедливо и для других операционных систем семейства Windows). Итак:

0. Оглавление

  1. Установка Windows Server 2008 R2
  2. Установка SQL Server 2008 R2 
  3. Создание новой базы данных в SQL Server 2008 R2
  4. Настройка Windows Server 2008 R2
  5. Установка 1С:Предприятие 7.7
  6. Патч и замена файла BkEnd.dll
  7. Создание представления sksprocesses в MS SQL Server
  8. Добавление информационной базы в 1С:Предприятие 7.7
  9. Настройка безопасности для всех пользователей

среда, 17 июня 2015 г.

1Cv7.7: получение строки соединения с SQL-сервером из файла .dba

Дано: База 1С 7.7 крутится на SQL, необходимо из самой 1С получить имя сервера, чтобы не спрашивать пользователя/заподить константы и т.п.

Решение: дешифровать файл .DBA, в нём хранится как имя сервера и рабочей базы, так и логин-пароль пользователя, под которым подключается 1С.

Под катом 3 ссылки, все утащено на память из указанных источников. В работе используется первый, как самый компактный, хотя и требующий 1С++

FAQ по администрированию 1С и MS SQL Server





Постоянно теряется, поэтому утаскиваю на память. Пригодится.
(http://myscrapbook.narod.ru/sb/Archive/data/20090515074631/index.html если и отсюда уйдет - искать по названию статьи)
 
2. Что такое QA?
3. Что такое BOL?
4. Какие особенности 1С при доступе к MS SQL Server 2000?
5. Как установить или конвертировать конфигурацию с dbf версии в SQL версию базы данных?
6. Как изменить тип авторизации доступа к SQL Server?
7. Как создать базу для 1С на SQL Server?
8. Как поменять владельца базы SQL?
9. Как переиндексировать базу на MS SQL Server?
10. Как проверить (восстановить) базу на MS SQL Server средствами сервера
11. Как упаковать (зашринковать) базу на MS SQL Server?
12. Как упаковать (дефрагментировать) индексы базы на MS SQL Server?
13. Как уменьшить рост журнала транзакций базы на MS SQL Server?
14. Как скопировать базу 1С, работающую с базой БД в формате MS SQL Server?
15. Как изменить место размещения файлов базы tempdb MS SQL Server?
16. Как узнать логин и пароль подключения 1С к MS SQL Server?
17. Как узнать размер таблиц в базе данных MS SQL Server
18. При старте 1С, или при попытке открытия конфигурации выдается сообщение "SQL State: 24000 Native: 0 Message: [Microsoft] [ODBC SQL Server Driver] Invalid cursor state"
19. При попытке монопольно войти в 1С или при записи конфигурации выдается сообщние "База данных не может быть открыта в однопользовательском режиме"
20. Как узнать какой сервис-пак установлен на SQL Server 2000 или SQL Server 2005
21. Как решить проблемы с памьятью. 1 - Windows Server не видит больше 4 GB ОЗУ, 2 SQL Server не может использовать больше 2 GB.
22. Медленно работает 1С по сети с базой на SQL Server
23. После установки на SQL Server 2000 Service Pack 4 SQL стал медленне работать и меньше загружать память
24. После установки на SQL Server 2000 проведение документов замедлилось
25. Не могу подключиться к SQL серверу
26. По каким то причина SQL Server очень медленно работает
27. При попытке подключения к SQL2005 выдается сообщение "Требуется ms sql server версии 6.5 + service pack 5a или более старшая версия"
28. Как подключиться к SQL2005 по IP адресу а не по имени сервера
29. Как получить имя пользователя, который занимает много процессорного времени SQL-Server
30. Как сделать чтобы 1С подключался к SQL не под одним логином (SQL аутентификация), а под логинами Windows (Windows аутотентификация)
31. Работа 1С v77 под Vista и MS SQL 2005
32. При подключении 1С возникате ошибка "SQL State 42000. Native 7202. ... SQL Server Could not find serve 'ServerName' ..."
33. Как создать дополнительные индексы для таблиц
34. Резервная копия базы SQL и MD-файла
35. Как разрешить в SQL Server 2005 использование xp_cmdshell
36. Если вы не нашли желаемого ответа

понедельник, 15 июня 2015 г.

Узнать размеры таблиц 1С в базе MS SQL

Дано: База 1С SQL, надо разобраться, отчего она растет, как на дрожжах.
Поскольку это 1С - имеются сотни таблиц, перебирать которые вручную никакого желания нет.
 
Решение 1.
http://blog.imageofyou.ru/2011/11/09/all-tables-size/ 
Понадобилось мне тут давеча оценить размер таблиц в базе данных одного из наших клиентов. Еще со времен SQL Server 2000 я знаю про процедуру sp_spaceused, но она хороша только для случая, когда нужен размер лишь одного объекта – конкретной таблицы или же всей БД целиком. А для того, чтобы посмотреть размер каждого объекта (например, для того, чтобы найти аномально большие таблицы) приходилось извращаться с курсором и сохранением результата выполнения процедуры во временной таблице. Не самый изящный способ.
С появлением в SQL Server 2005 data management views эту задачу стало возможно решить с помощью всего одного запроса (без курсоров, временных таблиц и прочей “экзотики”).

 
select  t.name as TableName, Min(t.create_date) as CreateDate, ds.name as FileGroupName, SUM(u.total_pages) * 8 / 1024 as SizeMB 
from sys.tables as t
inner join sys.partitions as p on t.object_id = p.object_id
inner join sys.allocation_units as u on p.partition_id = u.container_id
inner join sys.data_spaces as ds on u.data_space_id = ds.data_space_id
group by t.name, ds.name
order by SizeMB desc
 

Решение 2
http://mainview.ru/raznoe/sql-mysql/kak-najti-samye-bolshie-tablicy-v-baze-dannyx-ms-sql 

USE [DatabaseName]
GO
CREATE TABLE #temp (
table_name sysname ,
row_count INT,
reserved_size VARCHAR(50),
data_size VARCHAR(50),
index_size VARCHAR(50),
unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,
a.row_count,
COUNT(*) AS col_count,
a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default
= b.table_name collate database_default
GROUP BY a.table_name, a.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
 
Альтернативные варианты: искать обработки с инфостарта, писать самому, получить демонстрационный доступ на сервисе gilev.ru

вторник, 10 июня 2014 г.

SQL: статьи, ссылки, примеры, документация

SQL

FAQ по администрированию 1С и MS SQL Server

Восстановление базы 1С под SQL-Server

FAQ_SQL.html

Выйди из "пробки" в SQL Server при помощи DBCC

Установка сервера SQL FAQ по администрированию 1С и MS SQL Server

Борьба с размером журнала транзакций: причины роста и методы уменьшения / Программа 1С / Все статьи / Клерк.Ру

Введение в SQL Server 2000 Analysis Services: Создание первого куба

1С + SQL + TSE и SAP R3 (1С Предприятие 7.7 + SQL Server 7.0 (2000) + Terminal Server Практика использования. SAP R3 практика использования (FAQ, документация, sable, обработки,

Десять распространенных ошибок SQL-программирования

Предложение GROUP BY | Интерактивный учебник по SQL | SQL-tutorial.ru

Понимание SQL (Understanding SQL). [SQL.RU]

CREATE INDEX (Transact-SQL)

Краткий справочник по Transact SQL (T-SQL) [SQL.RU]

Справочник Transact-SQL – основы для новичков | Info-Comp.ru - Программирование для начинающих

четверг, 31 октября 2013 г.

Установка 1С:Предприятие 7.7 на Microsoft SQL Server 2008

Жизнь не стоит на месте :)
Несколько ссылок, которые могут служить пошаговым руководством:
http://forum.ru-board.com/topic.cgi?forum=8&topic=34526
http://tavalik.ru/index.php/ustanovka-1spredpriyatie-7-7-na-microsoft-sql-server-2008-r2/
http://www.maxblogs.ru/articles/zastavlyaem-rabotat-1s-versii-77-na-windows-server-2008-r2-64bit
http://forum.ru-board.com/topic.cgi?forum=8&topic=34526&start=20#18
http://tavalik.ru/index.php/hex-editor/

Некоторые моменты:
  • установку не делаем, берем папку с установленной 1С с другой машины;
  • добавляем файл 1cv7s.exe в исключение “Предотвращения выполнения данных (DEP)"; 
  • патчим bkend.dll (или берем готовый) для исправления ошибки "Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше.", "«Неправильный синтаксис около ключевого слова «TRANSACTION»" и "База данных не может быть открыта в однопользовательском режиме";
  • создаем пустой файл ordnochk.prm для устранения ошибки "Порядок сортировки, установленный для базы данных, отличается от системного!";
  • в 1С параметрыбазы данных SQL задаем в виде <Сетевое имя компьютера>\<Имя экземпляра SQL Server>;

Ошибка установки MS SQL Server на ПК с нечётным количеством ядер процессора.

Проблема:
Машина на AMD Athlon II X3 435, свежеустановленная Windows 2003 Server
Ставится MS SQL Server 2000 Standart, установка проходит нормально, все работает.
Однако, после попытки установить SP4, MS SQL перестает запускаться.
Точнее сказать, в процессе установки наглухо зависает, а после принудительного прерывания - более не стартует.

В журнале установки отображается следующее:
13:44:06 Upgrading databases
13:44:06 Upgrading databases on instance 'MSSQLSERVER'
13:44:06 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SqlSetup\Bin\scm.exe  -Silent 1 -Action 6 -Service MSSQLSERVER 
13:44:06 Process Exit Code: (0)
13:44:06 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SqlSetup\Bin\scm.exe  -Silent 1 -Action 6 -Service MSSQLSERVER 
13:44:06 Process Exit Code: (0)
13:44:06 C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\SqlSetup\Bin\scm.exe  -Silent 1 -Action 1 -Service MSSQLSERVER   -StartupOptions \-T4022 \-T4010 \-m
13:59:13 Process Exit Code: (1460) Возврат из операции произошел из-за превышения времени ожидания.

14:01:36 A service control operation failed for the MSSQLSERVER service: 1460
Возврат из операции произошел из-за превышения времени ожидания.

14:02:33 An error occurred starting the service to build system catalogs.
14:02:33 Action CleanUpInstall:
14:02:33 Installation Failed.



Попытки использования других версий ПО (Developer, Enterprise) и прочие игры с ПО (обычные советы насчет отключения антивируса и т.п.) результата не дали.

Решение:
Нашел несколько ссылок, с примерно похожими симптомами:
1.http://www.sql.ru/forum/684454-3/oshibka-pri-ustanovke-obnovleniy-sp4-na-ms-sql-2000 - некто xishnik  хотел поднять 2000 SQL и накатить SP4 поверх, результат как у меня. Если убрать разухабистые комментарии тамошних форумных дебилов, в сухом остатке останется буквально 3 сообщения в самом конце темы - да, на нечетном количестве ядер установка SP4 не стартует, а если поменять процессор после установки сервис-пака - MS SQL не работает.
2. http://support.microsoft.com/kb/954835/en-us - "On a computer that has a multicore processor, you may be unable to install SQL Server 2005" - не совсем 2000 SQL, конечно, но все-таки похоже: 
Consider the following scenario. You try to install Microsoft SQL Server 2005 on a computer that has a multicore processor, and one of the following conditions is true:
 - The ratio between logical processors and physical sockets is not a power of 2. For example, the computer has a single socket together with a triple-core processor.
 - The number of physical cores is not a power of 2.
 - The total number of CPUs is an odd number. For example, there are seven or nine CPUs.
In these scenarios, you cannot install SQL Server 2005.
Лечить проблему, не меняя сам процессор, предлагается через редактирование файла BOOT.INI путем установки параметра  /NUMPROC= 1. (подробней см. по ссылке выше)

Попробовал, но увы, ни на 2005, ни на 2000 версиях SQL рецепт не сработал.
Помогло только волевое решение перейти на версию SQL Server 2008 SP1 CU3. Она работает на любом количестве ядер.
Конечно, возникла новая проблема: подружить 1С 7.7 с 2008 SQL Server, но это другая история.

MS SQL. Состояние базы данных SUSPECT

База данных может войти в состояние SUSPECT по многим причинам: неисправность оборудования, "битый" LOG или MDF файл, заполнено дисковое пространство, ограничения по линии файловой системы FAT32 и т.д.

Если обратиться в BOL, то там можно узнать, что состояние SUSPECT означает повреждение файла (находится в подозрительном состоянии) и он может быть восстановлен или удален. Также отмечается, что базу данных можно восстановить из резервной копии.

Со словом "удален" все понятно. Попробуем восстановить базу данных. Для простоты будем рассматривать случай, когда повреждена пользовательская база данных.
1. Останавливаем MS SQL SERVER;
2. Копируем файлы mdf и ldf аварийной базы данных в безопасное место;
3. Стартуем сервер и удаляем аварийную базу данных. В этом пункте в некоторых случаях, когда невозможно удалить базу данных, придется подкорректировать системную таблицу sysdatabases;
4. Создаем новую базу данных с таким же именем и местоположением как и аварийная база данных;
5. Останавливаем сервер и подменяем mdf файл;
6. Стартуем сервер. В данный момент состояние аварийной базы данных для нас не актуально.
7. Из QA выполняем скрипт, который позволит нам редактировать системные таблицы
Use master
go
sp_configure 'allow updates', 1
reconfigure with override
go
8. Там же выполняем скрипт, который выводит номер статуса аварийной базы данных, например, 536870912 - полнотекстовые функции включены и т.д.
select status from sysdatabases where name = ''
и запоминаем/записываем значение на случай неудачи перестройки лога
9. Там же выполняем скрипт, который переводит базу данных в аварийный режим
update sysdatabases set status= 32768 where name = ''
10. Перезапускаем MS SQL SERVER;
11. База данных должна находиться в emergency mode, но уже не в состоянии SUSPECT
12. Из QA выполняем скрипт, который создает новый лог к аварийной базе данных
DBCC REBUILD_LOG('', '<имя нового лога с указанием полного пути>')
SQL Server скажет - Warning: The log for database '' has been rebuilt.
13. Выполняем следующий скрипт - переводи базу данных в однопользовательский режим:
Use master
go
sp_dboption '', 'single user', 'true'
go
USE
GO
DBCC CHECKDB('', REPAIR_ALLOW_DATA_LOSS)
go

1. Если Вам не удалось перевести базу в single user mode, то для проверки целостности данных можно попробовать dbo only mode
sp_dboption '', 'dbo use only', 'true'
2. Если все прошло успешно, то
sp_dboption '', 'single user', 'false'
go
Use master
go
sp_configure 'allow updates', 0
go

ПРИМЕЧАНИЕ.
1. Если в состояние SUSPECT вошла, например, база данных TEMPDB, то необходимо воспользоваться рекомендациями {http://support.microsoft.com/kb/q288809/}
2. Можно интересную информацию получить по ссылке {http://support.microsoft.com/default.aspx/kb/328354}
3. Резервное копирование и восстановление баз данных {http://www.sql.ru/articles/Publications.shtml#fix}


Оригинал статьи утянут отсюда: http://alexs07.livejournal.com

пятница, 25 октября 2013 г.

Инструкция по установка SQL Server 2005 (MSSQL)

Собственно, сабж.

http://www.aspnet.com.ua/install_SQL_Server.html

Для тех кому надоело показывать, как установить, а самому инструкцию писать лень :)

понедельник, 7 мая 2012 г.

Не запускается MSSQL сервер после неожиданного завершение работы ОС Windows 2003

После неожиданного завершения работы ОС Windows 2003 и перезагрузки сервера, служба MSSQL server не запускается, при этом в службе событий регистрируется ошибка   - "The MSSQLSERVER service failed to start due to the following error: The service did not respond to the start or control request in a timely fashion."
При попытке запустить Enterprise Manager консоль сервера MSSQL 2000 выдается ошибка о том, что не найден файл MSVCP71.dll.
Для решения проблемы, необходимо положить файл MSVCP71.dll в каталог %windir%\system32. После этого запустить regsvr32 %windir%\system32\msvcp71.dll и желательно перезагрузить сам сервер.
После рестарта сервера служба MSSQLSERVER должна автоматически запуститься, а при открытии Enterprise Manager консоли не должно выводиться на экран никаких ошибок.

Для решения проблемы, был взят файл с ресурса http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71
Но уже можно найти и более свежую версию.

среда, 18 апреля 2012 г.

Подключение к MSDE 2000 по сети

По умолчанию в MSDE отключен протокол TCP/IP. Включить его можно через утилиту svrnetcn.exe, которая находится \Microsoft SQL Server\80\Tools\Binn\

четверг, 18 августа 2011 г.

Установка 1C 7.7 и SQL 2005

При установке SQL сервера необходимо Выставить режим авторизации "MixedMode" (т.е. Windows+SQL), и указать пароль учетной записи "SA".

Далее нужно подключиться к базе. Вот тут есть небольшая загвостка - по умолчанию подключение возможно только через SharedMemory. Ни по TCP/IP, ни через PIPE подключаться не будет. Для работы 1С этого не достаточно, потому нам необходимо отключить клиентский (не серверный) протокол SharedMemory. Делается это в "SQL Server Configuration Manager". Для проверки можем подключиться "SQL Server Management Studio Express CTP" по остальным протоколам.

Теперь настает очередь 1С. В отличие от 2000 SQL в 2005 есть некоторое отличие - в "параметрах баз данных SQL" нужно указывать не просто имя компьютера с БД, а ИМЯ_СЕРВЕРАSQLEXPRESS. Далее вводим имя БД, учетку (sa), и пароль для нее. Пробуем подключиться / жмём "ОК". Тут нас поджидает второй подводный камень - 1С не потдерживает 2005SQL. "Требуется ms sql server версии 6.5 + service pack 5a или более старшая версия". Тогда нужно подправить BkEnd.dll для 1c v.7.7
Поскольку 1С v7.7 штатно не поддерживает MS SQL 2005, вы получите сообщение "Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!". Чтобы устранить это, необходимо при помощи любого HEX редактора изменить BkEnd.dll следующим образом :
(для 21-го релиза 1С):
000D9B7A: 83 EB
000D9B7B: E8 15
000DAFE0: 83 EB
000DAFE1: E8 10

Для 25-го релиза 1С:
000D9C4A: 83 EB
000D9C4B: E8 15
000DB0B0: 83 EB
000DB0B1: E8 10

Для 26-го и 27-го релизов 1С:
000D9CCA: 83 EB
000D9CCB: E8 15
000DB130: 83 EB
000DB131: E8 10

В свойствах базы данных на SQL Server ставим Compatibility Level SQL Server 2000(80) , тестируем. Вот и все :)

При подключении пишет: доступ к базе данных на сервере возможен только из одного каталога информационной базы
Такая ошибка возникает при попытке загрузить версию 1С для SQL после того, как один из пользователей некорректно вышел из системы. В редких случаях эта ошибка может быть результатом некорректной установки конфигурации.
Можно принудительно остановить SQL-процесс можно с помощью SQL Enterprise Manager. В нем все активные процессы перечисленны в ветке “Management\Current Activity\Process Info”. Надо найти в списке справа процесс, который мешает Вам жить, выделить его и в меню “Action” выбрать пункт “Kill Process”

Если пользователи работают по протоколу Named pipes, то можно просто закрыть файлы на SQL-сервере, открытые повисшим пользователем. Такие файлы имеют вид \PIPE\MSSQL$NAMEDSERVER\SQL\query.

Если вышеизложенное слишком сложно для Вас, Вы можете просто перегрузить SQL server. Надо только убедиться, что ни одна другая програма не использует его в этот момент.

Если ошибка возникает постоянно, имеет смысл проверить правильность установки конфигурации: с одной базой данных на сервере пользователи должны работать из одного каталога с конфигурационными файлами. Иначе говоря, не могут одновременно работать две (даже идентичные) конфигурации, размещенные в разных каталогах и ссылающиеся на одну и ту же базу.

пятница, 6 августа 2010 г.

1C 7.7 + SQL 2005 + Windows 7 - отрывки из конференции

Проблема, когда при запуске пишет "Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше"

Ниже приведены полезные отрывки.
Полностью ветка обсуждения здесь - http://www.forum.mista.ru/topic.php?id=437876

---
Как и для Vista скопировал
odbcbcp.dll
sqlsrv32.dll
sqlsrv32.rll
в c:\windows\system32 файлы от 2003 Server
в папке Bin 1C создал пустой файлик OrdNoChk.prm
---

---
Помещаем файлы в
C:\ODBC\
Делаем рег файл типа

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI]
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
"SQL Server 1C"="Installed"
[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\SQL Server 1C]
"UsageCount"=dword:00000004
"Driver"="C:\\ODBC\\sqlsrv32.dll"
"Setup"="C:\\ODBC\\sqlsrv32.dll"
"SQLLevel"="1"
"FileUsage"="0"
"DriverODBCVer"="03.50"
"ConnectFunctions"="YYY"
"APILevel"="2"
"CPTimeout"="60"
в поле "Сервер" пишем "ИмяИлиАйписервера;Driver=SQL Server 1C"
остальные поля заполняем как обычно
---