powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подгрузить DBF в IB-табличку
9 сообщений из 9, страница 1 из 1
Подгрузить DBF в IB-табличку
    #32157563
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как БЫСТРО загрузить DBF-ник в IB базу. Структура полей абсолютно сходится (кроме разве что того, что в IB-табличке надо ID генерить).
Строк в DBF - дофига (файл весит 11 Mb).
"Ручной" перебор курсора в DBF, а затем INSERT в IB - занимает несколько часов. Тем более, частый INSERT не есть гуд для IB :(
Как бы это дело ускорить?

P.S.
В RXLib есть компонента типа "таблица в памяти". Думаю через нее можно, но неохота, чтоб столько памяти жрало :(
Может есть другие способы?
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32157712
ant2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариантов - куча.
Если не охота возится и надо сделать только один раз, то качай IBExpert . Или что-нибудь подобное. Практически везде есть иморт-экспорт.

Есть еще варианты с запросом через SQL, перебором полей, и т.п. Но имхо, через грид - это изврат :)
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32157763
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весь смак в том, что это надо сделать из моей дельфёвой проги :(
А как через SQL (обращение к разным базам - если можно поподробнее)?
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32157803
ant2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дома посмотрю, пришлю кусок кода. Но посмотрев внимательно вопрос, кажется все-таки там без многих Insert не обошлсь.
Если в Delphi пишешь, там есть что-то вроде DataPump (за точность написания не ручаюсь), может стоить его попробовать?
Или вот еще идея - выгрузи DBF в текстовый файл, а потом загрузи его в IB.
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32158130
Alexander_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие компоненты используешь в своей программе для доступа к IB?
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32158185
ant2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас IBX, на момент переноса из DB - BDE + IBX
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32158205
Alexander_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BDE использовал только для доступа к DBF, а IBX к IB?
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32159460
Даниил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ant2000:
DataPump тоже не покатит, т.к. это все-таки другая прога, а мне надо в собственной. И по-моему, она с IB не фурычит, как-то давно пробовал - не получилось...
Я к DBF коннекчусь через стандартную Table (BDE), а к IB - IBPlus (FireBird).
...
Рейтинг: 0 / 0
Подгрузить DBF в IB-табличку
    #32159633
anatoly_guz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Фурычит :)
На момент переноса из DBF, imho, можно обойтись BDE. Или все-таки делай обход DBF и каждую строчку в IB вставляй через Insert.
Кстати, вот, по памяти, кажется я делал вот так:

IBQuery.SQL.Clear;
IBQuery.SQL.Add('Insert into ' + Name_Base+ ' (' +Query.Fields[0].FieldName);

For i:=1 to Query.FieldCount-1 do

IBQuery.SQL.Add(', '+Query.Fields .FieldName)

IBQuery.SQL.Add(') values ('+'"'+Query.Fields[0].AsString+'"');
For i:=1 to Query.FieldCount-1 do
IBQuery.SQL.Add(') values ('+'"'+Query.Fields.AsString+'"');

IBQuery.SQL.Add(')');


IBQuery.ExecSQL;

Только, за синтаксис не ручаюсь. :)
Если в базе есть пустые даты, то там еже надо проверять и н них.
Но во всяком случае тормозов не было





Query.Next;
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подгрузить DBF в IB-табличку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]