Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 728

/ вопрос открыт /

Приветствую, уважаемые эксперты!

Имеется БД, походу Interbase, файл bla-bla.GDB называется.
Могу подключиться к БД через разный софт IB Console, Interbase/Firebird Development Studio.
После подключения делаю выборку всех записей из таблицы PERSON.
Результат - ~6000шт.
Задача: подключиться к этой БД из Delphi, чтобы в дальнейшем из Excel накинуть пару тысяч записей.
Набросал на форму IBDatabase, IBQuery, IBTransaction.
Подрубился к БД даю тот же запрос select count(*) from PERSON - получаю 89 записей.

Просто чудеса.
Уже запарился искать траблы и ответы в НЕТЕ.
Пробовал Delphi6, Delphi7, Interbase 6, Interbase 6.5, Interbase 2007 server.
<цензура>, 89 записей и все тут....
Где собака порылась?

Спасибо.

buhhu_nyx Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: buhhu_nyx (статус: Посетитель)
Вопрос отправлен: 4 мая 2009, 10:41
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 5 мая 2009, 10:40; участников в обсуждении: 2.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 4 мая 2009, 17:02 [#1]:

Можете сбросить структуру БД?
buhhu_nyx

buhhu_nyx (статус: Посетитель), 5 мая 2009, 09:23 [#2]:

Вот метаданные из IBConsole:

<code>
/* Table: PERSON, Owner: VIP */

CREATE TABLE "PERSON"
(
"COURT_CODE" VARCHAR(3) NOT NULL,
"PERSON_ID" DOUBLE PRECISION NOT NULL,
"KIND" VARCHAR(1),
"COMP_NAME" VARCHAR(240) DEFAULT '',
"COMP_STATE" VARCHAR(1),
"FIRST_NAME" VARCHAR(20) DEFAULT '',
"MIDDLE_NAME" VARCHAR(20) DEFAULT '',
"LAST_NAME" VARCHAR(30) DEFAULT '',
"SEX" VARCHAR(1),
"BIRTH_DATE" TIMESTAMP,
"BIRTH_PLACE" VARCHAR(80) DEFAULT '',
"PASSPORT_NO" VARCHAR(16) DEFAULT '',
"PERSONAL_NO" VARCHAR(14) DEFAULT '',
"PASSPORT_DATE" TIMESTAMP,
"PASSPORT_ORG" VARCHAR(50) DEFAULT '',
"COUNTRY_CODE" VARCHAR(3),
"REGION_CODE" VARCHAR(6),
"DISTRICT" VARCHAR(30) DEFAULT '',
"POSTAL_CODE" VARCHAR(6),
"CITY_KIND" VARCHAR(8) DEFAULT '',
"CITY" VARCHAR(30) DEFAULT '',
"STREET_KIND" VARCHAR(10) DEFAULT '',
"STREET" VARCHAR(40) DEFAULT '',
"HOUSE" FLOAT,
"BUILDING" VARCHAR(8) DEFAULT '',
"ROOM_TYPE" VARCHAR(8) DEFAULT '',
"ROOM" VARCHAR(10) DEFAULT '',
"PHONE" VARCHAR(30) DEFAULT '',
"WORK_NAME" VARCHAR(240) DEFAULT '',
"WORK_ADR" VARCHAR(240) DEFAULT '',
"BANK_NAME" VARCHAR(240) DEFAULT '',
"BANK_ADR" VARCHAR(120) DEFAULT '',
"BANK_CODE" VARCHAR(9),
"BANK_ACC" VARCHAR(20) DEFAULT '',
"UNN" DOUBLE PRECISION,
"CODE_BANK" VARCHAR(9),
"UIDN" VARCHAR(30) DEFAULT USER,
"DTU" TIMESTAMP DEFAULT 'NOW',
"DTE" TIMESTAMP,
"SIGN" VARCHAR(1),
CONSTRAINT "PK$PERSON" PRIMARY KEY ("COURT_CODE", "PERSON_ID")
);
ALTER TABLE "PERSON" ADD CONSTRAINT "R$PERSON$COUNTRY_CODE" FOREIGN KEY ("COUNTRY_CODE") REFERENCES "S_COUNTRY" ("COUNTRY_CODE");
ALTER TABLE "PERSON" ADD CONSTRAINT "R$PERSON$COURT_CODE" FOREIGN KEY ("COURT_CODE") REFERENCES "S_COURT" ("COURT_CODE");
ALTER TABLE "PERSON" ADD CONSTRAINT "R$PERSON$REGION_CODE" FOREIGN KEY ("REGION_CODE") REFERENCES "S_CLASS" ("CLASS_CODE");
SET TERM ^ ;


/* Triggers only will work for SQL triggers */

CREATE TRIGGER "PERSON_INS_TR" FOR "PERSON"
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.PERSON_ID <= 0) THEN
NEW.PERSON_ID = GEN_ID(PERSON_GEN, 1);
END
^

COMMIT WORK ^
SET TERM ;^
</code>

Да уж, табуляция катит только в редактировании...(выравнял по табу, а не видно...)
buhhu_nyx

buhhu_nyx (статус: Посетитель), 5 мая 2009, 10:40 [#3]:

Короче, победил я данный вопрос - мне будет достаточно.
Помог только метод перебора.
Рассказываю:
рабочий вариант оказался следующим:
1. InterBase 2007 Server Edition v8.1.0.257
2. Firebird/Interbase_ODBC_2.0.0.148_win32
первый пришлось одолжить в инете...(около 30Мб)
второй бесплатный скачан с сайта firebirdsql.org
Создал ODBC подключение и подрубился из Delphi через ADO - видит всю БД.
УРА!!!!

НО!!!, так и не работает IBDatabase, IBQuery в полном объеме.
Ни в Delphi6 ни в Delphi7, хотя после установки InterBase 2007 Server ставил обновления из той же папки для 6 и 7 Delphi - IBX Update 6.11 with IB 2007 support и Delphi 7 IBX 7.11 with IB 7.5 support.
Но это не критично.

Главное, что подрубился через бесплатные компоненты и буду юзать дальше эти БД без trial limitation :-)

Спасибо всем, кто читал мой пост и задумывался над ответом.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:55
Выполнено за 0.02 сек.