Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Предложения по IndexedTable (число прочтений - 5106 )
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Предложения по IndexedTable
31. Мая 2006 :: 16:20
Печать  
Если пишу не туда - в смысле, если есть раздел, где такие предложения больше подходят по контексту - сильно не ругайтесь. Хочу поблагодарить Алексея за класс IndexedTable и попросить подумать над возможностью:

1. добавки метода, который будет сбрасывать содержимое ИТ в DBF-таблицу (и парного ему метода восстановления ИТ из DBF-файла). Пусть метод будет самый простой, пусть преобразования агрегатных объектов будут самыми несложными. Лишь бы такой метод был.

2. ну и соответственно было бы очень круто если бы помимо DBF ИТ умела сбрасывать содержимое в SQL-таблицу Улыбка И еще и восстанавливать данные из нее Улыбка

Если с точки зрения разработки/проектировки это сложно или вообще невозможно - я все пойму.
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #1 - 31. Мая 2006 :: 16:57
Печать  
Блин это легче на 1С написать 1 раз.
« Последняя редакция: 01. Июня 2006 :: 06:17 - trdm »  
Наверх
IP записан
 
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #2 - 31. Мая 2006 :: 17:11
Печать  
trdm писал(а) 31. Мая 2006 :: 16:57:
Блин это легче на 1С написать 1 раз.


У меня есть класс-обертка, который выгружает данные в DBF. Вопрос не в этом.

Цитата:
Ты когда нибудь пробовал с базами данных в С++ работать?


Да, я все понимаю. И все-таки была и есть смутная надежда - уж если есть сохранение в CSV - до DBF здесь вроде как один шаг (логический).
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложения по IndexedTable
Ответ #3 - 31. Мая 2006 :: 18:52
Печать  
А как ты предлагаешь преобразовывать типы?

Теоретически, сбросить в DBF, думаю, возможно. Конечно, это было бы полезно.
А в SQL сейчас как таблицы значений сбрасывают, что-то никогда этого не делал?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #4 - 31. Мая 2006 :: 19:14
Печать  
kms писал(а) 31. Мая 2006 :: 18:52:
А как ты предлагаешь преобразовывать типы?


Агрегатные объекты? Можно либо записывать (с обрезанием Улыбка до n символов) их представления, либо преобразоывать в char(9), char(13), char(23) в зависимости от типа колонки. Было бы совсем круто иметь параметр, который будет управлять вариантами записи. Хотя, если преобразовывать в char(9), возникнут проблемы при восстановлении из DBF - будет неизвестно, какой тип/вид объекта следует применять. Значит пусть будут char(23). При обратном преобразовании - восстановлении значения из строки - список строковых полей для трансляции можно указывать в одном из параметров метода.

Составные объекты - списки значений и пр. - можно игнорировать.

Цитата:
А в SQL сейчас как таблицы значений сбрасывают, что-то никогда этого не делал?


В ODBCRecordSet есть метод ВыполнитьSQL_ИзТЗ - но он поддерживает только обычную таблицу значений (насколько я знаю). Еще есть УложитьСписокОбъектов() - но у него тоже есть недостаток, он обрабатывает только агрегатные объекты.
  
Наверх
ICQ  
IP записан
 
jbond
Full Member
***
Отсутствует


1С++ Programmer

Сообщений: 140
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #5 - 01. Июня 2006 :: 04:23
Печать  
Мне нужно удалить строки, у которых значения нескольких числовых полей = 0.

Так вот, с фильтром это не получается.
единственно корректный способ - Если ПустоеЗначение() = 1 Тогда

Можно ли упростить/ускорить?

Можно рассмотреть вариант метода Свернуть - удалять строки у которых значения стрКолонкиСумм  после суммирования = 0.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложения по IndexedTable
Ответ #6 - 01. Июня 2006 :: 06:20
Печать  
jbond
По твоей задаче: если у тебя условие, что любое из полей равно 0, тогда нужно несколько индексов/фильтров.

Если одновременно - тогда сейчас не решается никак.
Но эту тему мы с Алексеем обсуждали (логика множеств для набора индексов).
Проблема в том, что задача непростая, а времени, на все... Ну ты сам знаешь.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #7 - 01. Июня 2006 :: 08:18
Печать  
Почему никак?
Создаешь индекс, в котором указываешь все колонки, по которым нужна фильтрация.
Далее создаешь ключ, в котором для каждой колонки указываешь мин и макс.значения = 0, фильтруешь.
И все Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложения по IndexedTable
Ответ #8 - 01. Июня 2006 :: 08:41
Печать  
Опс. Ужас
Точно, по совпадению - без проблем, а вот по поддиапазонам - никак.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #9 - 01. Июня 2006 :: 08:47
Печать  
jbond писал(а) 01. Июня 2006 :: 04:23:
Мне нужно удалить строки, у которых значения нескольких числовых полей = 0.

Есть баг, связанный с реиндексацией при удалении строк.
Подробности у kms Улыбка

ЗЫ А я в оффлайн до понедельника Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Предложения по IndexedTable
Ответ #10 - 01. Июня 2006 :: 09:08
Печать  
Это не совсем твой случай, но посмотри: http://www.1cpp.ru/bugs/show_bug.cgi?id=2174

P.S.
sd
Извини, мы несколько отклонились от твоей темы.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
sd
1c++ power user
Отсутствует



Сообщений: 30
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Предложения по IndexedTable
Ответ #11 - 01. Июня 2006 :: 09:18
Печать  
Цитата:
Извини, мы несколько отклонились от твоей темы.


Мое дело - предложить Улыбка
Надеюсь, что пакетное сохранение/восстановление данных будет полезным многим - тогда это предложение не пропадет просто так.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать