Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26164
Рейтинг: 2127
#106: 2009-03-18 15:08:31 ЛС | профиль | цитата
Tad, давай путать пользователя не будем (и себя тоже). Если SQLite_db стал менеджером, то он им и стал, те поддерживает общепринятую (нами) технологию беспроводных соединений и является сервером идентификатора базы без нарушения совместимости со старыми схемами с прямолинкованными элементами.

И вообще, получилась весьма интересная технология, которая совместима, и со старым схемами, и с новыми, да еще и видна отовсюду
------------ Дoбавленo:

Tad писал(а):
На взгляд и запах вкус не ощущается

Ну, это -- да. Ну скажи обязательно, когда попробуешь. Ты первый, из пользователей, кто юзает ретранслированные идентификаторы с реальными базами.
------------ Дoбавленo:

С ретрансляторами есть одна особенность -- не желательно цеплять к одному ретранслятору несколько разноименных баз, тк мы не сможем определить без дополнительного синхроимпулься, идентификатор какой базы сейчас ретранслируется. Те, на ретрансляторе, в текущий момент, активен последний идентификатор, полученный коммандой doOpen SQLite_db
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#107: 2009-03-18 16:20:28 ЛС | профиль | цитата
nesco, если уж есть желание сделать БД беспроводными, то надо унифицировать всю вкладку сразу в едином интерфейсе, а не клепать под каждую технологию свои элементы.

Что имеется ввиду: надо делать ровно по одному элементу на каждото представителя источника данных и предоставлять им вот такой интерфейс

#pas
TDataSource = record
execProc:function():integer;
execScalarProc:function(procCallBack:TExecScalarCallback):integer;
queryProc:function(procCallBack:TQueryCallback):integer;
end;
имеем:
DS_SQLite
DS_MySQL
DS_Ole
DS_ODBC

ну и по одному элементу на каждую операцию
DSC_Exec
DSC_ExecScalar
DSC_Query

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

по поводу всяких там трансляторов я бы торопиться не стал. Не очень удачная это идея...
карма: 27
1
Голосовали:Tad
Ответов: 16884
Рейтинг: 1239
#108: 2009-03-18 16:22:35 ЛС | профиль | цитата
Пока впечатления от применения, особенно в одном мультике, - в основном положительные.
Вечером попробую в схеме, где 4-е разных БД используются одновременно.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Администрация
Ответов: 15295
Рейтинг: 1519
#109: 2009-03-18 16:34:30 ЛС | профиль | цитата
для стороннего наблюдателя использование Managed SQLite тем хуже (в плане понимания), чем с большим количеством баз идет работа в пределах одной схемы. Тут обязательно надо вытягивать LH на имя менеджера иначе визуально будет невозможно понять, что к чему обращается.

чем больше полезность открытия, тем трагичнее последствия его неверного применения
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#110: 2009-03-18 16:42:20 ЛС | профиль | цитата
Dilma писал(а):
Не очень удачная это идея...

Тут я не понял -- почему Как раз этого сильно и не хватает. Не зря же Tad спросил -- а как передать идентификатор из мультка в мультик. К тому же я попытался макисмально корректно освободить идентификаторы, чтобы не вызывать непредвиденных ситуаций. Я исследовал поведение модуля SQLite_db в динамическом мультике с возможностью его штатного уничтожения и все отработало нормально
------------ Дoбавленo:

Dilma писал(а):
Тут обязательно надо вытягивать LH на имя менеджера иначе визуально будет невозможно понять, что к чему обращается

Ну так не зря же это появилось после создани LH. К тому же, никто не запрещает использовать линки, они-то остались, можно же делать, и так, и эдак, как хочешь
------------ Дoбавленo:

Dilma писал(а):
ну и по одному элементу на каждую операцию
DSC_Exec
DSC_ExecScalar
DSC_Query


Вопрос, а как это сделать, если у них разные методы работы с базами Тут надо посмотреть и перварить эту идею. Вечером обязательно более подробно обговорим, пока, я въехал только частично.
------------ Дoбавленo:

Dilma писал(а):
то надо унифицировать всю вкладку сразу в едином интерфейсе, а не клепать под каждую технологию свои элементы

Да, кстати, я ничего и не клепал (кроме ретранслятора), а просто добавил интерфейс менеджера
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#111: 2009-03-18 16:57:59 ЛС | профиль | цитата
nesco писал(а):
Тут я не понял -- почему

в данный момент на этот вопрос определенного ответа нет. После реализации такой штуки в mra почему-то появилось ощущение, что так лучше не делать. Ну скажем при таких включениях теряется возможность отследить всех клиентов данного менеджера... А уж это к чему приведет в дальнейшем - большой вопрос.

Кроме того есть подозрение, что правильная схема это та, в которой иерхания привязок строится четко сверху вниз без ответвлений с возвратами на верхние уровни. На простом житейском опыте это выражается в том, что если я вижу некий клиент, то я точно знаю, что найду менеджера от него либо тут же, либо на N уровней выше, где N есть число в среднем не превышающее 1-5 единиц. С трансляторами это N будет тождественно равно количеству контейнеров. В тоже самое время его применение вообще говоря абсолютно ничего принципиально нового и интересного нам не дает => пока впечатление ниже нуля, хотя (напоменаю) говорить об этом с такой же уверенность как когда-то о менеджерах (только с обратным знаком) не рискну за неимением опыта использования.
------------ Дoбавленo:

nesco писал(а):
Вопрос, а как это сделать, если у них разные методы работы с базами

ну так и источники данных разные, а вот запросы везде являются строкой, и ответв во всех случаях это наборы MT

nesco писал(а):
Да, кстати, я ничего и не клепал (кроме ретранслятора), а просто добавил интерфейс менеджера

а вот так делать не стоило... Как интересно после таго можно будет понять забыл ли я к элементу handle дотянуть или там просто менеджер в свойстве прописан Нет уж, предлагаю договориться - старые и хорошо отлаженные элементы мы постепенно перестаем трогать и делаем для этих целей новые разделы вкладок. Тем более если это касается менеджеров.
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#112: 2009-03-18 17:05:11 ЛС | профиль | цитата
Dilma писал(а):
Ну скажем при таких включениях теряется возможность отследить всех клиентов данного менеджера...

Вот мы и пришли к этому. Это проблема обострилась только сейчас, когда ты столкнулся именно с тем, что могут рядом находтся одинаковые элементы, но принадлежащие разным менеджерам. А я с эти уже столкнулся, а пользователи визжат уже давно. Но я ставлю метки (цветные квдратики), и потому всегда могу найти, кто какой группе принадлежит.

А транслятор -- это эксперимент, посмотреть, как оно будет с ним и без него. Тут вопрос однозначный -- хочешь ставь, а хочешь не ставь
------------ Дoбавленo:

Dilma писал(а):
Нет уж, предлагаю договориться - старые и хорошо отлаженные элементы мы постепенно перестаем трогать и делаем для этих целей новые разделы вкладок. Тем более если это касается менеджеров.

Ну ты же пропал куда-то, я еще вчера про это думал, хотел поговорить -- как лучше сделать, отдельно или встроить. Вечером у меня закрались сомнения, что надо бы сделать отдельно, а то запутаются. Я обязательно это переделаю.
------------ Дoбавленo:

Dilma писал(а):
ну так и источники данных разные, а вот запросы везде являются строкой, и ответв во всех случаях это наборы MT

Кажется, начинаю понимать
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#113: 2009-03-18 17:09:44 ЛС | профиль | цитата
nesco писал(а):
А транслятор -- это эксперимент, посмотреть, как оно будет с ним и без него. Тут вопрос однозначный -- хочешь ставь, а хочешь не ставь

посмотрел на SQLite_Exec и понял, что это не тоже самое, что делалось для mra. И вопрос тут поэтому как рез НЕ однозначный - присутствие вот этого в коде

#pas
else if Assigned(_prop_SQLiteRetr) then
_prop_SQLiteRetr.dbhandle(dt,0)
говорит о том, что элемент на самом деле содержит аж три варианта получения handle вне зависимости от того, хочу я этого или нет... не стоит так проектировать элементы.

nesco писал(а):
Ну ты же пропал куда-то, я еще вчера про это думал, хотел поговорить -- как лучше сделать, отдельно или встроить. Вечером у меня закрались сомнения, что надо бы сделать отдельно, а то запутаются. Я обязательно это переделаю.

торопиться не стоило в любом случае
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#114: 2009-03-18 17:21:41 ЛС | профиль | цитата
Dilma писал(а):
имеем:
DS_SQLite
DS_MySQL
DS_Ole
DS_ODBC


Тут вопрос возникает -- на кой ляд DS_ODBC делать, когда есть OLE, разве OLE не чере ODBC работает

Да и с MySQL млин... проблема, там NIC чего-то мутил, да и нет у меня баз MySQL, на чем можно проверить и настроить.

Давай, я сначала попробую и отлажу методы на SQLite и OLE, а затем все остальное
------------ Дoбавленo:

Dilma писал(а):
на самом деле содержит аж три варианта получения handle

Ну да, так и есть. С этим я понял -- оставить старые элементы и не трогать их. Ну хорошо, а как совместить менеджера и ретранслятор, там по-любому получается, либо это, либо другое
------------ Дoбавленo:

Dilma писал(а):
торопиться не стоило в любом случае

Давай откатим, никаких проблем. Но вот Tad решил проверить на реальных базах, очень бы неплохо результата дождаться, а затем все вернуть и сделать по-другому, но уже с учетом реальных результатов
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#115: 2009-03-18 17:56:25 ЛС | профиль | цитата
nesco писал(а):
Ну хорошо, а как совместить менеджера и ретранслятор, там по-любому получается, либо это, либо другое

так я уже раза три писал про вкладку mra..

#sha
Add(MRA_Wire,1662578,350,301)
работает не зависимо ни от кого и ничего в коде добавлять не требуется

конкретнее скажу только после ознакомления с этим самым транслятором
карма: 27
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#116: 2009-03-18 19:04:28 ЛС | профиль | цитата
Dilma писал(а):
работает не зависимо ни от кого и ничего в коде добавлять не требуется

Да то же самое, только не лучшей реализации. Над переделать, вот и все, я уже понял как это сделать.

Давай, я все же откачу назад, доделаю, отлажу, а потом посмотрим. Только ты иногда на связь вечерком выходи, так бы подсказал раньше с mra, и я бы на грабли не наступал
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#117: 2009-03-18 20:22:42 ЛС | профиль | цитата
во время творческого креатива предпочитаю не отвлекаться на посторонние вещи
карма: 27
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#118: 2009-03-18 21:39:01 ЛС | профиль | цитата
nesco писал(а):
проблема, там NIC чего-то мутил

dbMySQL.ini писал(а):

Author=Dilma

dbMySQL_Databases.ini писал(а):

Author=Dilma

dbMySQL_Query.ini писал(а):

Author=Dilma


dbMySQL_ShowQuery.ini писал(а):

Author=Dilma


dbMySQL_Tables.ini писал(а):

Author=Dilma


dbMySQL_Exec.ini писал(а):

Author=Nic

nesco, на какую мозоль Вам наступил?



карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Разработчик
Ответов: 26164
Рейтинг: 2127
#119: 2009-03-18 22:17:34 ЛС | профиль | цитата
Nic, ой ли

Сократ мне друг, но истина дороже (с)





Так что, авторы тут, может быть, и правильные, но вот редакторы предпочли промолчать, что кто-то переводил на 5-ю версию, да и Blob взялся ниоткуда
карма: 22

0
файлы: 2dbmysql_001.png [7.5KB] [302], dbmysql_query_001.png [7.7KB] [323]
Главный модератор
Ответов: 2999
Рейтинг: 396
#120: 2009-03-18 22:26:43 ЛС | профиль | цитата
Если что-то и правится на SVN, то только с согласия автора: правило такой.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)