Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Вниз

Не могу записать библиотеку   Найти похожие ветки 

 
Tornado   (2010-01-12 10:21) [0]

Есть программа, с нее идет обмен данными с сервером Firebird, по локальной сети. Для работы с этис сервером используется библиотека GDS32.DLL, которая сидит в system32. Я включил в состав дистрибутива эту библиотеку, но если пользователь на компютере не администратор (у нас такое сплошь и рядом) - то инсталлятор (Inno Setup использую) не может записать эту библиотеку в system32. А без нее не работает программа, пишет не могу загрузить GDS32.DLL при попытке что-либо отправить на сервер (ну допустим запрос на вставку или выборку). Вся работа идет через компоненты FIBPlus.

Что можно сделать?


 
Медвежонок Пятачок ©   (2010-01-12 10:29) [1]

Ставить программу из под администратора.

У вас же именно для этого рядовые пользователи лишены админских прав.
Они не должны ставить софт.


 
Tornado   (2010-01-12 10:32) [2]


> Медвежонок Пятачок ©   (12.01.10 10:29) [1]

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


 
Медвежонок Пятачок ©   (2010-01-12 10:37) [3]

Выход конечно, но пользователей очень много а администраторов очень мало ))

Ну и какого тогда вы спрашивается сами себе гемор создали?
Чего ради у вас пользователи не имеют прав?


 
Медвежонок Пятачок ©   (2010-01-12 10:40) [4]

Пока админ дойдет до нужного юзера

а админ у вас слышал про то что у вас есть сеть и что по сети можно копировать файлы если имеешь нужные полномочия?

или он у вас просто любит ходить по пользователям?


 
Медвежонок Пятачок ©   (2010-01-12 10:42) [5]

то инсталлятор (Inno Setup использую) не может записать эту библиотеку в system32

пусть записывает ее в папку с программой


 
ANB   (2010-01-12 10:50) [6]


> пусть записывает ее в папку с программой

И это будет лучшим вариантом.


 
Медвежонок Пятачок ©   (2010-01-12 10:58) [7]

И это будет лучшим вариантом.

<Цитата>

Если не считать что это извращение самого смысла длл.
:)
Билгейц зачем придумал это? Лежит один код в одном месте. Все юзают.


 
Tornado   (2010-01-12 11:07) [8]


> Медвежонок Пятачок ©   (12.01.10 10:42) [5]

Как же программа найдет его потом? Ведь она по всей видимости ищет его именно в system32?


 
Медвежонок Пятачок ©   (2010-01-12 11:09) [9]

Ведь она по всей видимости ищет его именно в system32?
Она не ищет ничего.
длл ищет виноуз.


 
Sergey13 ©   (2010-01-12 11:17) [10]

Может через домен можно как всем (или нужным) пользователям вкрячить ее в нужное место? И убрать из инсталятора.


 
Tornado   (2010-01-12 11:23) [11]


> Медвежонок Пятачок ©   (12.01.10 11:09) [9]

да я понял, не так выразился....windows найдет эту DLL если я положу ее в каталог с программой?


 
turbouser ©   (2010-01-12 11:35) [12]


> Tornado   (12.01.10 11:07) [8]


> Как же программа найдет его потом?

А разве в фибах нельзя указать путь к библиотеке? TpFIBDatabase.LibraryName для кого придумали?


 
Tornado   (2010-01-12 11:57) [13]


> turbouser ©   (12.01.10 11:35) [12]

О точно, про это я и забыл совсем, спасибо!


 
Медвежонок Пятачок ©   (2010-01-12 12:18) [14]

О точно, про это я и забыл совсем, спасибо!

Вспомнишь, когда встретится машина на которой софт ставился из под админа и длл легла в system32


 
Tornado   (2010-01-12 12:30) [15]


> Медвежонок Пятачок ©   (12.01.10 12:18) [14]

И что будет?


 
Медвежонок Пятачок ©   (2010-01-12 12:54) [16]

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


 
turbouser ©   (2010-01-12 12:56) [17]


> Медвежонок Пятачок ©   (12.01.10 12:54) [16]

if filexists()


 
Медвежонок Пятачок ©   (2010-01-12 13:13) [18]

if filexists()

И чего дальше?


 
turbouser ©   (2010-01-12 13:17) [19]


> Медвежонок Пятачок ©   (12.01.10 13:13) [18]

:)
var S:string;
S:= ExtractFilePat(Application.ExeName)+"GDS32.DLL";
with pFIBDatabase do
if fileexists(S) then
LibraryName := S else
LibraryName := "GDS32.DLL";


 
Медвежонок Пятачок ©   (2010-01-12 13:28) [20]

И в чем прикол этого кода?

в параметрах коннекшена скажем написано "gds32.dll"

либа может лежать либо в систем32 либо в папке с программой (две версии инсталлятора)

что именно не будет работать при отсутствиии мегакода из [19] ?


 
Anatoly Podgoretsky ©   (2010-01-12 15:09) [21]

> Tornado  (12.01.2010 10:21:00)  [0]

Сделать как положено, установка программ прерогатива администратора.


 
Anatoly Podgoretsky ©   (2010-01-12 15:11) [22]

> Tornado  (12.01.2010 10:32:02)  [2]

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


 
Anatoly Podgoretsky ©   (2010-01-12 15:13) [23]

> ANB  (12.01.2010 10:50:06)  [6]

Лучшим вариантом будет инсталятор в виде .msi и централизованая установка через политики.


 
turbouser ©   (2010-01-12 16:19) [24]


> Медвежонок Пятачок ©   (12.01.10 13:28) [20]

Вообще-то в system32 может лежать совсем не той версии gds32..


 
Медвежонок Пятачок ©   (2010-01-12 16:54) [25]

Вообще-то в system32 может лежать совсем не той версии gds32..

И как же FileExists может помочь в этой беде?


 
Виталий Панасенко(дом)   (2010-01-12 22:02) [26]

А вообще, их (gds32.dll)может быть масса... Вот тут, кто первый, тот и папа!..:-)
А вообще, действительно непонятно, набуя тогда админы? Или ты сам из них?


 
Tornado   (2010-01-13 08:37) [27]


> Медвежонок Пятачок ©   (12.01.10 12:54) [16]

Она там будет лежать )))


 
Tornado   (2010-01-13 08:41) [28]


> Виталий Панасенко(дом)   (12.01.10 22:02) [26]
Или ты сам из них?

Бог с тобой ))) Нет, я инсталлятор сделал просто и столкнулся с этой проблемой. Ну вообщем внимаю советам бывалых, отдал дистриб админам, пусть сами ставят ))


 
ANB   (2010-01-13 15:12) [29]


> Если не считать что это извращение самого смысла длл.
> :)
> Билгейц зачем придумал это? Лежит один код в одном месте.
>  Все юзают.

А Рихтер назвал эту идею плохой ("Ад DLL") :)


 
sniknik ©   (2010-01-13 17:04) [30]

> А Рихтер назвал эту идею плохой ("Ад DLL") :)
если бы оно работало так как задумывалось... 1 dll и все ее используют, а так как в этой ветке одна лежит в реестре, и каждая программа свою копию таскает, т.к. привязана к версии, или другим причинам, вод и получается ад, куча одноименных dll и ни с одной нормально не работает, в общем сами себе ад создаем...


 
Anatoly Podgoretsky ©   (2010-01-13 17:20) [31]

> ANB  (13.01.2010 15:12:29)  [29]

А другие идеи тоже не лучше


 
ANB   (2010-01-13 17:44) [32]


> А другие идеи тоже не лучше

Пишу толстые экзешники и не парюсь. DLL только для хуков.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.007 c
15-1305100982
KilkennyCat
2011-05-11 12:03
2011.08.28
Вопрос по html div и текст


15-1304851360
Palladin
2011-05-08 14:42
2011.08.28
Куда девать нечитабельные и старые CD/DVD ?


15-1304994305
IPranker
2011-05-10 06:25
2011.08.28
Скачать видео со станицы.


15-1304773902
картман
2011-05-07 17:11
2011.08.28
Господь меня услышал


3-1262553825
wipr
2010-01-04 00:23
2011.08.28
отмена удаления в таблицах DBF





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский