powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache и база MySQL
23 сообщений из 23, страница 1 из 1
Cache и база MySQL
    #36483133
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть база на MySQL, сотоящая из 15-20 таблиц общим размером в около 200 Мб, реально ли подключить эту базу к кащею, и строить допустим к ней ZEN-отчёты? Или каким то образом преобразовать в кащейские классы? В какую сторону копать?
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36483345
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-моему, лучше просто все запихать в каше и отказаться от MySQL.
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36483435
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал на Cache 2010.1 под Win
Создаешь подключение по ODBC, соответственно на сервере с кашей, должен стоять ODBC драйвер для MySQL, и должно быть настроено в Windows подключение по ODBC к нужному серверу
в портале [Домашняя страница] > [Конфигурация] > [Параметры Объектного/SQL Шлюзов] > [Соединения SQL Шлюза]
после создания подключения в Cache
в портале на главной в столбце управления данными пункт SQL
а там Мастер связывания таблицы, предварительно выбрав нужную область
с помощью данного мастера, можно связать таблицу в MySQL, с классом в Cache (класс будет создан)
и туда сразу можно выбрать какие поля взять

а вот уже опираясь на эти новые классы можно создавать ZEN-отчеты
данные физически будут хранится в другой БД

но имхо, конечно лучше данные оттуда импортировать в Cache, и работать с этими данными будет легче для Cache, и быстрее
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36483438
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати этот способ годится для любого типа сервера или даже файла, если к нему есть драйвер ODBC
я пробовал на базе MS Access
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36486002
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor
но имхо, конечно лучше данные оттуда импортировать в Cache, и работать с этими данными будет легче для Cache, и быстрее

сделал как описано, вроде бы всё нормально, классы создались...вот пример сгенерённого класса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Class nullschema.theme Extends %Library.Persistent [ ClassType = persistent, Not ProcedureBlock, SqlRowIdPrivate, SqlTableName = theme, StorageStrategy = GSQLStorage ]
{

Parameter CONNECTION = "MyODBCDataBase,NOCREATE";

Parameter EXTERNALTABLENAME = "theme";

Property course As %Integer(EXTERNALSQLNAME = "course") [ SqlColumnNumber =  4 , SqlFieldName = course ];

Property id As %Integer(EXTERNALSQLNAME = "id") [ SqlColumnNumber =  2 , SqlFieldName = id ];

Property title As %String(EXTERNALSQLNAME = "title", MAXLEN =  150 ) [ SqlColumnNumber =  3 , SqlFieldName = title ];

Index MainIndex On id [ IdKey, PrimaryKey ];

}

Я так понимаю что параметр
Код: plaintext
1.
Parameter CONNECTION = "MyODBCDataBase,NOCREATE";
указывает, что данные лежат не в глобалях кащея, а берутся из базы, подключенной через ODBC?

Пробовал работать с этими данными - не получается, делал тестовую ZEN-страницу, на которую добавлял tablePane c запрсом типа:
Код: plaintext
1.
select * from nullschema.theme

на что следует сообщение об ошибке при построении запроса...
Так и должно быть или что то не так? И как импортнуть данные из MySQl в кащей? Пробовал использовать мастер экспорта данных, там выбирал таблицу (.MYD), и соответ класса кащея, оочень долго висит, потом в итоге таймаут csp...
В иделае мне конечно нужно конектится к удалённому серверу с MySQL, и генерить отчёт в ZEN по данным из этой удалённой базы... причём в базе присутствуют BLOB-поля, в которых содержится 60% нужной для отчёта информации... Но потренироватся хотелось бы с тестовой локальной базой..
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36486089
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пробовал с базой MS Access, и запрос по созданной таким образом странице нормально выполнился и показал данные из присоединенной таблицы
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36486097
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в отношении BLOB, думаю стоит попробовать связать таблицу с такими полями, и посмотреть как он создаст класс, думаю для таких полей будет тип типа %Stream
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36576628
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что можно сделать, если EXTERNALSQLNAME=level , а называть поле level нельзя?
Код: plaintext
Property levels As %String(EXTERNALSQLNAME = "level", MAXLEN =  1 ) [ SqlColumnNumber =  4 , SqlFieldName = levels ];
В итоге вместо реальных значений получаю в поле levels значение level
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36576718
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LEVEL зарезервированное слово в SQL Cache'
_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36577126
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том, что те кто создавали КЛАДР, про это не знали и так и назвали поле level
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36577661
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.По-моему, лучше просто все запихать в каше и отказаться от MySQL.

И для мелких задач типа интернет-заявок заводить юзеров и тратить лицензии каше?
Сомнительное удовольствие.

Или есть варианты получить множество правильных подключений (с поддержкой сессий и не через прямой доступ) "мимо" лицензии?
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36579431
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMor,

Может есть возможность обойти ограничение, если связь с другой базой?
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36579499
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vit_kot,

у вас ведь в поле levels данные из поля level, значит поле одно и тоже просто переименовано, это ведет к большим проблемам ?
или у вас все настолько жестко завязано на эти поля, что они должны назваться так а не иначе ?
скажите спасибо что у вас нету полей с нижним подчеркиванием, таких полей в каше не может быть, их бы он тоже подменил.
на самом деле можете попробовать поменять имя поля вручную, но думаю что класс не скомпилится из-за этого, да и вообще может не работать.
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36579835
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DAiMorvit_kot,
1. у вас ведь в поле levels данные из поля level, значит поле одно и тоже просто переименовано, это ведет к большим проблемам ?
2. или у вас все настолько жестко завязано на эти поля, что они должны назваться так а не иначе ?

3. на самом деле можете попробовать поменять имя поля вручную, но думаю что класс не скомпилится из-за этого, да и вообще может не работать.

1. В итоге вместо реальных значений получаю в поле levels значение level, а не значения из внешней таблицы.
2. Это таблицы Классификатор адресов России (КЛАДР), переименовать не получится, другое ПО уже использует это поле и при обновлении базы возникнут проблемы, т.к. они загружаются при обновлении
3. Если указать EXTERNALSQLNAME отличное от "level", то совсем не работают запросы, а внутреннее имя можно задать любое
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36579905
Фотография ну я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в mysql нельзя сделать view с переименованием поля через синоним и использовать его?
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36580240
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну я,

Нельзя, через ODBC подключаются таблицы MS FoxPro
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36580982
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vit_kotЧто можно сделать, если EXTERNALSQLNAME=level , а называть поле level нельзя?
Код: plaintext
Property levels As %String(EXTERNALSQLNAME = "level", MAXLEN =  1 ) [ SqlColumnNumber =  4 , SqlFieldName = levels ];
В итоге вместо реальных значений получаю в поле levels значение level
Попробуйте в Портале в настройках Вашего ODBC/JDBC соединения выбрать Do Not Use Delimited Identifiers by Default .
После этого не забудьте перекомпилировать ранее созданный класс. Или удалите его и заново свяжите с таблицей из MySql.
У меня запрос вида:
Код: plaintext
select id,"level" from mysql.test
в Портале возвращает и отображает все данные, включая данные для поля level .Если вставить данные в MySql, то они тут же видны в Caché.
Проверил на MySql 5.1, Caché 2010.2, JDBC SQL Gateway.

PS: при желании Вы можете оставить в Caché имя поля level , но в этом случае придётся его обрамлять в двойные кавычки .
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582087
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуйте в Портале в настройках Вашего ODBC/JDBC соединения выбрать Do Not Use Delimited Identifiers by Default .
После этого не забудьте перекомпилировать ранее созданный класс. Или удалите его и заново свяжите с таблицей из MySql.


В настройках ODBC MS FoxPro нет таких параметров, соединение через него
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582213
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vit_kot
Попробуйте в Портале в настройках Вашего ODBC/JDBC соединения выбрать Do Not Use Delimited Identifiers by Default .
После этого не забудьте перекомпилировать ранее созданный класс. Или удалите его и заново свяжите с таблицей из MySql.


В настройках ODBC MS FoxPro нет таких параметров, соединение через него
Do Not Use Delimited Identifiers by Default

PS: я не совсем понял как Caché, MySql и FoxPro у Вас взаимодействуют друг с другом.
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582241
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

Взаимодействуют Caché и FoxPro через ODBC.
"Поддерживать идентификаторы в ограничителях" / "Support Delimited Identifiers" включил:
Код: plaintext
Property level As %String(EXTERNALSQLNAME = "level", MAXLEN =  1 ) [ SqlColumnNumber =  4 , SqlFieldName = level ];
класс откомпилировался но
Код: plaintext
SELECT "level", scname, socrname, kod_t_st FROM Kladr.socrbase
выдает вместо значения level строку level
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582295
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select * from foxpro.table1
Проверил на FoxPro - тоже всё работает как надо.
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582357
vit_kot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
servit,

В Cache 5.0.3 таких настроек к сожалению нет
...
Рейтинг: 0 / 0
Cache и база MySQL
    #36582543
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vit_kotservit,

В Cache 5.0.3 таких настроек к сожалению нет
К сожалению, официальная поддержка версии 5.0 давно закончилась.
Попробуйте работать с DBF без шлюза напрямую, например здесь .

PS: КЛАДР на этом форуме уже читали.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache и база MySQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]