Как я могу использовать MySQL Views с Ms Access 2007, не получая мусор для строковых столбцов? - PullRequest
3 голосов
/ 12 июля 2011

Обзор проблемы:

У меня внешний интерфейс 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) вокруг значенияно это не помогло

Вопрос (ы):

  1. Почему это?
  2. Как я могу получить доступ, чтобы показать правильную строку?

1 Ответ

0 голосов
/ 30 марта 2013

Похоже, это больше не проблема.Я только что проверил это с ...

  • Access_2010, используя "связанную таблицу" для представления MySQL new_view

  • через ODBC MySQLДрайвер 5.2w

  • против MySQL 5.5.29-0ubuntu0.12.04.2

... и представление правильно отображается в Access:

MySQL_view

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...