Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.27;
Скачать: CL | DM;

Вниз

Изменить LANGDRIVER для DBase   Найти похожие ветки 

 
lightix   (2007-03-13 09:45) [0]

Как для всех наборов данных (таблицы DBASE) приложения изменить LANGDRIVER, не меняя при этом настройки в BDE, т.е. чтобы все остальные приложения работали с стандартным LANGDRIVER?

В настройках BDE для DBASE указано LANGDRIVER=dBASE RUS cp866 , а мне нужно, чтобы мое приложение работало с LANGDRIVER="ascii" ANSI, и при этом все остальные приложения работали с dBASE RUS cp866. Алиасы создавать нельзя.

Пробовал два способа:
1. На форме поставил TDatabase (DriverName=STANDART), прописал такие параметры:
DEFAULT DRIVER=DBASE
LANGDRIVER=DBWINUS0
У всех наборов данных указал его в качестве DatabaseName.
Кодировка не поменялась.

2. Перед открытием набора данных такой код:
var List:TStrings;
.......
BEGIN
.......
 List.Add ( "LANGDRIVER=DBWINUS0 ");
.......
 Session.ModifyDriver( "DBASE", List );
.......
END;

В таком случае меняются и настройки в БДЕ.


 
ЮЮ ©   (2007-03-13 10:10) [1]

> Алиасы создавать нельзя.

Алиасы можно создавать и на время работы приложениия. см. TSession.ConfigMode

Кстати и в топике о ModifyDriver об этом тоже говорится:


A session’s ConfigMode property determines whether a driver is local to the session, or is available to all applications in the BDE persistent store as long as any BDE clients are active. To save a driver permanently, call the SaveConfigFile method before ending the session.


 
lightix   (2007-03-13 10:30) [2]

Странно, но почему-то у меня сохраняются настройки в конфиге, хотя SaveConfigFile не вызываю...
Перепробовал все ConfigMode


 
lightix   (2007-03-13 10:38) [3]

Может быть это потому, что я работаю с default session?


 
lightix   (2007-03-13 11:11) [4]

Закрыл-открыл IDE, теперь в конфиге не сохраняется....
Но запускаю 2 приложения - одно должно использовать кодировку из конфига (866), а другое - использовать ANSI с помощью ModifyDriver.
Так вот, после ModifyDriver, первое приложение уже тоже с кодировкой ANSI....

Как сделать так, чтобы смену кодировки не видели другие приложения??


 
lightix   (2007-03-13 11:50) [5]

И еще вопрос - если в приложении нужно будет создать 2 таблицы с разными кодировками, то как указать что для одной используй одну кодировку, для другой другую?
Пробовал с разными TSession для каждой таблицы - кодировка выставляется один раз , а второй раз уже не изменяется


 
lightix   (2007-03-13 11:50) [6]

И еще вопрос - если в приложении нужно будет создать 2 таблицы с разными кодировками, то как указать что для одной используй одну кодировку, для другой другую?
Пробовал с разными TSession для каждой таблицы - кодировка выставляется один раз , а второй раз уже не изменяется


 
ЮЮ ©   (2007-03-13 12:10) [7]

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

Если все-таки посмотреть в сторону "виртуальных" алиасов и там устанавливать LANGDRIVER, а не менять глобальный LANGDRIVER для DBASE ?

> если в приложении нужно будет создать 2 таблицы с разными
> кодировками

Кому, интересно, такое нужно?
Создавать две TDataBase и использовать для разных таблиц разные базы. Вот только запросом из двух таблиц сразу вряд ли что получишь путное.


 
Desdechado ©   (2007-03-13 12:22) [8]

http://delphimaster.net/view/2-1173690419/


 
lightix   (2007-03-13 13:13) [9]


> ЮЮ ©   (13.03.07 12:10) [7]
> >Если все-таки посмотреть в сторону "виртуальных"
> алиасов и там устанавливать LANGDRIVER, а не менять глобальный
> LANGDRIVER для DBASE ?

А как менять у алиаса LANGDRIVER?

> если в приложении нужно будет создать
> 2 таблицы с разными > кодировкамиКому, интересно, такое
> нужно?Создавать две TDataBase и использовать для разных
> таблиц разные базы. Вот только запросом из двух таблиц сразу
> вряд ли что получишь путное.

Нужен не запрос из двух таблиц. В общем ПО работает на DBASE с кодировкой 866, а на вход могут прийти DBF как 866 так и ANSI, присылают каждый раз как захотят, и таблицы то DBASE то FOXPRO. Приходится каждый раз брать входной файл и вручную перекодировать, сохранять в "своем формате", и только тогда уже подсовывать его ПО. Хотелось бы, чтобы входной файл подхватывался автоматически.


 
ЮЮ ©   (2007-03-13 13:27) [10]

> А как менять у алиаса LANGDRIVER?

Точно, у STANDARD c параметрами не густо, т.е. он как раз и работает, похоже с тем, что в NATIVE/DBASE стоит :(


 
lightix   (2007-03-13 13:34) [11]


> Точно, у STANDARD c параметрами не густо, т.е. он как раз
> и работает, похоже с тем, что в NATIVE/DBASE стоит :(

Вот и я о том же... :(


 
Desdechado ©   (2007-03-13 13:45) [12]

> Нужен не запрос из двух таблиц
Ты вычитал совсем не то, что нужно. И пропустил нужное. Tsession - там настройка LangDriver.

Но, судя по всему, тебе просто придется читать байт кодировки из заголовка DBF и выставлять нужную кодировку в своем Session.


 
lightix   (2007-03-13 13:49) [13]


> Desdechado ©   (13.03.07 13:45) [12]
>  Tsession - там настройка LangDriver.Но, судя по всему, тебе просто >придется читать  байт кодировки из заголовка DBF и выставлять нужную >кодировку  в своем Session.

Не выставляется! Верней выставляется один раз, а потом уже не изменяется больше. TSession разные для двух таблиц.



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

Текущий архив: 2007.05.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1178534632
Kostafey
2007-05-07 14:43
2007.05.27
Использование результата запроса Select в Update


15-1178004231
antonn
2007-05-01 11:23
2007.05.27
хранение постов форума


15-1177567615
MeF Dei Corvi
2007-04-26 10:06
2007.05.27
Задача: WebBrowser и воровство


15-1177426962
Kolan
2007-04-24 19:02
2007.05.27
Как по английски «аппаратно-программный комплекс»?


2-1178611758
Gentos
2007-05-08 12:09
2007.05.27
как в TEdit переместить курсор (вертикальную палку) в конец стр





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский