Форум: "Базы";
Текущий архив: 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