Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» InterBase и FireBird: вопросы по работе и их решение

Автор: X11
Дата сообщения: 16.01.2010 09:33

Цитата:
Знатоки, подскажите, плиз, возможно ли использовать FireBird для работы с таблицами DBase (*.dbf)? Проблема в том, что нужно перелить данные из dbf'ок в базу FireBird без использования BDE

Firebird нет, а IBExpert тебя спасёт.
Автор: EugeneBoss3
Дата сообщения: 16.01.2010 23:33

Цитата:
X11


Цитата:
Firebird нет, а IBExpert тебя спасёт.

А примерчик для спасения можно показать?
Автор: X11
Дата сообщения: 16.01.2010 23:39
Примеры можно поискать здесь:
Импорт в базу firebird с помощью блоков IBExpert

Добавлено:
А ещё в IBExpert встроен ODBC Viewer
Автор: dsvnsk
Дата сообщения: 29.01.2010 17:07
Подскажите пожалуйста, где можно добыть старые версии Interbase?
Надо что-то со внутренним идентификатором 8.
(2007-й - это 12, 6.5 - 10-й. Следовательно, это из 5-х что-то, либо вообще файрберд)
Автор: volser
Дата сообщения: 29.01.2010 17:57
dsvnsk
Версии
Автор: dsvnsk
Дата сообщения: 29.01.2010 19:29
Спасибо!
Теперь возникает вопрос - InterBase 4.0/4.1 ни у кого не завалялся?
Автор: sandus
Дата сообщения: 30.01.2010 18:27
dsvnsk

Цитата:
Теперь возникает вопрос - InterBase 4.0/4.1 ни у кого не завалялся?

Смотри Здесь

Добавлено:
X11

Я пытался через IBexpert просматривать содржимое таблиц базы (Супер Окна).
Можно редактировать всё, кроме содержимого blob полей.
Встроенный редактор blob полей очень слабый. Картинки из таблицы "PICTS"
показывает, а вот содержимое с таблицы "NSTR" показывает только в формате RTF,

Цитата:
{\rtf1\adeflang1025\ansi\ansicpg1251\uc1\adeff0\deff0\stshfdbch0\stshfloch31506\stshfhich31506\stshfbi31506\deflang1049\deflangfe1049\themelang1049\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset204\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\f34\fbidi \froman\fcharset204\fprq2{\*\panose 02040503050406030204}Cambria Math;}{\f37\fbidi \fswiss\fcharset204\fprq2{\*\panose 020f0502020 ...............

а там самое главное.
Помогите мне пожалуйста разобраться в этом вопросе.
Как просмотреть и редактировать содержимое blob полей таблицы "NSTR"

Автор: dsvnsk
Дата сообщения: 30.01.2010 21:43
Так ИБЭксперт вроде как требует gds32.dll соотв. версии.
Если я не прав, подскажите, как регистрировать базу без соотв. движка ИБ.
Автор: X11
Дата сообщения: 31.01.2010 08:54

Цитата:
подскажите, как регистрировать базу без соотв. движка ИБ.

В правом верхнем угле при регистрации базы выбирай соответствующий сервер.
Автор: sandus
Дата сообщения: 31.01.2010 12:17
X11

Цитата:
Цитата:
подскажите, как регистрировать базу без соотв. движка ИБ.

В правом верхнем угле при регистрации базы выбирай соответствующий сервер.

У меня база формат DB как зарегить её в Ibexpert
Я слышал что надо какой то скрипт запускать.
Автор: dsvnsk
Дата сообщения: 31.01.2010 17:35

Цитата:
В правом верхнем угле при регистрации базы выбирай соответствующий сервер.


Это пробовал в первую очередь.
Если не указать клиентскую библиотеку, то не работает вообще.
С указанием библиотек (две попробовал) и получил сообщение, что надо движок 8, а не 12 или 10. Такое ощущение, что плевать ей на это окошкочко в правом верхнем углу.

IB Expert Personal edition 2010.01.06
Автор: jonikDk
Дата сообщения: 31.01.2010 22:27

Цитата:
С указанием библиотек (две попробовал) и получил сообщение, что надо движок 8, а не 12 или 10. Такое ощущение, что плевать ей на это окошкочко в правом верхнем углу.

Я так думаю тебе стоит поискать помладше версию ibexpert. мне так кажется, может я и ошибаюсь.
Автор: X11
Дата сообщения: 01.02.2010 09:09

Цитата:
У меня база формат DB

Что такое "формат DB"? Если у тебя таблицы Paradox, то IBExpert тебя не спасёт. IBExpert предназначен для работы с firebird/interbase
Автор: dsvnsk
Дата сообщения: 01.02.2010 14:33

Цитата:
Я так думаю тебе стоит поискать помладше версию ibexpert. мне так кажется, может я и ошибаюсь.


Сходил к этим кадрам и взял дистрибутив сервера.
Оказался Yaffil 884.
Я в шоке, т.к. http://www.ibase.ru/devinfo/prevver.htm мягко говоря трындит по поводу моего случая.
Автор: and23
Дата сообщения: 03.02.2010 19:43

Цитата:
Я так думаю тебе стоит поискать помладше версию ibexpert.
Не поможет. IBExpert - это всего лишь морда. Запросы серверу шлёт в любом случае клиентская библиотека. Она не обязательно должна быть именно той версии, которой сервер - бывают совместимые между собой. Но бывают и несовместимые.
При регистрации версию сервера можно - но не обязательно - прописывать, чтобы сам IBExpert мог знать, какие фичи этот сервер поддерживает, и соответственно "фильтровать" пользовательский интерфейс. Возможно также, что IBE задействует какую-то оптимизацию под конкретную версию сервера.
Автор: JohnSilver182
Дата сообщения: 01.03.2010 06:54
Hi All
А как изменить скрипт что бы не вызывало исключение когда Таблицы нет
DROP table BAD_DRUGS;

/* Вот пример нашел но не робит*/

if (exists(select * from rdb$relations where RDB$RELATION_NAME = 'BAD_DRUGS')) then
execute statement 'drop table BAD_DRUGS;

Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
if.

/* И так не робит */

IF (select count(*) from rdb$relations WHERE RDB$RELATION_NAME = 'BAD_DRUGS')>0
then DROP TABLE BAD_DRUGS;


Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
IF.

З.Ы. КАк меня за..ли эти все загадки


Добавлено:
О В ротМнеНоги !!! РАботает токо так

create or alter procedure drop_tables (
prefix varchar(50)
)
as
declare table_name varchar(31) ;
begin
for
select rdb$relation_name
from rdb$relations
where upper(rdb$relation_name) = upper(:prefix)
into :table_name
do
begin
execute statement 'drop table '||:table_name ;
end
end
Автор: X11
Дата сообщения: 01.03.2010 09:17

Цитата:
/* И так не робит */

IF (select count(*) from rdb$relations WHERE RDB$RELATION_NAME = 'BAD_DRUGS')>0
then DROP TABLE BAD_DRUGS;


Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 1, column 1.
IF.

З.Ы. КАк меня за..ли эти все загадки

используй блоки
Автор: JohnSilver182
Дата сообщения: 01.03.2010 11:33
X11 Непонял.
IF .. THEN только в составе процедуры\вида может выполняться ???

Автор: and23
Дата сообщения: 01.03.2010 15:09
2JohnSilver182: И в триггерах. В FB начиная с, если не ошибаюсь, 2.0, ещё в EXECUTE BLOCK, о чём и сказал X11. Судя по EXECUTE STATEMENT, этот вариант Вам должен подойти.
Автор: RedPromo
Дата сообщения: 02.03.2010 22:27
Также IF .. THEN и в составе
EXECUTE BLOCK
Функция позволяет выполнять набор PSQL команд без создания процедуры.
Поддерживает как входные так и выходные параметры.
Автор: tyghr
Дата сообщения: 04.03.2010 10:01
помогите, плз, со скриптом, я хочу создать процедуру, которая правит события
(исправляет опоздания )


Код:
CREATE PROCEDURE UPDATE_991 (
in_wrong_time time,
wr_second smallint,
wr_minute smallint,
wr_hour smallint)
as
begin
select reg_events.time_ev from reg_events where ((reg_events.TIME_EV > '9:00:00') AND (reg_events.TIME_EV < '11:00:00')) AND
(reg_events.TYPE_DEPEND = 1) AND
(reg_events.CATEGORY_EV = 2) AND
(reg_events.STAFF_ID = 991) AND
(reg_events.date_ev = (select current_date from rdb$database))
into :IN_WRONG_TIME;
wr_hour=8;
wr_minute=EXTRACT(MINUTE FROM IN_WRONG_TIME);
wr_second=EXTRACT(SECOND FROM IN_WRONG_TIME);
if ((round1(wr_minute/10)*10)>wr_minute)
then wr_minute=50+wr_minute-(round1(wr_minute/10)*10)-10;
else wr_minute=50+wr_minute-(round1(wr_minute/10)*10);
IN_WRONG_TIME=cast( wr_hour || ':' || wr_minute || ':' || wr_second as TIME);

UPDATE reg_events SET
reg_events.time_ev=IN_WRONG_TIME
WHERE ((reg_events.TIME_EV > '9:00:00') AND (reg_events.TIME_EV < '11:00:00')) AND
(reg_events.TYPE_DEPEND = 1) AND
(reg_events.CATEGORY_EV = 2) AND
(reg_events.STAFF_ID = 991) AND
(reg_events.date_ev = (select current_date from rdb$database));
UPDATE tabel_intermediadate SET
tabel_intermediadate.time_pass=IN_WRONG_TIME
WHERE ((tabel_intermediadate.time_pass > '9:00:00') AND (tabel_intermediadate.time_pass < '11:00:00')) AND
(tabel_intermediadate.type_pass = 1) AND
(tabel_intermediadate.STAFF_ID = 991) AND
(tabel_intermediadate.date_pass = (select current_date from rdb$database));
suspend;
end
Автор: volser
Дата сообщения: 04.03.2010 10:24
tyghr
Оно говорит что поля IN_WRONG_TIME нет в таблице reg_events. Нужно спереди поставить две точки.

Код:
UPDATE reg_events SET
reg_events.time_ev = :IN_WRONG_TIME
...
Автор: JohnSilver182
Дата сообщения: 22.03.2010 10:25
Hi All
А как можно удалить неубиваемые INDEX-ы (они еще красным подсвеченны ) ????


Цитата:
This operation is not defined for system tables.
unsuccessful metadata update.
Index not found.
Автор: OXDBA
Дата сообщения: 22.03.2010 10:53

Цитата:
А как можно удалить неубиваемые INDEX-ы (они еще красным подсвеченны ) ????

Глядя на свой хрустальный шар вижу что подсвечены они в IBExpert'е и являются primary key/foreign key/unique constraint . Вот их и надо удалять.
Автор: Odysseos
Дата сообщения: 22.03.2010 11:09
JohnSilver182

Если имеются в виду индексы с именами вида RDB$INDEX_n - то это индексы на системные таблицы, описывающие схему данных. И удалять эти индексы не стоило бы, даже если бы было можно.
Автор: X11
Дата сообщения: 22.03.2010 11:16
А если есть генератор, привязанный к первичному ключу, то в первую очередь нужно удалить генератор.
Автор: JohnSilver182
Дата сообщения: 22.03.2010 11:40
О ! Зашел с свойства Индекса этого странного . Нашел свою USER TABLE . Удалил у нее PRIMARY KEY Исчезло после Переконнекта !!!!

Добавлено:
Кстати в IB_EXPERT когда заходиш в : Свойство Таблицы->Logging . Он предлагает создать всякие системные таблицы , которые хрен потом удалиш , даже если Генераторы удалить .

А зачем это надо ???
Автор: X11
Дата сообщения: 22.03.2010 12:00
Что именно надо?? Запрет на удаление или таблицы логирования?
Если зачем нужны таблицы логирования, то они предназначены для просмотра всех изменение метаданных.
Автор: JohnSilver182
Дата сообщения: 22.03.2010 12:04
X11 А !! Тоесть на каждую USER TABLE можно повесить событие , которое пишется в
RDB$LOG (Если менялась структура таблицы )???
Автор: X11
Дата сообщения: 22.03.2010 12:26
Не знаю, я не вешал, но уверен, что оно таблицы логирования предназначены для логирования изменений в метаданных.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

Предыдущая тема: Сравнение двух строк


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.