Ошибка odbc sqlstate 42000 номер ошибки 156

Привет всем.

Есть база в sql. Среди полей таблицы есть колонка start и колонка end — тип datetime, null.

Когда добавляю поле start во внешние ист.данных и выполняю кусок кода на стороне 1С:

    Запрос = Новый Запрос;

    Запрос.Текст =

        «ВЫБРАТЬ *

        |ИЗ

        |    ВнешнийИсточникДанных.» + Объект.ИмяВнешнегоИсточникаДанных + «.Таблица.dbo_cdr КАК Звонки»;

    РезультатЗапроса = Запрос.Выполнить();

система ругается:

Ошибка ODBC. SQLSTATE: 42000

Номер ошибки: 156

Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword ‘end’.

Если удалить это поле то запрос выполняется.

1. Тип данных у них одинаковый

2. в 1С задано Имя в источнике  данных

Что может быть не так?

Good morning all.  I need some help with a stored proc that is driving me up a wall.  It’s probably something stairing me right in the face but I can’t see it!

I keep getting the following error on the procedure that I’m working on:

SQL-DMO (ODBC SQLSTATE: 42000)

ERROR 156: Incorrect syntax near keyword ‘AS’

Must declare the variable ‘@signid’

Must declare the variable ‘@signid’

Here’s the code:

CREATE PROCEDURE [dbo].[ws_savesignature2db]
@xml as text=»,
@image as image=»,
@imageformat as varchar(20)=»,
@imagename as varchar(40)=»,
@imagesize as int=0,
AS

insert into signaturetable
 ([image], imageformat, imagename, imagesize)
values
 (@image, @imageformat,@imagename,@imagesize)

/*
if your XML field datatype is Text or nTEXT, use the code below in Sql Server 2000.
If you use Sql Server 2005, you can use varchar(max) or nvarchar(max) which will be
much easier and you do not need the code.
*/

select   @signid =  @@IDENTITY

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR([xml])
FROM ws_signature
WHERE signid= @signid

if @ptrval is not null
 WRITETEXT ws_signature.xml @ptrval @xml
GO

Any help you can give would be a life saver!!!!

Thanks in advance.

Good morning all.  I need some help with a stored proc that is driving me up a wall.  It’s probably something stairing me right in the face but I can’t see it!

I keep getting the following error on the procedure that I’m working on:

SQL-DMO (ODBC SQLSTATE: 42000)

ERROR 156: Incorrect syntax near keyword ‘AS’

Must declare the variable ‘@signid’

Must declare the variable ‘@signid’

Here’s the code:

CREATE PROCEDURE [dbo].[ws_savesignature2db]
@xml as text=»,
@image as image=»,
@imageformat as varchar(20)=»,
@imagename as varchar(40)=»,
@imagesize as int=0,
AS

insert into signaturetable
 ([image], imageformat, imagename, imagesize)
values
 (@image, @imageformat,@imagename,@imagesize)

/*
if your XML field datatype is Text or nTEXT, use the code below in Sql Server 2000.
If you use Sql Server 2005, you can use varchar(max) or nvarchar(max) which will be
much easier and you do not need the code.
*/

select   @signid =  @@IDENTITY

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR([xml])
FROM ws_signature
WHERE signid= @signid

if @ptrval is not null
 WRITETEXT ws_signature.xml @ptrval @xml
GO

Any help you can give would be a life saver!!!!

Thanks in advance.

Главная » Основные форумы » Экспорт в системы тех.анализа

Страницы:
1

 

Александр Петров


Пользователь

Сообщений: 2
Регистрация: 23.05.2017

Приветствую.

Делаю вывод данных по ODBC из Quik в MSSQL.

Получаю сообщение об ошибке  — [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова «Current».
SQLSTATE=37000
Код ошибки=156

Current — название таблицы в моей базе данных. Именно в эту таблицу я и пытаюсь экспортировать данные.

Не подскажите, где посмотреть, что почитать, по моему вопросу?

 

Egor Zaytsev


QUIK clients support

Сообщений: 3548
Регистрация: 27.01.2015

#2

23.05.2017 15:58:17

Цитата
Александр Петров написал:
Приветствую.

Делаю вывод данных по ODBC из Quik в MSSQL.

Получаю сообщение об ошибке  — [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова «Current».
SQLSTATE=37000
Код ошибки=156

Current — название таблицы в моей базе данных. Именно в эту таблицу я и пытаюсь экспортировать данные.

Не подскажите, где посмотреть, что почитать, по моему вопросу?

Добрый день.
Какую именно таблицу экспортируете? Проверьте, что тип полей у всех параметров корректный.
Это можно сделать прочитав справку QUIK. Раздел 6. Совместная работа с другими приложениями/Приложение

 

Александр Петров


Пользователь

Сообщений: 2
Регистрация: 23.05.2017

#3

24.05.2017 10:41:14

Цитата
Egor Zaytsev написал:

Цитата

Добрый день.
Какую именно таблицу экспортируете? Проверьте, что тип полей у всех параметров корректный.
Это можно сделать прочитав справку QUIK. Раздел 6. Совместная работа с другими приложениями/Приложение

Я экспортирую текущую таблицу с тремя параметрами  — Инструмент, Код бумаги, Код класса. Экспортировал в  таблицу MSSQL, все поля которой имели тип varchar(50).

После вашего совета, посмотрел  Раздел 6. Совместная работа с другими приложениями/Приложение. Изменил тип полей на varchar(200), varchar(12), varchar(12).

Ничего не изменилось, «вылетает’ такая же ошибка — [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около ключевого слова «Current».
SQLSTATE=37000
Код ошибки=156

 

Egor Zaytsev


QUIK clients support

Сообщений: 3548
Регистрация: 27.01.2015

#4

24.05.2017 11:45:35

Добрый день.

Давайте выполним следующее:
Создайте в папке с программой Quik файл с именем quik_odbc.log
После перезапуска Quik, туда начнется записываться логи ODBC экспорта.
Воспроизведите проблему, после чего пришлите полученный лога нам на
ящик

quiksupport@arqatech.com

с указанием ссылки на эту ветку форума.

Страницы:
1

Читают тему (гостей: 1)

  • Печать

Страницы: [1]   Вниз

Тема: Как решить эту проблему ошибку SQL “SQLSTATE[42000]”!?  (Прочитано 2106 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Bludnik

Доброго времени суток.
Ребят не знаю куда написать, пишу тут. (Сильно не бейте)  ;D
Вообщем VDS ubuntu настраиваю по этой статье https://help.ubuntu.ru/wiki/web-server
Выдает трабл с mysql

Как вариант, что-то пропустил.
Объясните, что как и куда.

(Установка
Необходимо исправить следующие ошибки:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1171 All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead)


ТС не появлялся на Форуме более трех месяцев по состоянию на 23/02/2020 (последняя явка: 03/08/2019). Модератором раздела принято решение закрыть тему.
—zg_nico

« Последнее редактирование: 23 Февраля 2020, 05:18:13 от zg_nico »


Оффлайн
bezbo

All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

дык вроде матерным написано, что PRIMARY KEY должен быть NOT NULL, ну уж если невтерпеж (хотя это не правильно), можно использовать UNIQUE вместо PRIMARY KEY.
или покажите всю команду, которой пытаетесь создать таблицу…


Оффлайн
Bludnik

All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

дык вроде матерным написано, что PRIMARY KEY должен быть NOT NULL, ну уж если невтерпеж (хотя это не правильно), можно использовать UNIQUE вместо PRIMARY KEY.
или покажите всю команду, которой пытаетесь создать таблицу…

Проблема в том, что я даже не представляю о какой таблице речь и где ее взять 🤷🏻‍♂️


Оффлайн
Cannabinol

Какую команду вы вводите перед тем, как возникает данная ошибка?


Оффлайн
Bludnik

Какую команду вы вводите перед тем, как возникает данная ошибка?

Установку сайта.
Ввожу данные как на скрине указано жму далее и выдаёт ошибку.


Оффлайн
Cannabinol

Блин, у меня картинки не отображаются.
Яндекс отдает ошибку 403


Оффлайн
Aleksandru

Переименуйте название темы в более информативное, либо тема будет закрыта:

Правила форума
2. На форуме ЗАПРЕЩЕНО
2.6. Создавать темы с неинформативным названием, например «Помогите», «Пара вопросов», «Настройка Интернета» и т. п.

—Aleksandru

Intel Core i3-3240 3.40GHz, GeForce GT 1030, MSI H61M-P20, 8GB RAM, KINGSTON SV300S37A240G, Kubuntu 20.04


Оффлайн
Bludnik

Переименуйте название темы в более информативное, либо тема будет закрыта:

Правила форума
2. На форуме ЗАПРЕЩЕНО
2.6. Создавать темы с неинформативным названием, например «Помогите», «Пара вопросов», «Настройка Интернета» и т. п.

—Aleksandru

Так нормально?


Оффлайн
Aleksandru

Так нормально?

Нормально ;)

Intel Core i3-3240 3.40GHz, GeForce GT 1030, MSI H61M-P20, 8GB RAM, KINGSTON SV300S37A240G, Kubuntu 20.04


Оффлайн
bezbo

даже не представляю

смотрите логи ошибок mysql и, возможно, php


Оффлайн
Bludnik

даже не представляю

смотрите логи ошибок mysql и, возможно, php

А можно как чайники типо
Заходишь туда
Тыкаешь это
Тыкаешь сюда

Ранее не сталкивался с таким и было все окей


Пользователь добавил сообщение 26 Июля 2019, 07:27:05:


Перезалил изображение. ;)

« Последнее редактирование: 26 Июля 2019, 07:27:05 от Bludnik »


Оффлайн
Bludnik

Народ помогите не верю, что ни кто не знает как решить… :buck2:


Оффлайн
soarin

Наверно забить — какая-то глючная и брошенная какаха.

Проблема в том, что MySQL/MariaDB слишком новые для этой штуки.
Надо брать MySQL 5.6, либо как-то искать более новую версию этой штуковины.

« Последнее редактирование: 29 Июля 2019, 18:49:29 от soarin »


Оффлайн
bezbo

как решить…

править самому php/sql скрипт, который создает таблицу или пригласить того, кто разбирается


Оффлайн
Bludnik

Наверно забить — какая-то глючная и брошенная какаха.

Проблема в том, что MySQL/MariaDB слишком новые для этой штуки.
Надо брать MySQL 5.6, либо как-то искать более новую версию этой штуковины.

Понял спасибо.


  • Печать

Страницы: [1]   Вверх

Ошибка при создании триггера в mysql

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

[IlluminateDatabaseQueryException]

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error

in your SQL syntax; check the manual that corresponds to your MySQL server

version for the right syntax to use near ‘END IF; END’ at line 4 (SQL:

        CREATE TRIGGER tr_Inser_Outer_Id_If_Null_to_Medobjects BEFORE INSERT ON peoples

        FOR EACH ROW BEGIN

            IF NEW.outer_id=NULL THEN

                SET NEW.outer_id=(SELECT max_num FROM (SELECT MAX(outer_id)+1 as max_num FROM `peoples`) AS t2)

            END IF;

        END

        )

[PDOException]

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in

your SQL syntax; check the manual that corresponds to your MySQL server version

for the right syntax to use near ‘END IF; END’ at line 4

возникает из-за того, что операции в условиях

IF NEW.outer_id=NULL THEN

…;

…;

END IF;

должны заканчиваться «;»
Правильный код должен быть такой:

CREATE TRIGGER tr_Inser_Outer_Id_If_Null_to_Medobjects BEFORE INSERT ON `medobjects`

FOR EACH ROW BEGIN

    IF NEW.outer_id IS NULL THEN

        SET NEW.outer_id=(SELECT max_num FROM (SELECT MAX(outer_id)+1 as max_num FROM `medobjects`) AS t2);

    END IF;

END

1C_V7_logoОфициально, платформа 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. Настройка безопасности для всех пользователей

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)» .

О том как это сделать читайте в статье «Добавление пользователя и создание новой базы данных в Microsoft SQL Server 2008 R2».

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

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

Ustanovka_1C_SQL_001

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

Ustanovka_1C_SQL_002

Затем на вкладе «Безопасность» нажимаем «Изменить» и для текущего пользователя выставляем уровень безопасности «Полный доступ» . Закрываем окна кнопкой «ОК» .
Только после этого система даст нам заменить файл 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» . На вкладке «Представления» кликаем правой кнопкой мыши и в меню выбираем «Создать представление» .

Ustanovka_1C_SQL_004

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

Ustanovka_1C_SQL_005

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

select * from sysprocesses where cmd <> 'checkpoint'

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

Ustanovka_1C_SQL_006

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

Ustanovka_1C_SQL_007

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

Ustanovka_1C_SQL_008

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

Ustanovka_1C_SQL_009

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

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

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

Ustanovka_1C_SQL_010

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

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

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

Ustanovka_1C_SQL_011

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

Ustanovka_1C_SQL_012

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

Ustanovka_1C_SQL_013

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

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

И нажимаем «ОК» .

Ustanovka_1C_SQL_014

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

Ustanovka_1C_SQL_015

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

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

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

Теперь можно создавать пользователей для работы с 1С:Предприятие в режиме терминального сервера или в режиме удаленных приложений RemoteApp.

Если вы работаете с MySQL 5.7 и обнаружили исключение при хранении большого количества полей в текстовом формате:

SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1118 Слишком большой размер строки (> 8126). Может помочь изменение некоторых столбцов на TEXT или BLOB или использование ROW_FORMAT = DYNAMIC или ROW_FORMAT = COMPRESSED. В текущем формате строки префикс BLOB размером 768 байт хранится в строке.

И вы уверены, что для формата строки таблицы установлено значение Динамический, возможно, вы столкнулись с проблемой размера файла журнала innodb и строгого режима. В этой статье мы покажем вам, как предотвратить появление этого исключения в MySQL 5.7.

1. Найдите файл my.cnf

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

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • $MYSQL_HOME/my.cnf
  • [datadir]/my.cnf
  • ~/.my.cnf

Это расположение по умолчанию, на которое смотрит MySQL, однако, если вы все еще не можете найти правильный файл, вы можете запустить следующую команду на своем терминале:

find / -name my.cnf

Как только вы найдете файл, откройте его с помощью редактора CLI, такого как nano, и выполните следующий шаг.

2. Увеличьте значение innodb_log_file_size

В нашем случае файл находится по адресу /etc/mysql/my.cnfчтобы мы могли редактировать файл с помощью nano, используя файл с помощью следующей команды:

nano /etc/mysql/my.cnf

Вам нужно будет отключить строгий режим MySQL и увеличить размер файла журнала innodb. когда innodb_strict_mode включен, InnoDB возвращает ошибки, а не предупреждения для определенных условий. Как и во многих системах управления базами данных, MySQL использует журналы для обеспечения устойчивости данных (при использовании механизма хранения InnoDB по умолчанию). Это гарантирует, что при совершении транзакции данные не будут потеряны в случае сбоя или потери питания. Механизм хранения InnoDB MySQL использует пространство журнала Redo фиксированного размера (круглое). Размер контролируется innodb_log_file_size, Если вы увеличите значение этого свойства, вы избавитесь от этого исключения при хранении нескольких столбцов текста в MySQL 5.7.

Тема о том, какой размер подходит для файла журнала innodb, в этой статье не рассматривается. мы рекомендуем вам прочитать эту статью который содержит подробное объяснение и факты о том, как выбрать это значение. Поскольку мы просто делимся с вами решением этой проблемы, мы будем использовать значение 512Mпоэтому параметры, которые нужно добавить в блок mysqld my.cfn файл будет:

# Important: inside the mysqld block
[mysqld]
# Add new log file size
innodb_log_file_size=512M
# Disable strict mode
innodb_strict_mode=0

Пример того, как должен выглядеть файл:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
# Add new log file size
innodb_log_file_size=512M
# Disable strict mode
innodb_strict_mode=0

Хотя мы не рассмотрели подробное объяснение проблемы, вызванной ограничением размера строки, которое устраняется динамическим форматом строки, вы можете захотеть узнать о эта проблема посещение этой статьи. После сохранения изменений в файле перезапустите mysql с помощью cli в зависимости от вашей ОС и процесса установки, например:

# Ubuntu
sudo service mysql restart
# CentOS
/etc/init.d/mysqld start

Good morning all.  I need some help with a stored proc that is driving me up a wall.  It’s probably something stairing me right in the face but I can’t see it!

I keep getting the following error on the procedure that I’m working on:

SQL-DMO (ODBC SQLSTATE: 42000)

ERROR 156: Incorrect syntax near keyword ‘AS’

Must declare the variable ‘@signid’

Must declare the variable ‘@signid’

Here’s the code:

CREATE PROCEDURE [dbo].[ws_savesignature2db]
@xml as text=»,
@image as image=»,
@imageformat as varchar(20)=»,
@imagename as varchar(40)=»,
@imagesize as int=0,
AS

insert into signaturetable
 ([image], imageformat, imagename, imagesize)
values
 (@image, @imageformat,@imagename,@imagesize)

/*
if your XML field datatype is Text or nTEXT, use the code below in Sql Server 2000.
If you use Sql Server 2005, you can use varchar(max) or nvarchar(max) which will be
much easier and you do not need the code.
*/

select   @signid =  @@IDENTITY

DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR([xml])
FROM ws_signature
WHERE signid= @signid

if @ptrval is not null
 WRITETEXT ws_signature.xml @ptrval @xml
GO

Any help you can give would be a life saver!!!!

Thanks in advance.

  • Печать

Страницы: [1]   Вниз

Тема: Как решить эту проблему ошибку SQL “SQLSTATE[42000]”!?  (Прочитано 2313 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
Bludnik

Доброго времени суток.
Ребят не знаю куда написать, пишу тут. (Сильно не бейте)  ;D
Вообщем VDS ubuntu настраиваю по этой статье https://help.ubuntu.ru/wiki/web-server
Выдает трабл с mysql

Как вариант, что-то пропустил.
Объясните, что как и куда.

(Установка
Необходимо исправить следующие ошибки:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: Syntax error or access violation: 1171 All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead)


ТС не появлялся на Форуме более трех месяцев по состоянию на 23/02/2020 (последняя явка: 03/08/2019). Модератором раздела принято решение закрыть тему.
—zg_nico

« Последнее редактирование: 23 Февраля 2020, 05:18:13 от zg_nico »


Оффлайн
bezbo

All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

дык вроде матерным написано, что PRIMARY KEY должен быть NOT NULL, ну уж если невтерпеж (хотя это не правильно), можно использовать UNIQUE вместо PRIMARY KEY.
или покажите всю команду, которой пытаетесь создать таблицу…


Оффлайн
Bludnik

All parts of a PRIMARY KEY must be NOT NULL; if you need NULL in a key, use UNIQUE instead

дык вроде матерным написано, что PRIMARY KEY должен быть NOT NULL, ну уж если невтерпеж (хотя это не правильно), можно использовать UNIQUE вместо PRIMARY KEY.
или покажите всю команду, которой пытаетесь создать таблицу…

Проблема в том, что я даже не представляю о какой таблице речь и где ее взять 🤷🏻‍♂️


Оффлайн
Cannabinol

Какую команду вы вводите перед тем, как возникает данная ошибка?


Оффлайн
Bludnik

Какую команду вы вводите перед тем, как возникает данная ошибка?

Установку сайта.
Ввожу данные как на скрине указано жму далее и выдаёт ошибку.


Оффлайн
Cannabinol

Блин, у меня картинки не отображаются.
Яндекс отдает ошибку 403


Оффлайн
Aleksandru

Переименуйте название темы в более информативное, либо тема будет закрыта:

Правила форума
2. На форуме ЗАПРЕЩЕНО
2.6. Создавать темы с неинформативным названием, например «Помогите», «Пара вопросов», «Настройка Интернета» и т. п.

—Aleksandru

AMD FX-6100 AM3+ 6×3300 МГц, GeForce GT 1030, ASUS M5A97 LE R2.0, 16GB RAM, KINGSTON SV300S37A240G, Kubuntu 23.04


Оффлайн
Bludnik

Переименуйте название темы в более информативное, либо тема будет закрыта:

Правила форума
2. На форуме ЗАПРЕЩЕНО
2.6. Создавать темы с неинформативным названием, например «Помогите», «Пара вопросов», «Настройка Интернета» и т. п.

—Aleksandru

Так нормально?


Оффлайн
Aleksandru

Так нормально?

Нормально ;)

AMD FX-6100 AM3+ 6×3300 МГц, GeForce GT 1030, ASUS M5A97 LE R2.0, 16GB RAM, KINGSTON SV300S37A240G, Kubuntu 23.04


Оффлайн
bezbo

даже не представляю

смотрите логи ошибок mysql и, возможно, php


Оффлайн
Bludnik

даже не представляю

смотрите логи ошибок mysql и, возможно, php

А можно как чайники типо
Заходишь туда
Тыкаешь это
Тыкаешь сюда

Ранее не сталкивался с таким и было все окей


Пользователь добавил сообщение 26 Июля 2019, 07:27:05:


Перезалил изображение. ;)

« Последнее редактирование: 26 Июля 2019, 07:27:05 от Bludnik »


Оффлайн
Bludnik

Народ помогите не верю, что ни кто не знает как решить… :buck2:


Оффлайн
soarin

Наверно забить — какая-то глючная и брошенная какаха.

Проблема в том, что MySQL/MariaDB слишком новые для этой штуки.
Надо брать MySQL 5.6, либо как-то искать более новую версию этой штуковины.

« Последнее редактирование: 29 Июля 2019, 18:49:29 от soarin »


Оффлайн
bezbo

как решить…

править самому php/sql скрипт, который создает таблицу или пригласить того, кто разбирается


Оффлайн
Bludnik

Наверно забить — какая-то глючная и брошенная какаха.

Проблема в том, что MySQL/MariaDB слишком новые для этой штуки.
Надо брать MySQL 5.6, либо как-то искать более новую версию этой штуковины.

Понял спасибо.


  • Печать

Страницы: [1]   Вверх

  • Ошибка odbc sqlstate 42000 номер ошибки 102
  • Ошибка odbc sqlstate 28000 номер ошибки 18456
  • Ошибка odbc sqlstate 22018 номер ошибки 0
  • Ошибка odbc sqlstate 08004
  • Ошибка odbc sqlstate 08001 номер ошибки 101