Вниз
Скачать: CL | DM;

Создание базы 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.021 c
1-16237
webpauk
2004-01-26 13:57
2004.02.06
TaskBar


6-16573
Micah'GF
2003-11-29 19:21
2004.02.06
Правильная посделовательность соединения


8-16514
NikNik
2003-09-21 21:52
2004.02.06
DirectSound


9-16014
lokid7
2003-07-21 12:07
2004.02.06
Помогите мне в D3D


6-16549
Zaratustra
2003-12-03 13:14
2004.02.06
Простая работа с сокетами




   Наверх