Microclimate.su

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

Ошибка запись присутствует в бд

Ошибка запись присутствует в бд

Включил. Подскажите в какую сторону копать, в чем проблема? Прилагю отладочный код:

Re: Ошибка записи в базу данных

Человеческим же языком всё написано — закопайте юзера. Зайдите под другим, с человеческим именем.

Re: Ошибка записи в базу данных

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

Re: Ошибка записи в базу данных

У объекта $user отсутствует свойство firstname, что выкидывает ошибку.

Версия мудла какая?

Попробуйте провести обновление мудла.

Re: Ошибка записи в базу данных

данная проблема возникала у всех сотрудников этого учебного центра, хотя у всех разные имена, должности, роли.

Сергей, система у всех одинаковая и тема оформления, в которые Вы вносили свои изменения:

  1. Верхнее меню каким образом добавлено? Стандартными средствами ( custommenuitems ) или самописный скрипт?
  2. Стандартная тема afterburner выглядит не так, как на скринах
  3. Форма создания курса изменена (поля Место проведения, Тренер).
  4. Блоки где? Или их просто не видно на скринах?
  5. Мудл пытается отрендерить какой-то код (line ? of unknownfile) и не получается, скорее всего, где-то используется неверная функция (дописанная) вывода пользователя, о чем и говорится — Please use user_picture::fields() to get the full list of required fields.

Вот и «копайте» в этом направлении: верните всё, как было, и проверьте на ошибку

Re: Ошибка записи в базу данных

Спасибо за полный ответ и уделенное время!

Все изменения вводились прошлым разработчиком. Откат до прежнего состояния сделать невозможно.

1) скорей всего custommenuitems

2) некоторые страницы переделаны

3)да, изменена. могут быть ошибки, связанные с этим? Дело в том, что курсы добавлялись и с этими измененными параметрами.

4)Какие именно блоки вы имеете в виду? Поясните

5)было бы славно, если было бы понятно какой именно код не рендерится..

Re: Ошибка записи в базу данных

Если не сложно, объясните смсысл сообщения отладчика!

Значение payment не установлено по умолчанию?

Debug info: Field ‘payment’ doesn’t have a default value
INSERT INTO mdl_course (category,place,coach,fullname,shortname,idnumber,format,coursedisplay,numsections,startdate,enddate,hiddensections,newsitems,showgrades,showreports,groupmode,groupmodeforce,defaultgroupingid,visible,lang,enablecompletion,timecreated,timemodified,sortorder,summary,visibleold) VALUES(. )
[array (
0 => ‘2’,
1 => ‘1’,
2 => ‘4’,
3 => ‘12123123123’,
4 => ‘123123123123’,
5 => »,
6 => ‘weeks’,
7 => ‘0’,
8 => ’10’,
9 => 1369484700,
10 => 1369484700,
11 => ‘0’,
12 => ‘5’,
13 => ‘0’,
14 => ‘0’,
15 => ‘2’,
16 => ‘0’,
17 => ‘0’,
18 => ‘1’,
19 => »,
20 => ‘1’,
21 => 1369398998,
22 => 1369398998,
23 => 0,
24 => »,
25 => ‘1’,
)]

Error code: dmlwriteexceptionStack trace: line 410 of libdmlmoodle_database.php: dml_write_exception thrownline 1029 of libdmlmysqli_native_moodle_database.php: call to moodle_database->query_end()line 1071 of libdmlmysqli_native_moodle_database.php: call to mysqli_native_moodle_database->insert_record_raw()line 3870 of courselib.php: call to mysqli_native_moodle_database->insert_record()line 103 of courseedit.php: call to create_course()

Читать еще:  Javascript для скайпа

Re: Ошибка записи в базу данных

Нужно либо определить в таблице значение payment по умолчанию

либо разрешить для payment null

либо доработать код, чтобы при создании курса также заполнялось и поле payment

Re: Ошибка записи в базу данных

Спасибо большое за ответы Всем участником данной темы. Так и было, в бд существовал неиспользуемый столбец payment, созданный прошлым разработчиком для своих целей. Убрал его — и проблема решена. Вы оказались правы, но к сожалению, поздно ответили) на тот момент пришел к такому выводу самостоятельно. Тему можно закрыть.

Re: Ошибка записи в базу данных

Уточните вашу версию moodle.

В последней версии moodle 2.5 в таблице mdl_course вообще нет поля payment, в 1.9 тоже, других под рукой нет. Полагаю, что это поле добавил в систему ваш прошлый разработчик и хранил там какую-то важную информацию, а курсы создавал не таким образом, как это делаете вы. Тут нужно понять, зачем оно этот поле и, или удалить его из базы, или выставить значение по умолчанию, или научиться создавать курсы так, как это делал прошлый разработчик.

Ошибки в SQL режиме (FAQ)

В данной статье перечислены наиболее часто возникающие ошибки при работе программ в SQL режиме и описаны способы их устранения.

Содержание

Недопустимое имя объекта DOCS (или DO1DATA)

Данная ошибка обычно возникает при первичном подключении к базе данных ГТД.

Для устранения ошибки сделайте следующее:

  • Откройте SQL Server Managment Studio, подключитесь к серверу
  • Откройте файл (Файл — Открыть — Файл) DOCS.SQL (для DO1DATA — DO1DATA.SQL), который находится в папке UTILS с установленной программой ГТД (при установке по умолчанию это C:Alta)
  • Выберите из списка (рядом с кнопкой Выполнить) базу данных, в которой произошла ошибка
  • Нажмите кнопку Выполнить

В Альта-ГТД не работает поиск

  • не установлена служба полнотекстового поиска: переустановить SQL сервер, при переустановке не забыть поставить галку на «Компонент Full-Text Search»
  • не запущена служба полнотекстового поиска: запустить службу, в параметрах запуска установить Авто
  • служба полнотекстового поиска не запускается с ошибкой «Интерфейс не поддерживается», либо такая ошибка выскакивает при поиске: переустановить SQL-сервер
  • при поиске выдается сообщение об ошибке «Служба не запущена», хотя она запущена, либо какая то еще ошибка: запустить скрипт FullText.sql (если каталог уже существует, будет выдана ошибка, но это не страшно), затем ConvertFtcLng.sql (выдается сообщение: «Внимание! Таблица или индексированное представление «dbo.Docs» имеет столбцы полнотекстового индекса. » — это нормально)

Невозможно подключиться к серверу с удаленной машины

  • брандмауэр windows или установленный антивирус блокирует порт 1433: все отключить и проверить соединение
  • на сервере не включен протокол TCP/IP: открыть Диспетчер конфигурации SQL сервер, включить протокол, перезапустить службу SQL-сервера
Читать еще:  Как настроить javascript

При работе с программой внезапно теряется подключение к серверу

  • некорректно работает протокол «Общая память»: в Диспетчере конфигурации отключить протокол Общая память, включить протокол TCP/IP и перезапустить службу SQL-севера
  • нарушается таблица маршрутизации вследствии каких-либо причин (н-р установка подключения к интернет через модем): использовать в качестве имени сервера его ip-адрес
  • ERRORLOG в папке sql сервера сильно вырос и не может переименоваться на ERRORLOG.1*, для создания нового. Тут, возможно, не хватает прав на внесение изменений в этой папке(необходимо админам проверить), либо кривая установка SQL сервера(Остановить службу SQL сервера и удалить вручную C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG, если не помогло, переустановка).

На локальной (удаленной) машине невозможно подключиться к SQL-серверу (Сервер не найден)

Возможно, установлен именованный instance SQL-сервера: указать в настройках ИМЯ_СЕРВЕРАИНСТАНС (обычно это SQLEXPRESS)

«Разрешение CREATE DATABASE запрещено в базе данных «master» при создании БД

У пользователя, под которым было произведено подключение к SQL-серверу, нет прав на создание новой базы данных: необходимо залогиниться под пользователем sa или другим пользователем с правами администратора

«Ошибка операции CREATE DATABASE. Некоторые из перечисленных имен файлов не были созданы» при созднии БД

Проблема: база данных не подключена к серверу, однако сами файлы базы данных по какой то причине присутствуют в системном каталоге DATA SQL-сервера: присоедините базу данных, для чего

  • Откройте SQL Server Managment Studio, подключитесь к серверу
  • Кликните правой кнопкой мыши по Базам данных, в контекстном меню выберите пункт Присоединить
  • В появившемся окне нажмите кнопку Добавить и выберите нужный файл *.mdf, нажмите ОК
  • Нажмите ОК

«Не удаётся найти указанного поставщика»(или «Не найдена указанная процедура», или «Неизвестное имя класса»,или «Разрушительный сбой»)при подключении к БД

Проблема: иногда после установки автоматических обновлений Windows (или по другим неустановленным причинам) на компьютере происходит повреждение системных компонентов доступа к базам данных «Microsoft/Windows Data Access Components» (MDAC/WDAC), в частности их составляющих – «ActiveX Data Objects» (ADO) и/или «OLEDB-провайдеров».

Поскольку, начиная с Windows XP SP2 и Server 2003, данные компоненты (MDAC) считаются неотъемлемой частью операционной системы, а, начиная с Windows Vista и Server 2008, они переименованы в «Windows Data Access Components» (WDAC) и более не распространяются в виде отдельного инсталлятора, то наилучшим решением является переустановка операционной системы или восстановление ее из резервной копии (при наличии таковой) на состояние до сбоя.

Однако в виду трудоемкости данной операции можно для начала попробовать (на свой страх и риск) более «мягкие» способы решения проблемы, которые будут различаться в зависимости от установленной версии Windows:

Для старых ОС (до Windows XP SP1 включительно): Достаточно просто переустановить компоненты MDAC, скачав инсталлятор с сайта Microsoft.

Для Windows XP SP2/SP3 и Server 2003:

Вариант 1 (только для XP). Воспользоваться вышеупомянутым инсталлятором, однако перед его запуском зайти в свойства файла MDAC_TYP.EXE и включить режим совместимости с Windows 2000. Это позволит избежать сообщения о «несовместимости с данной версией Windows», но по сути будут установлены ровно те же компоненты, что идут в составе Windows XP SP2/SP3.

Читать еще:  Скайп ругается на javascript win xp

Вариант 2. Переустановить только компоненты MDAC, используя оригинальный дистрибутив Windows, с которого происходила установка ОС. Для этого, открыть папку C:WindowsInf (если ее не видно, включить показ скрытых папок/файлов в «свойствах папки»), нажать правой кнопкой мыши на файле MDAC.INF и выбрать пункт «Установить». При первом запросе «вставить диск» указать путь C:WindowsServicePackFilesi386, при втором – путь к папке i386 дистрибутива Windows, с которого происходила первоначальная установка ОС. Более подробно можно прочитать в статье Microsoft.

Вариант 3 (частичное восстановление!). Скопировать с другого компьютера (где установлена такая же ОС и все работает) содержимое папок:

C:Program FilesCommon FilesSystemado C:Program FilesCommon FilesSystemOle DB

И зарегистрировать основные DLL командами (Пуск→Выполнить):

regsvr32 «C:Program FilesCommon FilesSystemadomsado15.dll» regsvr32 «C:Program FilesCommon FilesSystemOle DBoledb32.dll» regsvr32 «C:Program FilesCommon FilesSystemOle DBsqloledb.dll»

Для Windows Vista, Sever 2008 и более поздних:

Для этих ОС изначально не существует отдельно распространяемого инсталлятора WDAC, кроме того, там применяется технология Windows File Protection (WFP), которая защищает системные файлы от любых «несанкционированных» изменений, поэтому единственный возможный способ избежать переустановки системы – это как раз понадеяться, что WFP восстановит поврежденные файлы WDAC.

Чтобы запустить сканирование системы с восстановлением поврежденных файлов надо зайти в меню «Пуск→Все программы→Стандартные», нажать правой кнопкой мыши на пункте «Командная строка» и выбрать «Запуск от имени администратора». В окне командной строки набрать команду и нажать Enter: SFC /SCANNOW

Если ничего не будет восстановлено или это не поможет, то можно попробовать из той же командной строки выполнить регистрацию DLL-файлов, перечисленных в вар.3 предыдущего раздела.

Кроме того, теоретически может помочь откат последних обновлений (которые привели к сбою) и/или установка последнего ServicePack для данной ОС.

  • если выше указанные действия не помогли, скопировать целиком обе папки OLEDB и ADO с другой машины с АНАЛОГИЧНОЙ операционкой и также перерегистрировать указанные dll-ки
  • установить/переустановить SQL сервер на проблемной машине
  • если все перечисленные способы не помогли, попробовать сделать откат системы, либо переустановить операционку

Locking optimistic failed: user with class identifier.

Ошибка означает, что повторно удаляется или записывается одна и та же запись в таблицу SQL. Лечится перезапуском SQL сервера.

Несоответствующий (ошибочный, и т.д.) лог-файл *.ldf

В этом случае необходимо выполнить ОДИН из скриптов. Естественно указав корректный путь к файлу базы и задав нужное имя БД. При этом сам битый файл *.ldf должен отсутствовать

База данных находится в режиме «Подозрительный»

Необходимо выполнить скрипт (заменить везде название базы, если она отличается от gtd):

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector
×
×