Обзор проблемы:
У меня внешний интерфейс Ms Access 2007 подключен к базе данных MySQL.Я создал представление в MySQL, так как не смог сгенерировать то же самое представление в Access само по себе, и это прекрасно работает из программного обеспечения MySQL Workbench, но если я использую «Select * from myView» в базе данных MS Access 2007, я получаю все от случайного китайскогосимвол "Длинные двоичные данные" для строк, которые должны быть.
Как копировать:
Чтобы помочь вам понять мою проблему и, надеюсь, повторить ее, я написал следующее объяснение:
Сначала создайте таблицу и заполните ее в MySQL, используя следующий код:
--
-- Table structure for table `aTestTbl`
--
DROP TABLE IF EXISTS `aTestTbl`;
CREATE TABLE `aTestTbl` (
`ID` int(10) unsigned NOT NULL,
`ExternalID` int(10) NOT NULL,
`SomeValue` varchar(25) NOT NULL
);
--
-- Dumping data for table `aTestTbl`
--
LOCK TABLES `aTestTbl` WRITE;
/*!40000 ALTER TABLE `aTestTbl` DISABLE KEYS */;
INSERT INTO `aTestTbl` VALUES (1,1,'Value1');
INSERT INTO `aTestTbl` VALUES (2,1,'Value2');
INSERT INTO `aTestTbl` VALUES (3,2,'Value3');
INSERT INTO `aTestTbl` VALUES (4,2,'Value4');
/*!40000 ALTER TABLE `aTestTbl` ENABLE KEYS */;
UNLOCK TABLES;
Теперь создайте MySQL View ИЗ следующего SQL:
SELECT ExternalID,
group_concat(distinct SomeValue order by SomeValue ASC separator ', ') AS `ExtVal`
FROM aTestTbl
GROUP BY ExternalID;
Затем выполните следующий SQL, чтобы убедиться, чтовсе это работает:
SELECT *
FROM new_view;
Это должно выдать что-то вроде:
|ExternalID | SomeValue |
|1 | Value1, Value2 |
|2 | Value3, Value4 |
Если вы затем подключите эту таблицу в БД MS Access 2007 и поместите тот же SQL
SELECT *
FROM new_view;
в новый запрос. Надеюсь (как и я), вы получите что-то вроде:
|ExternalID | SomeValue |
|1 | Long Binary Data |
|2 | Long Binary Data |
Я попытался использовать CAST ( val AS CHAR) вокруг значенияно это не помогло
Вопрос (ы):
- Почему это?
- Как я могу получить доступ, чтобы показать правильную строку?