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

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

Как определить наличие Embedded версий баз?


Страницы:   1 2 3

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
ты говориш, и подразумеваеш, базу. а тебе отвечают о сервере.


Страницы:   1 2 3

Наверх

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