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

Вниз

Изменить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.051 c
15-1177679014
SergeyLTD
2007-04-27 17:03
2007.05.27
Помогите, пожалуйста, с лабораторными работами


1-1175337817
KOSik
2007-03-31 14:43
2007.05.27
watches выдает не то что должно быть по коду


15-1177408807
antonn.pda
2007-04-24 14:00
2007.05.27
медиаплеер в win2k


11-1160134748
Thaddy
2006-10-06 15:39
2007.05.27
tip to reduce memory when inactive.


6-1164042005
IgneouS
2006-11-20 20:00
2007.05.27
Что лучше?





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