Remkomplekty.ru

IT Новости из мира ПК
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ошибка odbc sqlstate im002

Odbc, error IM002

Через sqlConnection все получается (база разумеется другая — на моей машине, MSSQL):
Работа с подключенным уровнем ADO .NET в C#

Но есть удаленная MySQL. Решил пробовать через ODBC, что бы подключаться к обеим базам, меняя только строку подключения.
Во время MyConnection.Open(); эта ошибка и вылезает.

В источниках данных создал некий источник с именем Name, вбил все данные для удаленного MySQL и нажав на кнопочку Test получил уведомление, что соединение успешно (да и базы данных из раскрывающегося меню подтягиваются сами).

При этом, такой код вполне работает:

Тут я подключаюсь к своей MSSQL базе. Правда почему-то ругается на пару логин/пароль (не знаю почему, пока ищу ответ), но по крайней мере он видит базу данных.

Добавлено через 38 минут
Небольшая наводка из наблюдений и догадок.
У меня есть сторонняя программа, которая так же использует ODBC соединение. При вводе данных сервера она выдает туже ошибку, что у меня. Но у нее имеется возможность коннектиться через DSN. И вот если я пропишу упомянутый выше источник данных «Name» с теми же самыми данными сервера (а как я писал, кнопка Test — выдает Successfus), то эта программа нормально соединяет.

Пойду пока читать, что такое DSN и как его можно использовать в C#.

Добавлено через 3 часа 35 минут

Разобрался. Для таких же как я еще раз по полочкам:

Хотим создать подключение к MSSQL и MySQL через ODBC.
//MSSQL

string MyConString — строка подключения
DRIVER — название используемого драйвера для общения с MSSQL/MySQL (ниже подробнее)
SERVER — имя сервера MSSQL/MySQL или его IP-адрес (242.54.12.52).
DATABASE — имя базы данных
UID — имя пользователя для входа на сервер MSSQL/MySQL
PASSWORD — пароль для входа на сервер MSSQL/MySQL
OPTION — без понятия. Вроде и без нее работает.

Если строчка MyConnection.Open(); не выдала ошибку, то все в порядке, мы имеем доступ к базе данных.

DRIVER
http://dev.mysql.com/downloads/connector/odbc/
По ссылке выше можно скачать драйвера для операционных систем 32-bit и 64-bit. Не для нашей операционной системы, а для системы, где находится сервер к которому мы подключаемся.
Качаем, устанавливаем. Шаги по установке и эксплуатации тут:
http://dev.mysql.com/doc/connector-odbc/en/index.html
Послу установки по-умолчанию ничего дополнительно настраивать не нужно.

После установки приведенный выше код уже должен работать.
Проверить драйвера на Windows 7, можно запустив
c:WindowsSystem32odbcad32.exe — для 32-битных систем
c:WindowsSysWOW64odbcad32.exe — для 64-битных систем
и открыв вкладку «Драйвера».

У меня например была ошибка IM0002 (источник Данных не найден и не указан драйвер по умолчанию).
По странной причине драйвера у меня слетели, но отображались созданные по ним «Пользовательские DSN» (все там же в odbcad32.exe).
Попытки «Настроить» или «Удалить» эти DSN система блокировала ссылаясь на то, что «такой драйвер не доступен». Решил это тем, что поставил поверх старых, новые драйвера и добавил «Пользовательские DSN» с тем же именем, заменив старые.

После этого появилась ошибка IM014 (В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу)
У меня стоит Wimdows 7 64-bit. Запустив c:WindowsSysWOW64odbcad32.exe, я разумеется нашел там установленные новенькие драйвера для 64-битной системы. Ошибка же появлялась из-за того, что сервер, к которому я обращался стоит на ОС 32-bit.
Соответственно тут:
c:WindowsSystem32odbcad32.exe
этих драйверов не было. Поставил для 32-bit — заработало.

ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

Quote:

Not sure what «Data source name «means
I checked on the web

Quote:

here are actually two separate Microsoft ODBC Administrator apps, one for 32-bit and one for 64.

As this KB article explains:

The 32-bit version of the Odbcad32.exe file is located in the %systemdrive%WindowsSysWoW64 folder.

The 64-bit version of the Odbcad32.exe file is located in the %systemdrive%WindowsSystem32 folder.

Nope, not a typo — the 32-bit version is in the SysWoW64 folder and the 64-bit is in the System32 folder. (o_O)

I was running a 64-bit web server which was checking the 64-bit ODBC library for the DSN, whereas I had it in the 32-bit. Downgrading the server did the trick.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

looks like you may not have the odbc driver for access installed.

i always find it easier (in the few instances i have had to use access in the last fifteen years) to use a system DSN within odbc.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

I’m confused. I thought odbc is a generic database connectivity method and access by default is odbc-compliant (as all MS product, I assume). By «system DSN» I guess you mean ControlPanel->Administrative Tools->ODBC and then System DSN_>Add

what does one add?

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

MS products may be odbc compliant but they still need drivers.
you can create a dsnless connection directly in the connection string. but i have always found it easier to create a system dsn as said. yes — that can be accessed through the CP.

you need to make sure that the access jet db is in the list of odbc drivers, then create the system dsn, then you can use that in the DSN string for odbc_connect or pdo etc. that way the control panel plugin handles the actual intermediation and you can use the GUI to make sure that the connection is properly established.

Читать еще:  Itunes ошибка 2

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

Then you can’t do it I believe. If you have not got the odbc drivers for jet (access) installed tgen you won’t be able to use odbc via php. If you had them installed they would show in the control panel odbc snap in.

One potential trick is that the jet drivers may be 32 bit and if you are running a 64 bit version of windoze then the 32 bit drivers may not show up in the snap in. Try running the 32 bit version of the snapin instead (it is odbcad32.exe and is in the %windir%syswow64 directory )

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

the exe that i pointed you to is the snap-in. it is not a driver.

just browse to that directory and double click on the exe to launch it. then build the DSN with the JET driver if it is installed.

if not, then you will have to install the driver. or migrate from access (which is definitely advisable anyway)

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

Quote:

One can do that from DOS also. It brings up the odbc menu with which one cannot do much

Quote:

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

don’t use a user DSN.
use either a system or a file DSN. I prefer system DSN.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

if you cannot use the 32 bit snapin and create a system dsn with a jet driver then you have not installed the jet driver.

if you can’t do this consider porting the db to a proper relational db like mysql. or if you need a flat file then sqlite might work.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

Since using this very helpful link led to a menu which doe snot let me add anything other than SQL server, I guess the proper wording is that it will not LET me install the jet driver, unless there’s a way to bypass and work with DOS directly for example.

Of course I’d never use Win+Access if I didn’t have to.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

sounds like you need to reinstall access and specify the jet driver installation too.

RE: ODBC issue with Windows[SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] Data source.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Имя источника данных не найдено, и драйвер по умолчанию не указан

Мне нужна помощь в исправлении ошибки: SQL state IM014 in SQLConnect а также SQL state IM002 in SQLConnect ,

Я запускаю тот же скрипт, один на webserver/remote/ а другой с локальной машины пытается получить доступ к той же базе данных, но я получаю другое сообщение об ошибке.

Когда я запускаю его с веб-сервера, я получаю

Ошибка SQL: [unixODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию, состояние SQL IM002 в SQL

где, когда я запускаю его на локальной машине, я получаю

[Microsoft] [Диспетчер драйверов ODBC] Указанный DSN содержит несоответствие архитектуры между драйвером и приложением

Я использовал следующий код в сценарии php для подключения к локальной базе данных

мой ODBC.ini выглядит как ниже

Решение

Ошибка SQL: [unixODBC] [Driver Manager] Не найдено имя источника данных и не указан драйвер по умолчанию, состояние SQL IM002 в SQL

Удалите имя источника данных USER и определите его как имя источника данных SYSTEM.
Выберите -> Пуск -> Настройки -> Панель управления -> Администрирование ->
Источники данных (ODBC):
— Пользователь DSN: удалить указанный пользователь DSN
— Системный DSN: создайте новый Системный DSN

В противном случае попробуйте установить ту же 32-битную или 64-битную версию, которая установлена ​​локально.

[Microsoft] [Диспетчер драйверов ODBC] Указанный DSN содержит несоответствие архитектуры между драйвером и приложением

32-битный / 64-битный конфликт — либо вы устанавливаете 32-битную версию драйвера, либо используете / конфигурируете 32-битную версию в C: Windows SysWoW64

Попробуйте установить ту же 32-битную или 64-битную версию, которая установлена ​​локально.

Другие решения

Сначала откройте опцию административных инструментов. Проверьте свою операционную систему. Если вы используете 64-битную версию, выберите драйвер для 64-битной версии. Или это 32-битный, затем выберите 32-битный.

Пожалуйста, не делайте никаких DSN пользователя. Выберите системный DSN.

например Я сделал System DSN с именем empcon1, а затем в коде PHP вы должны написать так:

вот и все .. Вы будете связаны.

Есть несколько вещей, которые могут вызвать это. Во-первых, DSN должен быть объявлен на обеих машинах, на удаленной машине это должен быть адрес WAN или LAN, в зависимости от того, где он находится в сети. Во-вторых, вам нужно убедиться, что у вас есть правильный драйвер ODBC, есть 32-битные драйверы и 64-битные драйверы. Коннектор MySQL поставляется с обоими.

Читать еще:  Ошибка входа пользователя sa

Я бы попробовал удалить 64-битный драйвер, добавить 32-битный драйвер и посмотреть, как это происходит. Кроме того, убедитесь, что вы протестировали свой ODBC, чтобы убедиться, что у вас есть соединение. Если после этого, то время, чтобы проверить кодировку.

Установка 1С:Предприятие 7.7 на 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

В качестве серверной ОС используем Microsoft Windows Server 2008 R2. Об установке этой системы подробно можно прочитать в статье «Установка Windows Server 2008 R2».

2. Установка SQL Server 2008 R2

Далее устанавливаем Microsoft SQL Server 2008 R2. Во время установки выбираем:

  • Параметры сортировки — «Cyrilic_General_CI_AS»
  • Режим проверки подлинности — «Смешанный режим»

Очень подробно об установке SQL Server я писал в статье «Установка Microsoft SQL Server 2008 R2».

3. Создание новой базы данных в SQL Server 2008 R2

Добавляем нового пользователя в SQL Server 2008 R2. Обязательно даем ему роль processadmin, иначе будем натыкаться на ошибку:

«Доступ к базе возможен только из одного каталога информационной базы»

Затем создаем новую базу данных, указав:

  • Имя базы данных не должно начинаться с цифры или иметь пробелы в названии, иначе получим ошибку:
    «неправильный синтаксис около конструкции %имя базы данных%»
  • В качестве владельца указываем только что созданного пользователя (В моем случае имя пользователя — «UserSQL» )
  • Модель восстановления базы данных: «Простая» (1С:Предприятие 7.7 прекрасно работает и при полной модели восстановления. Но в этом случае, вы должны хорошо понимать все плюсы и минусы данного решения).
  • Уровень совместимости: «SQL Server 2000 (80)» .

4. Настройка Windows Server 2008 R2

Теперь необходимо заменить оригинальные фалы odbcbcp.dll, sqlsrv32.dll и sqlsrv32.rll (скачать все файлы одним архивом) в каталогах C:WindowsSystem32 и в C:WindowsSysWOW64 файлами из каталога C:WindowsSystem32 под управлением Windows Server 2003 (в архиве).
Чтобы сделать это необходимо стать владельцем этих файлов и получить права на их редактирование . Для этого заходим в C:WindowsSystem32 находим файл odbcbcp.dll, кликаем по нему правой кнопкой, выбираем «Свойства». В открывшемся окне переходим на вкладку «Безопасность», нажимаем «Дополнительно».

В появившемся окне переходим на вкладку «Владелец» , нажимаем «Изменить» , выбираем текущего пользователя и жмем 2 раза «ОК» .

Затем на вкладе «Безопасность» нажимаем «Изменить» и для текущего пользователя выставляем уровень безопасности «Полный доступ» . Закрываем окна кнопкой «ОК» .
Только после этого система даст нам заменить файл odbcbcp.dll.
Аналогичные действия необходимо выполнить и для всех остальных файлов в папках C:WindowsSystem32 и C:WindowsSysWOW64.
Если этого не сделать, при запуске 1С:Предприятие будем натыкаться на ошибку:
«Ошибка для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше»

5. Установка 1С:Предприятие 7.7

Теперь необходимо установить 1С:Предприятие 7.7, ставим версию для SQL. Об особенностях установки читайте в статье «Установка системы 1С:Предприятие 7.7 в Windows x64».

6. Патч и замена файла BkEnd.dll

Теперь необходимо заменить файл BkEnd.dll из оригинальной поставки 1С:Предприятие 7.7, находящего по пути C:Program Files (x86)1Cv77BIN, «пропатченным» файлом BkEnd.dll. Вы можете использовать мой файл, или сделать изменения самостоятельно. О том как и что необходимо в нем изменить читайте в моей статье «Работа в Hex-редакторе Free Hex Editor Neo, на примере патча файла BkEnd.dll для работы 1С:Предприятие 7.7 с Microsoft SQL Server 2008 R2».
Замену файла делаем для того, чтобы избавиться от ошибок:

  • «Требуется MS SQL Server 6.5 + Service Pack 5a или более старшая версия!»
  • «Порядок сортировки, установленный для базы, отличается от системного!»
  • «Неправильный синтаксис около ключевого слова «TRANSACTION»
  • «База данных не может быть открыта в однопользовательском режиме»

7. Создание представления sksprocesses в MS SQL Server

Продолжаем исправлять ошибку «База данных не может быть открыта в однопользовательском режиме». Для этого создадим представление в базе данных (источник).
Заходим в программу «Среда Microsoft SQL Server Management Studio» («Пуск» — «Все программы» — «Microsoft SQL Server 2008 R2» — «Среда Microsoft SQL Server Management Studio» ), выбираем наш SQL Server (в моем примере это «S4ULTRA»), раскрываем вкладку «Базы данных» , затем «Системные базы данных» и вкладку «master» . На вкладке «Представления» кликаем правой кнопкой мыши и в меню выбираем «Создать представление» .

Откроется окно «Добавление таблицы» , закроем его нажав «Закрыть» .

Теперь в окне слева напишем текст представления:

Затем, нажимаем «Выполнить код SQL» (Иконка с красным восклицательным знаком на панели)

После того, как код изменится, сохраним представление, назвав его sksprocesses.

В результате чего в обозревателе объектов увидим только что созданное представление dbo.sksprocesses. Кликаем по нему правой кнопкой мыши и выбираем «Свойства» .

Откроется окно «Свойства представления» , в нем переходим на вкладку «Разрешения» и добавим пользователя guest. Для этого нажимаем «Найти» в окне добавления пользователей «Обзор» , отмечаем в списке пользователя guest и жмем «ОК» .

Читать еще:  Критическая ошибка 41

Теперь отмечаем разрешения для guest:

  • Вставка
  • Выборка
  • Изменение
  • Назначение владельцем
  • Обновление
  • Просмотр определения

После чего нажимаем «ОК» .

На этом создание представления завершено.

8. Добавление информационной базы в 1С:Предприятие 7.7

Теперь, запустим 1С:Предприятие в режиме конфигуратора и добавим новую базу, для этого нажимаем «Добавить» задаем имя базы данных и указываем путь к каталогу в котором будет храниться наша база (изначально должен быть пустым) и нажимаем «ОК» .

Заходим в добавленную только что базу данных в режиме конфигуратора. При первом запуске система попросит выбрать формат хранения данных. Выбираем «MS SQL Server» и нажимаем «ОК» .

В запустившемся конфигураторе заходим в «Администрирование» — «Параметры базы данных SQL…» .

Откроется окно «Параметры базы данных SQL«, в нем заполняем:

  • Имя сервера в формате: . (в моем случае это «S4ULTRA» )
  • База данных: Имя базы данных, которое было введено при создании новой базы данных в п. 2. (в моем случае это «BASE_1C» )
  • Пользователь: Имя пользователя, которое было введено при создании нового пользователя в п. 2. (у меня это «UserSQL» )
  • Пароль: Пароль, который указывали для пользователя при создании в п. 2.

Если нам нужна новая, т. е. «чистая» база, то уже можно начинать работать. Если же необходимо перенести уже существующую базу данных, то необходимо предварительно выгрузить из нее данные (войти в 1С:Предприятие в режиме конфигуратора, «Администрирование» — «Выгрузить данные» ) а затем загрузить в нашу, только что созданную базу на SQL («Администрирование» — «Загрузить данные» — выбрать файл выгрузки — «ОК» и согласиться с предупреждением о конфликте данных) .

После этого этапа уже можно работать в 1С под текущим пользователем Windows.

9. Настройка безопасности для всех пользователей

Если подразумевается, что данный сервер является также Сервером терминалов, на котором будут работать несколько пользователей, то необходимо для директорий, где хранятся базы данных 1С (в моем случае это «C:1C_BASE») дать всем пользователям права на чтение/запись. Для этого в проводнике выделяем нужную папку, кликаем по ней правой кнопкой мыши и в меню выбираем «Свойства«. В открывшемся окне переходим на вкладку «Безопасность» и нажимаем кнопку «Изменить» . В окне «Разрешения для группы…» для группы «Все» установим «Полный доступ» . Закроем все окна кнопкой «ОК» .

Смотрите также:

В данной статье я подробно опишу процесс установки Microsoft SQL Server 2008 R2 в Windows Server 2008 R2 (для других ОС семейства Windows процесс аналогичен). Во время установки будут выбраны…

Здесь будет рассказано как изменить политику паролей в Windows Server 2008. По умолчанию все пароли в Windows должны отвечать политике безопасности, а именно: Не содержать имени учетной записи пользователя…

Если к службе Microsoft SQL Server должны подключаться программы с других компьютеров в сети, то необходимо чтобы правильным образом был настроен Брандмауэр Windows на сервере, где запущена служба. А именно разрешены…

Статья: 1С 7.7 и SQL 2008

Ошибки при загрузке данных 1С в базе SQL

SQL State: 42000

Message: [Microsoft][ODBC SQL Server Driver][SQL Server] Incorrect syntax near ‘HOLDLOCK’. If this is intended as a part of a table hint, A WITH keyword and parenthesis are now required.

Недопустимое состояние транзакции.

Необходимо установить compatibility level 80 (режим совместимости) в свойствах базы данных.

Cохранение изменений запрещено

Такое сообщение выдает SQL Server Management Studio и не позволяет сохранить изменения в таблице.

Для решения проблемы нужно открыть Меню — Сервис- Параметры и снять флажок в настройках как показано на картинке.

Установка SQL Server 2008 r2 под Windows 7, 8, 8.1, Server 2008 r2, Server 2012 r2 для 1С 7.7

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

После установки 1С 27 релиза необходимо заменить файл BkEnd.dll, который находится в папке C:Program Files (x86)1Cv77BIN. Скачать его можно по ссылке.

Далее открываем MS SQL Management Studio — Базы данных — Системные базы данных — master — Представления.

Кликаем правой кнопкой мыши и создаем новое представление. Нажимаем закрыть и в окне запроса пишем:

SELECT * FROM sysprocesses WHERE cmd <> ‘CHECKPOINT’

Можете скопировать текст запроса отсюда. Встречаются «неправильные» кавычки, из-за чего при выполнении запроса выдается сообщение:

Ошибка в предложении WHERE рядом с «`».
Не удается выполнить синтаксический анализ текста запроса.

При этом текст запроса должен измениться.

Далее сохраняем представление под именем sksprocesses.

Щелкаем правой кнопкой мыши на сохраненном представлении и выбираем Свойства.

Добавляем пользователя guest (Найти — Обзор) и устанавливаем ему необходимые разрешения.

Заменяем файлы sqlsrv32.rll, sqlsrv32.dll, odbcbcp.dll в папке WindowsSysWOW64 для 64-разрядной версии ОС (см. ссылку).

Далее создаем базу данных. Кликаем для этого правой кнопкой мыши на Базы данных и выбираем Создать базу данных.

Обращаем внимание на то, чтобы в параметрах сортировки было выставлено Cyrillic_General_CI_AS.

Также устанавливаем уровень совместимости SQL Server 2000.

Далее запускаем 1С в режиме конфигуратора (формат базы данных SQL) и в Меню — Администрирование — Параметры базы данных SQL записываем имя сервера, базы данных, пользователя (sa) и его пароль.

Неправильный синтаксис около конструкции «1»

Если увидели такую ошибку при работе с только что созданной базой данных:

. значит ее нужно переименовать из 1cbase в _1cbase хотя бы

Ну не сложилось у SQL с цифрами в начале имени.

Ссылка на основную публикацию
Adblock
detector