Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2014, 14:57   #11
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

если тупо 20тыс инсертов идут 3мин, то это много больше ничего сказать нельзя
eval вне форума Ответить с цитированием
Старый 23.06.2014, 15:03   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
файл текстовый (*.dxf) autocad
бд firebird
объекты, собственно элементы чертежа
А можно слегонца глупый вопрос: Зачем все это?
Я на заводе 6 лет работал с автокадом и огромными сборками. Объясни мне целесообразность такого разворота данных из чертежа в базу.
Если ты делаешь что-то наподобие AutoDesk Vault то спешу разочаровать - делается это не так как ты задумал. Да еще и устаревший текстовый формат обрабатываешь. DWG вполне может быть обработан в плане получения его обьектов (Features и констр. узлы) с точно таким же успехом и даже лучше.

Обьясни плиз - зачем все это.
I'm learning to live...

Последний раз редактировалось Stilet; 23.06.2014 в 15:06.
Stilet вне форума Ответить с цитированием
Старый 23.06.2014, 15:07   #13
water_
Пользователь
 
Регистрация: 01.11.2013
Сообщений: 34
По умолчанию

:r - значение trace
:t - значение type
:l - значение layer
:nameHandle - значение handle

Код:
	IF((:r > -1)AND(:t > -1)AND(:l > -1))THEN BEGIN


		IF (NOT EXISTS(SELECT handle FROM tblObjects WHERE UPPER(handle) = UPPER(:nameHandle))) THEN BEGIN
			INSERT INTO tblObjects VALUES(0, :r, :t, :l, :nameHandle);
		END
		ELSE BEGIN
			UPDATE tblObjects SET id_type = :t, id_layer = :l WHERE UPPER(tblObjects.handle) = UPPER(:nameHandle);
		END	


		INSERT INTO tblPoints VALUES(0, GEN_ID(gen_tblObjects,0), :x, :y, :z);
		UPDATE tblRoads SET date_mod = CURRENT_DATE WHERE UPPER(tblRoads.name) = UPPER(:nameRoad);
	END
во втором варианте нет условия "IF (NOT EXISTS...", остается только insert, который и добавляет запись (id, trace, type, layer, handle, x, y, z) в таблицу.

Последний раз редактировалось water_; 23.06.2014 в 15:09.
water_ вне форума Ответить с цитированием
Старый 23.06.2014, 15:22   #14
water_
Пользователь
 
Регистрация: 01.11.2013
Сообщений: 34
По умолчанию

Цитата:
если тупо 20тыс инсертов идут 3мин, то это много больше ничего сказать нельзя.
отправляю одной транзакцией.
подскажите как оптимизировать запись стольких объектов в БД.

Цитата:
Обьясни плиз - зачем все это.
нужна возможность импортировать трассу, которую начертили в autocad, в программу.
подскажите другой вариант импорта чертежа в свое по.
water_ вне форума Ответить с цитированием
Старый 23.06.2014, 15:24   #15
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

UPPER(handle) и хоронит использование индекса при поиске

Регистронезависимый поиск Firebird разве не поддерживает?

Есть еще конструкция update or Insert Into

Попытки подключения к FB текстового файла как внешней таблицы были?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.06.2014 в 15:27.
Аватар вне форума Ответить с цитированием
Старый 23.06.2014, 15:32   #16
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
IF((:r > -1)AND(:t > -1)AND(:l > -1))THEN BEGIN
это тут зачем?
оно в парсере должно отсекаться

про апер и др. заморочки уже сказали
eval вне форума Ответить с цитированием
Старый 23.06.2014, 15:37   #17
water_
Пользователь
 
Регистрация: 01.11.2013
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
UPPER(handle) и хоронит использование индекса при поиске

Регистронезависимый поиск Firebird разве не поддерживает?

Есть еще конструкция update or Insert Into

Попытки подключения к FB текстового файла как внешней таблицы были?
UPPER(handle)... если я верно помню, то корректный поиск, выполнить можно только в верхнем/нижнем регистре.

но все равно, почитаю... уточню

конструкция update or Insert Into... интересно, не сталкивался, спасибо

Попытки подключения к FB текстового файла как внешней таблицы были?
не было таких попыток. не знал. почитаю.

спасибо.
water_ вне форума Ответить с цитированием
Старый 23.06.2014, 15:44   #18
water_
Пользователь
 
Регистрация: 01.11.2013
Сообщений: 34
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
это тут зачем?
оно в парсере должно отсекаться

про апер и др. заморочки уже сказали
запись происходит в хранимой процедуре. передается объект (трасса, тип, слой, хендл и координаты)

сначала идет проверка на наличие в "таб.справочниках" трассы, типа и слоя
water_ вне форума Ответить с цитированием
Старый 23.06.2014, 15:47   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
нужна возможность импортировать трассу, которую начертили в autocad, в программу.
подскажите другой вариант импорта чертежа в свое по.
Что тут подсказывать то? Автокад вообще-то содержит в наличи СОМ сервер, поэтому из практически любого языка, умеющего работать с СОМ и ActiveX можно преспокойненько подключиться к DWG используя "дрова"самого акада. Я так делал чтоб получить спецификации по чертежам или нарисовать рамку.
По-моему даже где-то на форуме примеры были.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.06.2014, 15:55   #20
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
чала идет проверка на наличие в "таб.справочниках" трассы, типа и слоя
все чудесатее и чудесатее
eval вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с парсинга. foxes Работа с сетью в Delphi 3 20.10.2012 22:52
Оптимизация парсинга Lauri Общие вопросы Delphi 3 08.03.2012 14:54
Ошибки парсинга waka2ebawer PHP 2 26.02.2012 19:31
Оптимизация парсинга Lauri Общие вопросы Delphi 5 14.01.2012 00:04
ВАРИАНТЫ ПАРСИНГА Vova777 Общие вопросы Delphi 2 04.09.2010 23:51