Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекордсет. Фильтр 
:(
    Опции темы
LexRema
Дата 27.4.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Вопрос. 
есть рекордсет. В нем записи. В столбцах. как задать параметр фильтру, чтобы после отсеивания остались только те записи, которые соответствуют НЕПОВТОРЯЕМЫМ значениям в ЗАДАВАЕМОМ столбце? 
Тоесть нужен сам параметр. И, если можна, пример записи. 
PM   Вверх
Akina
Дата 28.4.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



С рекордсетами такие вещи не делают - перезапроси данные, добавив нужное условие. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 28.4.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



SQL доступен, но вот результат данной задачи не совсем тривиален. Дистинкт можна задать для всех записей, но как решить задачу, когда нужно одним столбцам (значениям в этих столбцах) приказать не повторяться, а другим - разрешить повторение? 
PM   Вверх
Akina
Дата 28.4.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(LexRema @  28.4.2006,  15:54 Найти цитируемый пост)
Дистинкт можна задать для всех записей

А можно (и чаще нужно!) вообще не задавать. Почитай хелп про Group By... 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 28.4.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



1.Есть две таблицы с одинаковыми полями. Как в конец одной добавить другую (програмно). 

2. Есть таблица. В цыкле пройтись по всех ее записях и для каждой записи создать отдельную темп_таблицу- в которой будет только одна запись. 

результатом и 1), и 2) будет таблица 

Прошу, приведите примеры. Походу оно должно просто реализовываться, только если знать, как это сделать. Если не ответите, придеться открывать новую тему.   smile 

Это нужно, чтобы сделать очень крутую выборку. Имея такую темптаблицу, я могу через INNER JOIN выбрать соответствующее моей таблице ТОР Х елементов из другой таблицы. А потом эту выборку присоеденить к некоторой общей таблице. Общий  алгоритм практически реализован. Осталось только это. Подскажите. 
И пожалуйста, желательно именно это... а то переписывать и придумывать что-то новое уже некогда.
 

Это сообщение отредактировал(а) LexRema - 18.5.2006, 09:55
PM   Вверх
LexRema
Дата 18.5.2006, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Ну же? 
PM   Вверх
Akina
Дата 19.5.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(LexRema @  28.4.2006,  17:29 Найти цитируемый пост)
Есть две таблицы с одинаковыми полями. Как в конец одной добавить другую (програмно). 

Код

insert into table2
select * from table1

Цитата(LexRema @  28.4.2006,  17:29 Найти цитируемый пост)
Это нужно, чтобы сделать очень крутую выборку. Имея такую темптаблицу, я могу через INNER JOIN выбрать соответствующее моей таблице ТОР Х елементов из другой таблицы. А потом эту выборку присоеденить к некоторой общей таблице. Общий  алгоритм практически реализован. Осталось только это. 

Очень хочется посоветовать выкинуть этот "практически реализованный" алгоритм и начать заново. Предварительно изучив основы SQL. Потому как по приведенному описанию построенный алгоритм представляется [self-censored].  


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LexRema
Дата 20.5.2006, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Есть несколько таблиц. В одной  есть поле, значению в котором (через некоторые промежуточные поля) в другой таблице отвечает 10 значений, а каждому полю в таблице два отвечает еще по десять значений в третьей таблице. В первой таблице также "N" значений. Нужно сделать выборку, когда первому полю будет отвечать, скажем, 4 значения во втором поле и каждому из них по 3 значения в в третьем поле. Вот суть задачи. ТО, что было, я пока отложил. Сделал через рекордсет.

.Sort = "Column1", после чего ручной поиск дубликатов в Column1 становится тривиальным.

И так для каждого значения. 



Но возникла вторая проблема. При большом количестве удалений лишних записей :
File sharing lock count exceeded. Increase MaxLocksPerFile registry entry. 
Как это обойти? 
ЭТО САМОЕ ВАЖНОЕ! Как?

 

Это сообщение отредактировал(а) LexRema - 22.5.2006, 19:21
PM   Вверх
LexRema
Дата 23.5.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 80
Регистрация: 15.3.2006

Репутация: нет
Всего: нет



Создать *.reg файл и применить (можна оставить только параметр MaxLocksPerFile): 
Код: 
Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4.0] 
"PageTimeout"=dword:00001388 
"LockRetry"=dword:00000014 
"MaxBufferSize"=dword:00000000 
"Threads"=dword:00000003 
"ExclusiveAsyncDelay"=dword:000007d0 
"SharedAsyncDelay"=dword:00000032 
"FlushTransactionTimeout"=dword:000001f4 
"MaxLocksPerFile"=dword:0007a120 
"LockDelay"=dword:00000064 
"RecycleLVs"=dword:00000000 
"PagesLockedToTableLock"=dword:00000000 
"UserCommitSync"="yes" 
"ImplicitCommitSync"="no" 
 

Если JET не 4.0 может понадобиться подправить в ветках: 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Jet 3.5] и [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 3.x].


Пользуйтесь наздоровье! 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.