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

Вниз

Создание базы Interbase с определенной кодировкой   Найти похожие ветки 

 
Grihan   (2004-01-12 09:49) [0]

Создаю базу InterBase в рантайме следующим образом:
ibdbBase.Params.Clear;
ibdbBase.Params.Add("USER "SYSDBA"");
ibdbBase.Params.Add("PASSWORD "masterkey"");
ibdbBase.Params.Add("PAGE_SIZE 4096");
ibdbBase.CreateDatabase;
где
ibdbBase: TIBDatabase;
Мне необходимо создать базу с кодировкой win1251. Подскажите пожалуйста, какой для этого должен быть параметр?


 
Johnmen   (2004-01-12 10:08) [1]

lc_ctype=WIN1251


 
Johnmen   (2004-01-12 10:16) [2]

А вообще-то у тебя все неправильно.
Сднлай даблклик на IBDatabase и прописывай/смотри...


 
Grihan   (2004-01-12 10:26) [3]

в том то и дело, что если пишу:
Base.Params.Clear;
Base.Params.Add("user_name=SYSDBA");
Base.Params.Add("password=masterkey");
Base.Connected := True;
то это работает только для коннекта, а не для создания.
два раза кликнул на IBDatabase - посмотрел, параметры для коннекта, но все равно попробовал - ошибка, типа логин не тот...
пробовал lc_ctype=WIN1251 - не работает - ошибка...


 
Johnmen   (2004-01-12 10:51) [4]

Д, я слегка не про то...:)
Надо так :

USER "SYSDBA"
PASSWORD "masterkey"
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251


 
Grihan   (2004-01-12 10:55) [5]

и так я пробовал - ошибка та же, что и когда задаешь lc_ctype=WIN1251:
"Dynamic SQL error: SQL error code = -104
Token unknown - line 1, char 46
SYSDBA""


 
Johnmen   (2004-01-12 11:11) [6]

Должны быть двойные кавычки, а не двойные апострофы...
-> " а не -> ""


 
Sergey13   (2004-01-12 11:17) [7]

ОФ ТОПИК, сори.
Всегда меня занимал вопрос. А зачем создавать базы из программы? Какой в этом глубинный смысл - писать код для одноразовой работы?
Неужели так часто люди пишут аналоги ИБЭксперта (это потому что частенько наблюдаю ветки с сабжем)?


 
Johnmen   (2004-01-12 11:35) [8]

>Grihan (12.01.04 10:55)

Ещё одно пояснение. Если диалект 3, то не двойные кавычки, а одиночные апострофы.


 
Grihan   (2004-01-12 11:38) [9]

во-первых, не понял я, где должны быть кавычки?
во-вторых, базы из программы необходимо создавать например вот для чего - на другом конце росиии сидит ламер с базой, которую надо переконвертить, он не умеет пользоваться IBExpert - ом...
возможно и найдется другое решение - не программно, но я считаю, раз мы программисты, то и должны предусмотреть элегантное и простое для пользователя решение. И вообще - это дело принципа! Как то не полюдски - базу одной прогой, конвертация - другой, просмотр - третьей. Нехорошо...


 
Sergey13   (2004-01-12 11:53) [10]

2Grihan (12.01.04 11:38) [9]
Обычно такие вещи делаются через скрипт, который запускается однократно через какой-нить BAT.
А если твой юзер-ламер после месяца работы вдруг "нечаянно" (или евоный "друг" "чаянно" 8-)нажмет на создание базы и похерит месяц-другой своей работы?

>Как то не полюдски - базу одной прогой, конвертация - другой, просмотр - третьей. Нехорошо...
А по моему - только так, и больше никак. Но, это дело вкуса, и я свой офтопик прекращаю. Еще раз - сори.


 
Johnmen   (2004-01-12 11:53) [11]

Кавычки для имени пользователя и пароля.


 
Grihan   (2004-01-12 11:54) [12]

а как решить проблему с кавычками? что написать вместо строки
ibdbBase.Params.Add("USER "SYSDBA"");
?


 
Grihan   (2004-01-12 11:58) [13]

спасибо Johnmen - все получилось!


 
Grihan   (2004-01-12 12:11) [14]

ну блин, теперь другая проблема:
ibtDicti.Active := False;
ibtDicti.TableName := "DICTI";
ibtDicti.FieldDefs.Clear;
ibtDicti.FieldDefs.Add("ISN", ftInteger, 0, True);
ibtDicti.FieldDefs.Add("PARISN", ftInteger, 0, True);
ibtDicti.FieldDefs.Add("SNAME", ftString, 15, False);
ibtDicti.FieldDefs.Add("FNAME", ftString, 15, False);
ibtDicti.IndexDefs.Clear;
ibtDicti.IndexDefs.Add("", "ISN", [ixPrimary, ixUnique]);
ibtDicti.AppendRecord([1, 0, "Адреса", "Типы адресов"]);
после последней строчки вылиться, хотя раньше, до указания кодировка все работало
где
ibtDicti: TIBTable;


 
Grihan   (2004-01-12 12:14) [15]

ibtDicti.CreateTable;
ibtDicti.Open;
там тоже есть


 
Johnmen   (2004-01-12 12:33) [16]

>Grihan

Хочешь, следуй, не хочешь - не следуй, но вот совет:
Полностью откажись от TIBTable, как от атавизма.
Используй TIBDataSet !


 
Grihan   (2004-01-12 13:22) [17]

да и при использовании и TIBSQL возникает та же ошибка. Я проверил, строчки на английском он TIBTable вставляет нормально. А на русском и TIBSQL валиться.


 
Grihan   (2004-01-12 13:24) [18]

Блин, я лоханулся - при создании указал кодировку 1251, а при коннекте 1252 - вот все а валилось...


 
Vlad   (2004-01-12 13:28) [19]

Grihan, признавайся, откудова структуру таблицы DICTI стырил ? :-)



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

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

Наверх





Память: 0.48 MB
Время: 0.029 c
3-16082
Nicknaz
2004-01-11 17:11
2004.02.06
Сравнение дат


1-16332
Andrey_Shalin
2004-01-25 05:44
2004.02.06
Потоки


11-16203
Sergey
2003-05-19 09:24
2004.02.06
exptlntf.dcu


14-16689
goga
2004-01-16 23:55
2004.02.06
поиск работы


3-16131
Andrey V.
2004-01-15 14:49
2004.02.06
Соединение с базой ИБ.





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