базы

ActiveX, .NET, DLL
Ответить
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

базы

Сообщение Artem.spb »

поделитесь, кто-чем с базами разговаривает?
DB-тулкит совсем глючный.
недавно пообщался через ADO, но там тоже были странности с реестром, это уже глюки винды (разные копии реестра разным программам подсовывает), но всё же не хочется снова натыкаться на такие грабли.
может, есть ещё какие удобные инструменты?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: базы

Сообщение Borjomy_1 »

А причем тут реестр и какие его копии? Вся конфигурация соединения через udl файлы производится. Может, я конечно, не догоняю, но вы как-то слишком глубоко лезете, что называется, плодите лишние сущности. И если надо с разными СУБД общаться, то альтернатив кроме ADO нет. Единственный, кроме Citadel СУБД, драйвер под :labview: знаю только для MySQL.
AlexanderKonoval
developer
developer
Сообщения: 257
Зарегистрирован: 03 янв 2014, 19:37
Версия LabVIEW: 2016
Откуда: Украина, Киев
Контактная информация:

Re: базы

Сообщение AlexanderKonoval »

мы работаем с MongoDB, к ней есть C# инструментарий от разработчика со всеми проистекающими. Правда, она не совсем "привычная".
колдооооовствооооо! (С)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: базы

Сообщение Artem.spb »

Borjomy_1 писал(а):А причем тут реестр и какие его копии?
это вопрос к авторам адо и винды
Вся конфигурация соединения через udl файлы производится. Может, я конечно, не догоняю, но вы как-то слишком глубоко лезете, что называется, плодите лишние сущности.
я бы не лез туда без лишней необходимости.
запуская прогу на свежей машине. "егог", говорит.
смотрю источник ошибки - в реестре копается, и ошибка "нет нужного ключа реестра".
а реестры - это уже приколы винды. она разным потребителям даёт разные копии. я регедитом смотрю реестр: ключ на самом деле присутствует.
некоторыми непонятными плясками с бубном проблема решилась, но всё же хочется без плясок.
И если надо с разными СУБД общаться, то альтернатив кроме ADO нет. Единственный, кроме Citadel СУБД, драйвер под :labview: знаю только для MySQL.
собственно сиквел и нужен. что за драйвер?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: базы

Сообщение Borjomy_1 »

Artem.spb, http://labviewportal.org/viewtopic.php? ... 323#p44310
Я потом дорабатывал его, исправляя некоторые ошибки и для работы под Labview RT
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: базы

Сообщение dadreamer »

Artem.spb писал(а):ошибка "нет нужного ключа реестра".
Artem.spb писал(а):я регедитом смотрю реестр: ключ на самом деле присутствует.
Ну, здесь два варианта возможно:
1) у проги не хватает прав на чтение определённой ветки реестра; это частое явление на Висте/7/8 при запуске из-под ограниченной учётки, либо читается такая ветка, которая доступна только аккаунту System, но такое редко бывает.
2) прога 32-битная и запущена на Win x64; в этом случае для некоторых веток реестра выполняется редирект на 32-битную версию, подробнее здесь - прога должна это учитывать, указывая флаг KEY_WOW64_64KEY при необходимости, например:
function GetProgramFilesDir: string;
var reg: TRegistry;
begin
reg := TRegistry.Create(KEY_ALL_ACCESS or KEY_WOW64_64KEY);
try
reg.RootKey := HKEY_LOCAL_MACHINE;
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion', False);
if IAmIn64Bits then
Result := reg.ReadString('ProgramW6432Dir')
else
Result := reg.ReadString('ProgramFilesDir');
finally
reg.Free;
end;
end;
Artem.spb

Activity Автор
professor
professor
Сообщения: 3391
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: базы

Сообщение Artem.spb »

спасибо, полезная информация.
проблема была именно в ситуации 32/64.
Ответить

Вернуться в «Коммуникация с приложениями»