MySQL - для чайника

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 29 Март 2019, 17:26

Алексей- Софт-Центр писал(а):
29 Март 2019, 17:02
Далее в словаре делаем импорт :
Спасибо ! Оказывается Datasource только вводить нужно, а я заполнял все поля и... почему то не получал списка таблиц

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 29 Март 2019, 17:58

Но... рано радоваться ! импортировал описания 2-х таблиц. При попытке открыть их встроенным браузером из Словаря, получаю ошибку несовпадения типов столбцов... ? Ранее то импортированные таблицы открываются... ? https://yadi.sk/i/fDaXeiIaURXFUA

Ал
Ветеран
Сообщения: 798
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

MySQL - для чайника

Сообщение Ал » 29 Март 2019, 18:40

Андрей писал(а):
29 Март 2019, 17:58
Но... рано радоваться ! импортировал описания 2-х таблиц. При попытке открыть их встроенным браузером из Словаря, получаю ошибку несовпадения типов столбцов... ? Ранее то импортированные таблицы открываются... ? https://yadi.sk/i/fDaXeiIaURXFUA
а посмотреть все вкладки и сравнить описания "стареньких" и "новеньких" таблиц/полей в Словаре?

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 30 Март 2019, 17:14

Ал писал(а):
29 Март 2019, 18:40
Андрей писал(а):
29 Март 2019, 17:58
Но... рано радоваться ! импортировал описания 2-х таблиц. При попытке открыть их встроенным браузером из Словаря, получаю ошибку несовпадения типов столбцов... ? Ранее то импортированные таблицы открываются... ? https://yadi.sk/i/fDaXeiIaURXFUA
а посмотреть все вкладки и сравнить описания "стареньких" и "новеньких" таблиц/полей в Словаре?
ммм нисего не понимаю. Итак имеется 9 старых таблиц импортированных давно, из них открывается в Dictionary-8 и на 1-ну такая же ошибка, я решил, что с тех пор структура той таблицы изменилась (база то оч. большая и совсем не моя).
1-й вопрос: Если структура таблица в БД меняется, то она точно не будет открываться встроенным в словарь браузером и вываливаться вот то окно ?
2-й вопрос: если так то почему при импортировании не получаю ошибки, таблицы вроде как нормально описанные, но не открываются - они ж только что импортировались ? Есть ли смысл искать различия полей в БД и словаре ? Или какие то таблицы импортруются с некими неопредяляемыми ошибками ?

Ал
Ветеран
Сообщения: 798
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

MySQL - для чайника

Сообщение Ал » 30 Март 2019, 17:52

вопрос - все 9 т.н "старые" базы находятся в одной БД?
так чем же отличается их описание в Словаре, что 8 - открываются, а 9-я - не открывается :?:

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 30 Март 2019, 18:02

Ал писал(а):
30 Март 2019, 17:52
вопрос - все 9 т.н "старые" базы находятся в одной БД?
так чем же отличается их описание в Словаре, что 8 - открываются, а 9-я - не открывается :?:
в одной конечно....
придется искать отличия, нет в старой то еще можно ожидать несовпадение, но в свежих то - откуда казалось бы ?

Аватара пользователя
morkovin
Ветеран
Сообщения: 636
Зарегистрирован: 20 Июль 2005, 13:53
Откуда: Volgograd, Russia
Контактная информация:

MySQL - для чайника

Сообщение morkovin » 30 Март 2019, 18:13

Поля Date-Time и Blob есть в DCT в 9-й таблице?
WBR, morkovin

kreator
✯ Ветеран ✯
Сообщения: 3412
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

MySQL - для чайника

Сообщение kreator » 31 Март 2019, 14:17

Андрей, приведи описание неоткрывающейся таблицы. Может имя нехорошее у столбца. А "External Name" есть у столбца?
We are hard at work… for you. :)

kreator
✯ Ветеран ✯
Сообщения: 3412
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

MySQL - для чайника

Сообщение kreator » 31 Март 2019, 14:27

Я вообще никогда не делаю импорт в словарь. Но когда есть какие-то несовпадения словаря с базой, то при открытии таблицы из приложения драйвер ODBC (???) сообщает номер проблемного поля/столбца.
We are hard at work… for you. :)

gopstop2007
✯ Ветеран ✯
Сообщения: 1269
Зарегистрирован: 25 Март 2009, 21:55

MySQL - для чайника

Сообщение gopstop2007 » 31 Март 2019, 14:49

morkovin писал(а):
30 Март 2019, 18:13
Поля Date-Time и Blob есть в DCT в 9-й таблице?
и еще smallint -> SHORT, tinyint -> BYTE и по желанию varchar -> СSTRING или STRING ...
в DCT в настройках driver options -> вкладыш Logging установите все для лога и смотрите в чем проблема )
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 01 Апрель 2019, 1:27

Вот одна из неоткрывающихся
А datetime есть во всех, в т.ч. открывающихся таблицах

Код: Выделить всё

CREATE TABLE s11.Schedule_Item (
  id int(11) NOT NULL AUTO_INCREMENT,
  createDatetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата создания записи',
  createPerson_id int(11) DEFAULT NULL COMMENT 'Автор записи {Person}',
  modifyDatetime datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'Дата изменения записи',
  modifyPerson_id int(11) DEFAULT NULL COMMENT 'Автор изменения записи {Person}',
  deleted tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Отметка удаления записи',
  master_id int(11) NOT NULL COMMENT 'Элемент расписания врача {Schedule}',
  idx int(11) NOT NULL DEFAULT 0 COMMENT 'Порядковый номер',
  time datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'дата и время талона',
  overtime tinyint(1) NOT NULL DEFAULT 0 COMMENT 'дополнительный приём, поставлено в очередь сверх времени',
  endOfReserve datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT 'дата и время окончания резерва талона',
  client_id int(11) DEFAULT NULL COMMENT 'Клиент {Client}',
  srcOrg_id int(11) DEFAULT NULL COMMENT 'Организация-направитель {Organisation}',
  srcPerson varchar(64) DEFAULT NULL COMMENT 'Врач-направитель',
  srcSpeciality_id int(11) DEFAULT NULL COMMENT 'Специальность врача {rbSpeciality}',
  srcDate date DEFAULT NULL COMMENT 'Номер направления',
  srcNumber varchar(64) DEFAULT NULL COMMENT 'Номер направления',
  recordDatetime datetime DEFAULT NULL COMMENT 'Дата и время осуществления записи пациента',
  recordPerson_id int(11) DEFAULT NULL COMMENT 'Кем осуществлена запись {Person}',
  recordClass int(11) NOT NULL DEFAULT 0 COMMENT 'Классификатор внешней записи (0-samson, 1-инфомат, 2-call-центр, 3-интернет)',
  complaint varchar(128) NOT NULL DEFAULT '' COMMENT 'Жалобы',
  note varchar(128) NOT NULL DEFAULT '' COMMENT 'Примечание',
  checked tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Есть отметка (в интерфейсе)',
  homeCallStatus int(11) NOT NULL DEFAULT 0 COMMENT 'Статус в приложении врача на дому: 0 - Ожидание, 1 - Принял, 2 - Отменен, 3 - Выполнен, 4 - Нет на месте',
  PRIMARY KEY (id),
  INDEX client_id (client_id),
  INDEX createPerson_id (createPerson_id),
  INDEX master_id (master_id, deleted),
  INDEX modifyPerson_id (modifyPerson_id),
  INDEX recordPerson_id (recordPerson_id),
  INDEX srcOrg_id (srcOrg_id),
  INDEX srcSpeciality_id (srcSpeciality_id),
  CONSTRAINT Schedule_Item_client FOREIGN KEY (client_id)
  REFERENCES s11.Client (id) ON DELETE SET NULL ON UPDATE RESTRICT,
  CONSTRAINT Schedule_Item_createPerson FOREIGN KEY (createPerson_id)
  REFERENCES s11.Person (id) ON DELETE SET NULL ON UPDATE RESTRICT,
  CONSTRAINT Schedule_Item_master FOREIGN KEY (master_id)
  REFERENCES s11.Schedule (id) ON DELETE CASCADE ON UPDATE RESTRICT,
  CONSTRAINT Schedule_Item_modifyPerson FOREIGN KEY (modifyPerson_id)
  REFERENCES s11.Person (id) ON DELETE SET NULL ON UPDATE RESTRICT,
  CONSTRAINT Schedule_Item_recordPerson FOREIGN KEY (recordPerson_id)
  REFERENCES s11.Person (id) ON DELETE SET NULL ON UPDATE CASCADE,
  CONSTRAINT Schedule_Item_srcOrg FOREIGN KEY (srcOrg_id)
  REFERENCES s11.Organisation (id) ON DELETE SET NULL ON UPDATE RESTRICT,
  CONSTRAINT Schedule_Item_srcSpeciality FOREIGN KEY (srcSpeciality_id)
  REFERENCES s11.rbSpeciality (id) ON DELETE SET NULL ON UPDATE RESTRICT,
  CONSTRAINT Shedule_Item_client FOREIGN KEY (client_id)
  REFERENCES s11.Client (id) ON DELETE SET NULL ON UPDATE RESTRICT
)
ENGINE = INNODB
AUTO_INCREMENT = 1446556
AVG_ROW_LENGTH = 129
CHARACTER SET utf8
COLLATE utf8_general_ci

Код: Выделить всё

Schedule_Item   FILE,DRIVER('ODBC'),OWNER('Samson32'),NAME('Schedule_Item'),PRE(Sch2)
PRIMARY           KEY(Sch2:id),PRIMARY
Schedule_Item_createPerson KEY(Sch2:createPerson_id),DUP
Schedule_Item_modifyPerson KEY(Sch2:modifyPerson_id),DUP
Shedule_Item_client KEY(Sch2:client_id),DUP
Schedule_Item_recordPerson KEY(Sch2:recordPerson_id),DUP
KEY_master_id     KEY(Sch2:master_id,Sch2:deleted),DUP,NAME('master_id')
Schedule_Item_srcOrg KEY(Sch2:srcOrg_id),DUP
Schedule_Item_srcSpeciality KEY(Sch2:srcSpeciality_id),DUP
Schedule_Item_client KEY(Sch2:client_id),DUP
Schedule_Item_master KEY(Sch2:master_id),DUP
record            RECORD
id                  LONG
createDatetime      STRING(8)
createDatetime_GROUP  GROUP,OVER(createDatetime)
createDatetime_DATE     DATE
createDatetime_TIME     TIME
                      END
createPerson_id     LONG,NAME('`createPerson_id`')
modifyDatetime      STRING(8)
modifyDatetime_GROUP  GROUP,OVER(modifyDatetime)
modifyDatetime_DATE     DATE
modifyDatetime_TIME     TIME
                      END
modifyPerson_id     LONG,NAME('`modifyPerson_id`')
deleted             BYTE
master_id           LONG,NAME('`master_id`')
idx                 LONG
time                STRING(8)
time_GROUP          GROUP,OVER(time)
time_DATE             DATE
time_TIME             TIME
                    END
overtime            BYTE
endOfReserve        STRING(8)
endOfReserve_GROUP  GROUP,OVER(endOfReserve)
endOfReserve_DATE     DATE
endOfReserve_TIME     TIME
                    END
client_id           LONG,NAME('`client_id`')
srcOrg_id           LONG,NAME('`srcOrg_id`')
srcPerson           CSTRING(65)
srcSpeciality_id    LONG,NAME('`srcSpeciality_id`')
srcDate             DATE
srcNumber           CSTRING(65)
recordDatetime      STRING(8)
recordDatetime_GROUP  GROUP,OVER(recordDatetime)
recordDatetime_DATE     DATE
recordDatetime_TIME     TIME
                      END
recordPerson_id     LONG,NAME('`recordPerson_id`')
recordClass         LONG
complaint           CSTRING(129)
note                CSTRING(129)
checked             BYTE
homeCallStatus      LONG
                  END
                END

Аватара пользователя
morkovin
Ветеран
Сообщения: 636
Зарегистрирован: 20 Июль 2005, 13:53
Откуда: Volgograd, Russia
Контактная информация:

MySQL - для чайника

Сообщение morkovin » 01 Апрель 2019, 5:31

Убери апострофы в NAME или вообще очисти - имена полей совпадают же.
WBR, morkovin

Ал
Ветеран
Сообщения: 798
Зарегистрирован: 08 Июль 2005, 5:48
Откуда: Россия

MySQL - для чайника

Сообщение Ал » 01 Апрель 2019, 8:40

да, ещё на это обрати внимание, вдруг пропустил:
...
srcDate date DEFAULT NULL COMMENT 'Номер направления',
srcNumber varchar(64) DEFAULT NULL COMMENT 'Номер направления',
...

Андрей
Старожил
Сообщения: 263
Зарегистрирован: 30 Октябрь 2005, 3:58

MySQL - для чайника

Сообщение Андрей » 01 Апрель 2019, 10:04

kreator писал(а):
31 Март 2019, 14:27
Я вообще никогда не делаю импорт в словарь. Но когда есть какие-то несовпадения словаря с базой, то при открытии таблицы из приложения драйвер ODBC (???) сообщает номер проблемного поля/столбца.
Запустил
https://yadi.sk/i/_cGIEyXOgh1PTw
15 поле, GROUP(datetime) за за одно поле считать ? Или за 2 ?
Что это за 15-й столбец ?

gopstop2007
✯ Ветеран ✯
Сообщения: 1269
Зарегистрирован: 25 Март 2009, 21:55

MySQL - для чайника

Сообщение gopstop2007 » 01 Апрель 2019, 10:10

вас поле time не напрягает? оно вроде как в clarion-e зарезервировано и mysql
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Ответить