Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проинсталлировал FireBird 2.5 Beta.
 
Я себе пишу вроде мануала, чтобы была в будущем подсказка под рукой:
Прокоментируйте мои действия:
С isql.exe не разобрался,  
для создания базы данных и таблицы в ней, использовал IB/FB Development Studio.
 
Запустить IB/FB Development Studio
Войти в Редактор Баз Данных.
Создать новую базу данных
Указать сервер, указать путь к файлу
Открыть Базу Данных
Правая кнопка мыши - создать объект (новую таблицу)
Правая кнопка мыши - создать поле, если нужно добавить первичный ключ и автоинкремент (создать генератор)
 
----------------------------------------------------------------------------
Запустить Delphi2007
Создать новый проект
Из вкладки InterBase добавить на форму компонент TIBDatabase
Из вкладки InterBase добавить на форму компонент TIBTransaction
Из вкладки InterBase добавить на форму компонент TIBDataSet
Из вкладки Data Access добавить на форму компонент TDataSource
Из вкладки Data Controls добавить на форму компонент TDBGrid
 
----------------------------------------------------------------------------
Настройка компонента TIBDatabase:
В свойстве компонента DefaultTransaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) - вызвать Database Editor
Remote
localhost
TCP
ввести путь к файлу базы данных
USER: SYSDBA
PASSWORD: masterkey
Свойство компонента Connected =TRUE
 
----------------------------------------------------------------------------
Настройка компонента TIBTransaction:
В свойстве компонента DefaultDatabase: имя компонента TIBDatabase
Двойной клик по компоненту (или правая клавиша мыши) - вызвать Transaction Editor
Выбрать опцию Read Committed (для чтения и записи по подтвержением)
Свойство компонента Active =TRUE
 
----------------------------------------------------------------------------
Настройка компонента TIBDataSet:
В свойстве компонента Database: имя компонента TIBDatabase
В свойстве компонента Transaction: имя компонента TIBTransaction
Двойной клик по компоненту (или правая клавиша мыши) - вызвать DataSet Editor
Select Table Name: (доступны только при активных предыдущих компонентах)
Select Primary Keys (либо выбрать вручную автоинкрементное поле)
Update Fields: (рекомендуется снять выбор с автоинкрементного поля)
Нажать кнопку "Generate SQL"
Свойства компонента DeleteSQL,InsertSQL,ModifySQL,RefreshSQL автоматически заполнятся.
Выбрать свойство компонента SelectSQL в Object Inspector, вызвать CommandText Editor
Выбрать таблицу, ввести SQL: Select * from <TableName> (имя выбранной таблицы)
 
В свойстве компонента GeneratorField: выбрать имя генератора, выбрать поле, применить: On New Record
Свойство компонента Active =TRUE
 
----------------------------------------------------------------------------
Настройка компонента TDataSource:
В свойстве компонента DataSet: имя компонента TIBDataSet:
Свойство компонента Enable =TRUE
 
----------------------------------------------------------------------------
Настройка компонента TDBGrid:
В свойстве компонента DataSource: имя компонента TDataSource
Двойной клик по компоненту (или правая клавиша мыши) - вызвать Columns Editor
Если предыдущие компоненты активны (база данных подключена), то доступна кнопка "Добавить все поля" (Add All Fields)
В Дельфи, на вкладке Structure - компонент TDBGrid/Columns - выбрать столбец, задать его ширину в пикселях. Тем столбцам, которые не надо показывать - сделать Visible=FALSE (либо удалить из списка в столбцов в Columns Editor)
 
--------------------------------------------------------------------------------------------------------------------------
К сожалению, для информации у меня только книга Архангельского "Программирование в Delphi7" и интернет, поэтому будет много вопросов:
 
Вообщем, база данных подключилась.  В базе данных Character Set = UNICODE_FSS (хочу и на русском и на европейских языках писать)
Если ввожу в текстовые поля английские символы - всё нормально, если ввожу русские - выдает ошибку "malformed string".
 
Далее, хочу создать программку, в которой можно самому программно создавать таблицы с полями.
Программный код создания таблицы отсюда: http://ibase.ru/devinfo/ibx.htm
create table X
(id int not null,  
name varchar(30),
constraint PK_X primary key (id));
 
Мои вопросы - куда этот код вставлять? И как добавлять новые поля? Что это за ошибка "malformed string" (как от этого избавиться)?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 19:32 22-06-2009 | Исправлено: Kursist, 19:42 22-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist
 
По поводу ошибки "malformed string" почитайте здесь IBase

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 19:46 22-06-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
С isql.exe не разобрался,  
для создания базы данных и таблицы в ней, использовал IB/FB Development Studio.  


Цитата:
скачай лучше  
IBExpert
он на русском и для жителей бывшего СНГ бесплатен  



----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 20:31 22-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
volser
FireBird 2.5 Beta
Delphi2007
 
В компоненте IBDatabase обнаружил UTF8, а вот в  
А вот в IB/FB Development Studio в свойствах базы данных только можно выбрать - UNICODE_FSS (UTF8 не обнаружил).  
 
Как же быть?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:37 22-06-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Настройка компонента TIBDatabase:  

Не увидел, с какой кодировкой ты базу создавал и с какой кодировкой подключаешься.

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 20:39 22-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11

Цитата:
скачай лучше  IBExpert он на русском и для жителей бывшего СНГ бесплатен  

 
ОПА: (http://www.ibase.ru/unicode_faq.html)
IBExpert не является unicode-приложением
 
15th June 2009  
IBExpert new version with full Unicode support )) ХАРАШО!  
 
Добавлено:
Скачал IBExpert. Запустил. Создаю новую базу. Тест не работает - ругается!
user name и password у меня по дефолту (SYSDBA|masterkey)  и чего не так?
 
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
 
Server: Remote, ServerName: localhost, Protocol: TCP/IP, ServerVersion: FireBird 2.5
Database file: C:\myBD\BD3.fdb
Database Alias: localhost:C:\myBD\BD3.fdb
 
Test:
Attempting to connect to:
localhost:C:\myBD\BD3.fdb
 
Connecting... Failed!
------------------------------------
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
I/O error during "CreateFile (open)" operation for file "C:\MYBD\BD3.FDB".
Error while trying to open file.
The system cannot find the file specified. .
 
Attempting to connect to services manager... Passed!
 
Disconnecting from database... Passed!
 
Я так понимаю, что файла этого нет, а разве он его сам не создает?
 
----------------------------------------------------------------
С этим разобрался. Надо было сначала базу данных создать, а уже потом ее регистрировать.  
Поспешишь - людей насмешишь (опять!):
Error Message:
----------------------------------------
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
 
Добавлено:
странно, в одном случае сервер (local), в другом localhost (надо самому вводить)
 
Не могу создать таблицу в базе данных (эти опции не активны в меню), предположительно это из-за ошибки доступа - не может подсоединиться, только почему я не пойму! Чисто административные проблемы, наверное, не люблю я такие проблемы - совсем это не программирование!

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 20:43 22-06-2009 | Исправлено: Kursist, 21:48 22-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist

Цитата:
Delphi2007  

 
Для полной поддержки unicode нужно использовать Delphi2009.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 22:35 22-06-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
IBExpert не является unicode-приложением  

Если быть внимательным, то ты не прав.
 
Добавлено:

Цитата:
Для полной поддержки unicode нужно использовать Delphi2009.

Или компоненты типа TNT или DevExpress, или TMS
 
Добавлено:

Цитата:
Тест не работает - ругается!  

Сочувствую. Жди телепатов.
 
Добавлено:

Цитата:
Я так понимаю, что файла этого нет, а разве он его сам не создает?  

В эксперте выбери меню Создать новую базу. А ты что, подключаешься к несуществующей?
 
Добавлено:
У тебя Firebird-то хоть установился? Запущен?
Что даёт
telnet localhost 3051?
У тебя сетевой экран установлен? Антивирус установлен?

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 22:50 22-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 

Цитата:
...или DevExpress

 
Начиная с Delphi2009.
 

Цитата:
...или или TMS

 
Пакет для работы с unicode есть, но сами визуальные компоненты компоненты не являются unicode, поскольку построены на vcl.

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 23:05 22-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
Всё заработало. Перезагрузка ноутбука помогла.
В IBExpress теперь в новой базе данных создал таблицу с полями. Кодировка везде UTF8.
 
При подключении базы данных в Дельфи, пришлось использовать новый IBDataSet, так как в предыдущем были настройки на предыдущую базу данных, и генератов автоинкремента ключевого поля.
А новый компанент выдает ошибку при попытки его активации:
 

Цитата:
Dinamic SQL error
SQL code = -104
Token unknown - line 2, column 56
FILE
 

 
У меня в таблице нет столько полей/столбцов!
 
Добавлено:
Объясните, если возможно, почему в IBExpert регистрируешь базу данных, тестируешь - ОК:
-------------------------------
(Attempting to connect to:
LOCALHOST:C:\myBD\BD4.fdb
Connecting... Passed!
Server version: WI-T6.3.0.23247 Firebird 2.5 Beta 1  
Attempting to connect to services manager... Passed!
Disconnecting from database... Passed!
-------------------------------
 
А когда пытаешься подключиться к базе данных, то выдает ошибку:
------------------------------
Error Message:
Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements.
Your user name and password are not defined. Ask your database administrator to set up a Firebird login.
 
(перевод:
Неудачное выполнение, вызванное ошибкой системы, которая устраняет успешное выполнение последующих утверждений.
Ваше имя пользователя и пароль не определены. Попросите, чтобы Ваш администратор базы данных настроил логин Firebird.)
С чего бы это!? Но ведь и user и password - введены регистрационную информацию! И тестовое подключение проходит успешно! Что за чушь!?
 
Добавлено:
Понял!
Ошибка появляется, когда выставляешь галочку:
Trusted authentication - снимаешь галочку - подключается без ошибки, с галочкой - ошибка! Только почему?!

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 23:52 22-06-2009 | Исправлено: Kursist, 01:33 23-06-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Trusted authentication

Читай про Windows авторизацию в Firebird

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 09:23 23-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можете подсказать, как в IBExpert в уже созданной таблице удалить поле?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 14:46 24-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist
 
Открыть таблицу. Перейти на закладку поля. Правой клавишей нажать на нужное поле. Выбрать пункт меню "Удалить поле..."

Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 15:03 24-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Правый клик мышкой по полю.
В popup-меню:
New Filed
Edit Field
Drop Field
Create Foreign Key..
Reorder Fields
Copy Fields list to clipboard
 
Нет у меня "Delete Field"!
 
Если бы это было так очевидно, я бы не спрашивал.
 
Во вкладке DDL хотел удалить строку создания поля, в команде создание таблицы, но не разрешает..

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 15:39 24-06-2009 | Исправлено: Kursist, 15:47 24-06-2009
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist
1. Если не открыт Эксплорер БД - нажать F11.
2. В нем (обычно он слева), в списке таблиц, найти нужную.
3. В списке полей, правый клик, в меню "Удалить поле" или нажать Ctrl-Del.
 
Если поле только одно, то удалить его таким образом нельзя.
 
P.S.
А какая версия IBExperta ?

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 15:53 24-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man
 
IB Expert - The Most Expert for InterBase, Firebird and Yaffil
Copyright (C) 2000-2009 IBExpert KG
All rights reserved.
 
Version 2009.06.22
 
Полей несколько.
Команды "удалить поле"  - НЕТ!

Цитата:
В popup-меню:
New Filed
Edit Field
Drop Field
Create Foreign Key..
Reorder Fields
Copy Fields list to clipboard  

 
<ctrl>+<del> не реагирует.

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:06 24-06-2009
volser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist

Цитата:
Команды "удалить поле"  - НЕТ!  

 
А это что?
Цитата:
Drop Field  


Всего записей: 713 | Зарегистр. 31-03-2006 | Отправлено: 16:07 24-06-2009 | Исправлено: volser, 16:07 24-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Drop Field  

 
А! Это и есть УДАЛИТЬ! Бл...! (Извиняюсь!)

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:08 24-06-2009
data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kursist
Может стоит переключить интерфейс IBExperta'а на русский ?
P.S. Здесь cсылка лежит более новый перевод, чем в инсталле.

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 16:25 24-06-2009 | Исправлено: data man, 16:38 24-06-2009
Kursist



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
data man
в настройках язык интерфейса только English (Default)
 
Ещё вопрос:
У меня по закрытию формы проиходит отсоединение от базы данных:
IBDatabase1.Close;
А почему в Дельфи, по возвращению в среду IBDatabase1.Connected=TRUE  
, это свойство не должно переходить в FALSE?
 
 
Добавлено:
IBExpert
Опять натолкнулся на проблему:
Пытаюсь связать 2 таблицы (ORDERS и CLIENTS),
 
Вот такой скрипт получается:
 
alter table ORDERS
add constraint FK_ORDERS_1
foreign key (CLIENTS_NAME)
references CLIENTS(NAME)
 
This operation is not defined for system tables.
unsuccessful metadata update.
could not find UNIQUE or PRIMARY KEY constraint in table CLIENTS with specified columns.
 
Это что? Название моей таблицы CLIENTS совпало с названием системной таблицы? Разве у системных таблиц нет каких-то префиксов?

Всего записей: 137 | Зарегистр. 12-07-2004 | Отправлено: 16:38 24-06-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru