![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить наличие Embedded версий баз?
Piter © (2004-08-10 15:23:00)Вот моя программа использует IB/FB базу. Компоненты IB в дельфе сами загружают необходимую gds32.dll - но она может быть как от сервера Ib/FB, так и локальная Embedded (Firebird Embedded, Yaffi embedded). Программе в общем все равно (обрщение идет к локальной базе).
Но дело в том, что у серверной gds32.dll есть аутентификация, а у локальной нету. Так вот вопрос - а как определить какая gds32.dll используется - серверный вариант или локальный? Это для того, чтобы выводить или не выводить окошко запроса логина/пароля
Alexandr (2004-08-16 07:57:00) [1]именно так. Проверкой с username/password по умолчанию.
остальные способы кривые
Vemer (2004-08-15 11:55:00) [2]А если так;
Yaffil Personal вроде имя/пароль не проверяет.. Генеришь случайные, коннектишся к бвзе.. Если успешно - значит 1 вывод, если нет - другой..
Vlad (2004-08-14 14:26:00) [3]>Piter © (13.08.04 22:57) [45]
Вот сижу и думаю: а нафига оно мне надо? Кроме IE, другими клиентами я не пользусь, и не собираюсь.
В тоже время сижу тут и пытаюсь тебя в чем-то убедить. Нафига?
Ну не хочешь - не пользуйся Yaffil Personal. Мне-то по барабану.
А если заинтересовало - возми, скачай и проверь, там делов-то на 5 минут.
p.s. Твой пример [45] работает как с collate так и без него. Главное не забыть знак '%' в конце.
VID (2004-08-14 00:53:00) [4]Свою ошибку надо уметь признавать...
Короче, я хочу сказать, что мысль, изложенная мною в посте VID © (10.08.04 20:14) [22] (типа клиент и база на одной машине, а обслуживающий сервер - на другой) - это полная чушь.
Чушь не в том плане что возникает куча лишнего траффика по сети (сеть то локальная, потерпит), тем более что не должно быть особо много траффика. Чушь в том, что насколько мне стало известно GDS-сервера, не поддерживают такой вариант коннекта: т.е. если даже на компе, где находятся клиент и база я расшарю папку с базой, допустим назову шару DBShare, то всё равно нет такого варианта коннекта что бы указать GDS-серверу что надо работать именно с этой базой, т.е. вариант
"Server_comp_addr:\\my_machine\dbshare\db.gds" не прокатит.
Однако мне также стало известно, что можно на машине где установлен клиент и находится база , можно создать сетевой диск, и скопировать туда эту базу, т.е. например пусть сетевой диск называется H, тогда строка коннекта будет такова:
"server_comp_addr:H:\db.gds". Я то на практике этот вариант не проверял, но говорят что работает, хотя это конечно уже большое извращение и так делать не следует.
Piter (2004-08-13 22:57:00) [5]ну а как насчет вот такого запроса:
SELECT * FROM TableName Where Upper(FieldName COLLATE PXW_CYRL) like :param
Будет он корректно выполняться? Будут ли найдены все записи в текстовом поле FieldName независисмо от регистра? И неужели без указанния COLLATE они также будут найдены независимо от регистра?
P.S. К тому же, ты точно уверен, что работает у тебя именно Yaffi personal? Вдруг у тебя еще и сервер Yaffi запущен и программа испольует именно его? Для чистоты эксперимента нужно удалить все Interbase похожие сервера...
Vlad (2004-08-13 10:09:00) [6]Ну и что? проверил.
select upper(name) from MyTable
работает без всяких collate.
Пишем collate - результат тот же самый что и без него, т.е. все русские и нерусские буквы в верхнем регистре :)
Piter (2004-08-13 02:17:00) [7]Vlad © (12.08.04 16:24) [42]
Но вобще, если базу и все таблицы создавать в кодировке win1251, тогда в SQL запросах не нужно явно указывать COLLATE
в каких запросах? Если используется UPPERCASE - как это не нужно?!
Чтобы до конца проверить, попробуй в запросе сделать UPPERCASE с нужным COLLATE
Vlad (2004-08-12 16:24:00) [8]
> Piter © (12.08.04 16:04) [41]
Да, поддерживает, только что специально попробовал.
Но вобще, если базу и все таблицы создавать в кодировке win1251, тогда в SQL запросах не нужно явно указывать COLLATE, так во всяком случае на YaP
Piter (2004-08-12 16:04:00) [9]а это единственная gds32.dll точно COLLATE PXW_CYRL поддерживает?
Vlad (2004-08-12 12:53:00) [10]Да нет у YaP никакой полной/неполной поставки.
Когда скачиваешь что-то там "сборка классик-супер-персонал", там есть папка Yaffil.em, в которой он и лежит.
То есть всего три библиотеки: gds32, ib_util, msvcr70
Все что надо, так это взять gds32 и сунуть в одну папку с твоей программой (ну или какую нибудь системную).
Piter (2004-08-11 19:30:00) [11]Vlad © (11.08.04 17:34) [38]
Имеется ввиду только Yaffil Personal
там в полной поставке подкаталог INTL есть?
Vlad (2004-08-11 17:34:00) [12]
> Vlad © (11.08.04 17:32) [37]
> В любом случае, те дополнительные библиотеки не влияют на
> collate
Имеется ввиду только Yaffil Personal
Vlad (2004-08-11 17:32:00) [13]
> Piter © (11.08.04 16:57) [36]
у меня с одной gds32 работает с русскими буквами и без явного collate, достаточно при создании базы указать кодировку win1251
В любом случае, те дополнительные библиотеки не влияют на collate
Piter (2004-08-11 16:57:00) [14]Vlad © (11.08.04 10:31) [34]
в Yaffil Personal для работы требуется только ОДНА библиотека gds32.dll
А ты пробовал, всего лишь с одной gds32.dll collate работает?
-SeM- (2004-08-11 13:41:00) [15]Версию сервера можно получить через API isc_database_info с isc_info_version
Vlad (2004-08-11 10:31:00) [16]
> Piter © (10.08.04 19:50) [20]
>
>
> Embedded версии это не только одна библиотека, как ошибочно
> многие думают, их там несколько.
в Yaffil Personal для работы требуется только ОДНА библиотека gds32.dll. Все остальное - это библиотека с UDF(ее можно не использовать или если очень надо, написать свою - меньших размеров) и менеджер памяти msvcr70.dll, который тоже нафиг не нужен, если ты не используешь UDF, или используешь, но не выделяешь в них память собственноручно.
Piter (2004-08-11 02:18:00) [17]В базе хранится также избранное и вообще данные, относящиеся к конкретному пользователю.
К тому же придется предусматривать ситуации одновременной работы с одними данными разными пользователями. Могу попариться, только вот ради чего...
sniknik (2004-08-11 01:34:00) [18]> И вообще, где это может применяться? Дома? Это бред, дома все будет локально.
если пишеш для дома для семьи, то это бери ембедед фаребирд (как уже советовали) и не парься, он сам определит и сделает подключение к серверу если он есть.
> В какой-то организации?
будеш смеятся именно так и подумал, в организации (мои так и работают).
> от некоего Magic Forum
а, ... вот теперь становится более менее ясно. ;о)
> Хех, не туда вы смотрите...
ага. куда повернули туда и смотрим (а поворот определяется вопросом и инфой к нему)
на accecc не хочеш взглянуть? и локальный и несколько подключений позволяет.
> А если другому человеку захочется использовать клиент? Он что, должен использовать ту же базу?
конечно! тогда ему не придется повторно качать то что первый уже скачал. а вообще про настройки тоже уже было. можно к примеру сделать авторизацию до конекта а по ней определять сохраненный профиль этого человека, логин и пароль к базе и путь и название базы ханить в профиле. чем не вариант? а если так, то почему нельзя для сервера (если он есть и админ добрый) предусмотреть многопользовательность? тогда на 10 василиев пупкиных будет всего 1 скачка данных с сайта! (экономится 9/10 трафика)
Piter (2004-08-11 00:37:00) [19]sniknik © (11.08.04 0:14) [28]
все наоборот. база лежит рядом на машине с сервером
а, вот так. Ты думаешь это VID предлагал, значит я его не правильно понял.
sniknik © (11.08.04 0:14) [28]
есть сервер, подключаешся к нему где бы он не был и работаеш с той базой что на сервере
а откуда она там возьмется? Это значит пользователь должен скопировать базу на сервер, да еще и по тому же пути, что он установил программу на свой локальный компьютер? А если локально программа на C, а базы на сервере хранятся на D: ?
И вообще, где это может применяться? Дома? Это бред, дома все будет локально. В какой-то организации? И что, есть надежда, что администратор базы разрешит поместить на сервер какую-то базы от некоего Magic Forum, чтобы Васе Пупкину было удобнее по инету лазить на delphimaster?!
Да к тому же он еще и пароль от SYSDBA должен будет сказать. Хех, не туда вы смотрите...
А если другому человеку захочется использовать клиент? Он что, должен использовать ту же базу?
sniknik (2004-08-11 00:27:00) [20]> ...
> Ну что же.. учту
ты както все очень по своему понял... покажи где тебе такое кто говорил?
> вероятно ты не понял постановку задачи.
наверняка. ;о) наверное потому что прочитал только последние посты...
но всетаки понял что
> я надеюсь ты отличаешь понятия GDS-Server и GDS-DataBase
ты говориш, и подразумеваеш, базу. а тебе отвечают о сервере.