Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DAO 3.5


Страницы:   1 2

Joy ©   (2005-10-13 13:32:00) 

Приветствую.
Пытаюсь использовать DAO...
При попытке создать COM-объект из этой библиотеки вылается "OleSysError "Класс не лицензирован для использования" ".
Что бы это значило и как его "лицензировать" то?
Из того же VC++ все ведь работает(там правда свой класс поверх COM, ну а я импротирую из DLL(TLB)).


Joy   (2005-10-17 17:45:00) [1]

элементарно же - пытаешся подключится к старшей версии - не получилось,  пытаешся к младшей - не получилось выдаеш ошибку
ладно...наверное на том и порешим =) а то и так уже слишком большая ветка вышла...(

>написано дилетантом который не смог отследить версионность
(мог бы и сам блин  догадаться =))
я бы так не сказал =) там просто есть возможность и 3.6 и 3.5 выбрать...на 3.6 все хорошо а на 3.5 та же ошибка...всетаки думаю дело в том что чего то из файла не хватает...
а сами компаненты очень даже хорошие...

вопчем буите у нас в Новосибе - с меня пиво )


sniknik   (2005-10-17 17:38:00) [2]

впрочем возможно компаненты взяты настолько старые, что сделаны тогда когда 3,6 не было и в помине...


sniknik   (2005-10-17 17:36:00) [3]

> попробовал [3] - не работает.

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

> а что ты предлагаешь?
> я бы с радостью вообще бы не лез туда - но уж если полез - надо лезть так чтоб ничего лишнего не болталось.ну не таскать
>  же с собой 2 версии dao одну для себя другую для основной проги?
кто предлагал таскать?
второй раз > Digitman ©   (14.10.05 10:16) [6] перечитай подход.
элементарно же - пытаешся подключится к старшей версии - не получилось,  пытаешся к младшей - не получилось выдаеш ошибку.
и все, при установленной 3,6 будет работать через нее, при отсутствии через 3,5. и таскай что угодно а работать будет то что установленно "сверху".

Joy   (17.10.05 17:20) [30]
аллегория, перевод - написано дилетантом который не смог отследить версионность. (водка была дерьмовая, по этому поводу царь и высказался)


Joy   (2005-10-17 17:20:00) [4]

>ключница водку делала. © Иван Васильевич меняет профессию.
что то к концу рабочего дня сапсем плохо с мозгами...это к чему было? )


Joy   (2005-10-17 17:18:00) [5]

попробовал [3] - не работает.

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

>и второе. если вдруг, та прога действительно не может работать с 3.6 напрямую, то ты действительно хочеш сей недостаток в точности воспроизвести и у себя тоже?.
а что ты предлагаешь?
я бы с радостью вообще бы не лез туда - но уж если полез - надо лезть так чтоб ничего лишнего не болталось.ну не таскать же с собой 2 версии dao одну для себя другую для основной проги?


sniknik   (2005-10-17 17:15:00) [6]

> попробовал сейчас несколько готовых компонентов которые используют dao - везде та же ошибка...
ключница водку делала. © Иван Васильевич меняет профессию.


sniknik   (2005-10-17 17:09:00) [7]

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

> CreateOleObject('DAO.DBEngine.36'); - работает!
отлично! причина ([0] "Что бы это значило") определена с большой долнй вероятности и озвучена в [1], первом же ответе .

продолжаем дальше, идеш в ответ [3], и делаеш то что там просил
тк. во это
> то есть можно сделать вывод что ей надо именно 3.5.
не факт, а в [3] как раз проверка на то что же ей действительно нужно, запись в реестре или собственно движок (dll). и если ссылка в реестре может быть подменена для другой версии то сам файл нет.

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

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


Joy   (2005-10-17 16:54:00) [8]

попробовал сейчас несколько готовых компонентов которые используют dao - везде та же ошибка...
явно чего то не хватает...=(


Joy   (2005-10-17 16:37:00) [9]

Ок.
я не отмахивался и проверял уже так...
попробуем еще раз...
http://www.torry.net/tools/db/dbother/coldbver.zip- маленькая утилита,  которая показавает установлены ли DAO/ADO и какой версии.Говорит что есть и 3.5 и 3.6

CreateOleObject('DAO.DBEngine. 35'); - ошибка!

CreateOleObject('DAO.DBEngine. 36'); - работает!

делаем regsvr32 /u dao350.dll. Запускаем основную прогу - не работает.
делаем regsvr32  dao360.dll(на всяк случай) - не работает
делаем regsvr32  dao350.dll(возвращаем обратно) - работает!

то есть можно сделать вывод что ей надо именно 3.5.

поставим вопрос по другому - очень может быть что чегото не хватает(какого то файла или записи в реестре) Откуда поставить этот redistributable DAO чтоб точно быть уверенным что оно все правильно ставит?


sniknik   (2005-10-17 16:16:00) [10]

> zx ©   (17.10.05 15:58) [21]
jet в mdac не входит.


sniknik   (2005-10-17 16:14:00) [11]

ладно давай так. повторяю тоже самое
> Проект -новый.Форма.Кнопка.В uses добавляем - ComObj.На OnClick кнопки пишем одну строку
> CreateOleObject('DAO.DBEngine.35').Компилим.Запускаем.Жмем кнопку.Ошибка.
правильно ошибка - "недопустимая строка с указанием класса" (у меня не установлен) у тебя...

смотрим перевый же ответ.
> возможно установка 3.6 "закрыла" более старую версию себя? (посмотри есть такой? и если есть сделай TLB из него, чего получится?)
т.е. проверь (!!!), и скажи что получилось, скажи!, проверь и скажи!, а не отмахивайся типа до этого чегото делали, пока не поставиш другая (!!!) прога не заработает...

неужели трудно поддерживать диалог с человеком который взялся тебе помогать? или трудно цифру 5 на 6 поменять и кнопку нажать? и не надо отмазок что тебе нужен 3,5 на самом деле, тебя не просят менять принцип тебя просят проверить.
а дальше если заработает (в уверен на 95%), идем дальше к > Digitman ©   (14.10.05 10:16) [6], и отвечаем на вопрос "тебе есть разница какая версия DAO отработает?" и тутже готовый рецепт к действию (немного не так как сделал бы я, но тоже вариант)


$hade   (2005-10-17 16:04:00) [12]

я как раз пытаюсь избавится от кучи отдельных програм при установке основной программы (на данный момент после копирования файлов приходится запускать 5 отдельных утилит(для разных частей программы) и установщиков чтоб настроить программу - потому просто отдать пользователю диск с программой чтоб он сам поставил не получается..а хочется=) )
конечно с ADO проще будет(хотя бы за счет того что готовые компоненты есть)...но хотелось бы все же разобраться уже принципиально с этой проблемой...


zx   (2005-10-17 15:58:00) [13]

а я бы ещё про ADO подумал, гораздо проще приложить к программе mdac_typ.exe.


Joy   (2005-10-17 15:33:00) [14]

Да что это за такое...то есть ты все же хочешь сказать что я задаю глупости, спрашиваю неправильно и еще и понять не могу умные ответы других...? )))

Проект -новый.Форма.Кнопка.В uses добавляем - ComObj.На OnClick кнопки пишем одну строку CreateOleObject('DAO.DBEngine.35').Компилим.Запускаем.Жмем кнопку.Ошибка.
все.больше кода нет.
что я не так делаю?
А изначально я даже не это спрашивал - я спрасил конкретно - что это за ошибка такая и что она обозначает(вообще,абстрактно - а не в моем приложении).
Дошли уже до 100% кода - всеравно ведь не ответит никто по существу...=))


sniknik   (2005-10-17 15:18:00) [15]

> Я то с дуру подумал что тут есть люди которые могут помочь с проблемой...
это ты правильно подумал. тут есть люди которые могут помочь с проблемой... только им тоже в свою очередь чтото нужно.
(ну к примеру я не буду решать кросворд где за каждой фразой/вопросом придется дозваниваться главному редактору/или по одному вопросу в день публикуют/и т.д. любое ограничение которое мне не нравится)

> собсно никто даже не показал где я неправ...
собственно не напрягаясь на поиск вижу 2 таких поста, где говорится в "чем" ты не прав. а вот насчет "где", это сложнее, это надо знать адрес. впрочем есть универсальный "в 17-й строке", только он мало кому помогает.


Joy   (2005-10-17 15:01:00) [16]

Ах ну раз потрепаться - тогда конечно =) хотя помоему тут есть отдельный форум для этого...?
Я то с дуру подумал что тут есть люди которые могут помочь с проблемой...
и ни из кого ничего не выбивал - собсно никто даже не показал где я неправ...
ну чтож...все на ошибках учимся =)
Спасибо за "приятное" общение =)


sniknik   (2005-10-17 14:52:00) [17]

> Может обсудим еще и стиль программирования мой - как я переменные и константы именую,
стиль не надо а вот константы и переменые важны, т.к. от них глюк может зависеть...

> тут как раз надо строку -ClassName
извини не обратил внимания, что функция другая. но все одно на имя класса строка с гуидом тоже непохожа (будет ошибка о ненайдености класса)

> если действительно хочешь помочь - покажи пример который 100% работает у тебя - я проверю у себя и буду очень
>  благодарен если это заработает...
с чего решил, что я хочу помоч? никогда не хотел и сейчас не хочу. для меня форум это место общения + поиск нового и интересного + решение "кросвордов" + сам не знаю чего но это тоже для меня. (эгоист... :-\ )
а помошь вторична, это побочный продукт. как таковой цели помочь тебе, у меня нет (да в общемто наверное ни у кого нет...).

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

кстати 100% рабочий вариант вовсе не сложно найти. гораздо проще чем "выбиваеть" из форумчан несчастную строчку...


Joy   (2005-10-17 14:18:00) [18]

> так и пишеш? это неверная запись, CreateOleObject функция, и результат ее работы ты теряеш
Блин! Ну не надо прикапываться к словам то теперь! =(
Может обсудим еще и стиль программирования мой - как я переменные и константы именую, какие отступы делаю?
в данном случае не играет роли функция это или нет - я всеравно не получаю её результат в_данном_конкретном_случае - во время выполнения этих ф-ий генерируется исключение EOleSysError и его ловит дебаггер...
естественно в рабочем приложении будет уже и результат сохраняться...

> а во втором случае еще и несовпадение типов, гуид это не строка
тут как раз надо строку -ClassName (или гуид в виде строки - но тут да-это может быть идеологически неправильно - хотя опять же гуид он же обязан быть уникальным для каждого конкретного объекта на сколько я знаю)

если действительно хочешь помочь - покажи пример который 100% работает у тебя - я проверю у себя и буду очень благодарен если это заработает...

palva ©   (17.10.05 12:54) [14]
CreateOleObject('DAO.DBEngine.35') и CreateOleObject('{00000010-0000-0010-8000-00AA006D2EA4}') - это практически синоним - можешь залезть в реестр и поискать по 'DAO.DBEngine.35'
Ошибка выдается и в том и в другом случае...

Собсно вопрос был вообще - в каких условиях и по какой причине может происходить исключение  "Класс не лицензирован для использования".


sniknik   (2005-10-17 13:23:00) [19]

Joy   (17.10.05 12:16) [13]
> так вот как раз на вызове
> CreateComObject(CLASS_DBEngine)
> или
> CreateOleObject('{00000010-0000-0010-8000-00AA006D2EA4}')
так и пишеш? это неверная запись, CreateOleObject функция, и результат ее работы ты теряеш. а во втором случае еще и несовпадение типов, гуид это не строка.
впрочем ошибка по этому поводу будет выдаваться другие. поэтому вывод -  за фантазию по сочинению 5, за все остальное 2 с минусом.

palva ©   (17.10.05 12:54) [14]
> а какие-то циферки в реестре искать - это круто
их не надо искать, они генерятся при создании модуля ...tlb.pas из сом обьекта автоматом. и даже "обертку" в компонент делает при желании (галочку там при импорте не снимать и все).


palva   (2005-10-17 12:54:00) [20]

Я обычно делаю
CreateOleObject('DAO.DBEngine.35')
а какие-то циферки в реестре искать - это круто


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо