|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Всем привет! Собственно хочу сделать такое что-то такое Код: plaintext
Код: plaintext
Если можно такое сделать, то как правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:01 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperous, Если я правильно понял вопрос, то примерно так: Смотреть в сторону временных индексов по полю fil2 на таблицу Tab1 + Set Relation to cur.fil1 into Tab2... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:12 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Станислав С...кийImperous, Если я правильно понял вопрос, то примерно так: Смотреть в сторону временных индексов по полю fil2 на таблицу Tab1 + Set Relation to cur.fil1 into Tab2... Исправляюсь: Set Relation to cur.fil1 into Tab1 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:14 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
что-то непонятно.. не хочет оно так работать.. делаю так 1: Код: plaintext 1. 2.
делаю так 1: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:43 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
ImperousВсем привет! Собственно хочу сделать такое что-то такое Код: plaintext
Код: plaintext
Если можно такое сделать, то как правильно? Не массив, а курсор получается. Если нужен массив (а он нужен ?), то SELECT...INTO ARRAY... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 17:20 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperousчто-то непонятно.. не хочет оно так работать.. делаю так 1: Код: plaintext
После этой команды текущим стал алиас курсора cur. Imperous Код: plaintext 1.
И тут-же вы пытаетесь установить его реляцию с самим собой. Imperousговорит что циклическая реляция Потому и говорит. Imperousделаю так 1: Код: plaintext 1. 2. 3.
Что-то не понял - вы кого с кем связать пытаетесь ? Фигурируют 2 таблицы и курсор. SET RELATION TO <поле, по которому идет связка> INTO <таблица, с которой связываемся>. А у вас что-то и select tab1 (она становится текущей и ведущей в связке), и cur упоминается, а сама связка делается с fil2. Ниче не понял. Вроде в первой мессаге речь шла о фильтре, тут уже про relation началось. Обьясните на пальцах, чего надо ? А то так в трех соснах себя не найдете. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 17:26 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Вы правы, нужен фильтр, с релэйшном я решил поиграться потому что так подсказали ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 17:30 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
надо выбрать из таблицы_1 значения которые попадают в выборку из таблицы_2 другими словами: Код: plaintext 1. 2.
вот я и хочу узнать как такое условие можно запихнуть в Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 17:35 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperousнадо выбрать из таблицы_1 значения которые попадают в выборку из таблицы_2 другими словами: Код: plaintext 1. 2.
Код: plaintext
Какое-то противоестественное желание. Вы-же уже все выполнили первым селектом. Или есть тяга к самоистязанию ? :) Тогда так : Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 18:00 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
rewareImperousнадо выбрать из таблицы_1 значения которые попадают в выборку из таблицы_2 другими словами: Код: plaintext 1. 2.
Код: plaintext
Какое-то противоестественное желание. Вы-же уже все выполнили первым селектом. Или есть тяга к самоистязанию ? :) Тогда так : Код: plaintext 1. 2.
Спасибо, это именно то что мне надо!!! Единственный неприятный момент это объявление массива с указанием кол-ва записей, т.е. каждый раз перед тем как загнать данные в массив необходимо сначала сделать такой же запрос но с целью узнать count и загнать в курсор, затем этот курсор подставить в кол-во записей массива... я делал так: Код: plaintext 1. 2. 3. 4.
Или есть иной способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 22:02 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperous Спасибо, это именно то что мне надо!!! Единственный неприятный момент это объявление массива с указанием кол-ва записей, т.е. каждый раз перед тем как загнать данные в массив необходимо сначала сделать такой же запрос но с целью узнать count и загнать в курсор, затем этот курсор подставить в кол-во записей массива... Бред. Не надо считать никакие записи и заранее обьявлять размер массива. Массив автоматически создается САМ при SELECT...INTO ARRAY. Факт успешного создания массива можно проверить, спросив ? _TALLY сразу после выполненного селекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 05:50 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperous Спасибо, это именно то что мне надо!!! Вообще, непонятно, откуда такая нелюбовь к курсорам. Отличие SELECT...INTO ARRAY от SELECT...INTO CURSOR в том, что при создании курсора появляются многие удобства - работа, как с обычным dbf-файлом. Только на диск ничего не пишется, пока сам не заставишь. И уничтожается курсор сразу при его закрытии. А в целом - такой-же виртуальный обьект, как и массив. Кушает столько-же памяти. И обьем данных, который сканирует SELECT-SQL, одинаков, независимо от того, куда вы направляете результат выборки. Хоть в курсор, хоть в массив, хоть в query. Приведенный мной пример SELECT...INTO ARRAY полон нелепости, потому-что вам приходится делать выборку дважды - сначала в массив, потом по содержимому массива - из первичной таблицы. Зачем ? Ведь это прекрасно делается одной строкой по SELECT...WHERE... IN... Такие игрушки в принципе должны даже влиять на быстродействие приложения. И еще - приятно, конечно, использовать все богатство функций VFP в команде SELECT-SQL. Но не забывайте, что эти фокусы с ASCAN() действуют только, пока вы не вылезли за рамки VFP. Если такой селект послать реальному SQL-серверу, то он просто не поймет, о какой такой ASCAN() идет речь. Неизбежно вам придется использовать WHERE IN. Надо придерживаться стандартов языка SQL. Поэтому, разумней и перспективней писать SELECT-SQL так, как он должен выглядеть, если бы вы его применяли для связи с SQL-сервером. Даже при работе на локальной машине, даже при чисто фоксовых БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 10:43 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
rewareКушает столько-же памяти. Маленькая поправочка - курсор кушает памяти меньше, чем массив, за счет одноразового определения типов и размерностей полей для всего курсора, а не для каждого элемента массива. Да и заточен фокс именно под работу с таблицами/курсорами, а не с массивами. С остальным полностью согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 10:51 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
даю объяснение почему мне в данном случае не нужен курсор: потому что на форме имею таблицу из dataenveronment (буфферизация), которая изменяется пользователем, т.е. он делает необходимую выборку и в ней делает корректировки. почему не использую для этого курсорадаптер? - все просто, я не умею его использовать, знаю что надо научится, но покачто не хочу и нет желания. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 11:11 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
Imperousдаю объяснение почему мне в данном случае не нужен курсор: потому что на форме имею таблицу из dataenveronment (буфферизация), которая изменяется пользователем, т.е. он делает необходимую выборку и в ней делает корректировки. И это мешает завести еще один курсор? [quot] покачто не хочу и нет желания.[/quot] Это два разных повода? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 11:14 |
|
SET FILTER TO и массив, такое возможно?
|
|||
---|---|---|---|
#18+
ImperousВсем привет! Собственно хочу сделать такое что-то такое Код: plaintext
Код: plaintext
Если можно такое сделать, то как правильно? если в таблице tab2 есть индекс по полю fil1, то можно вообще без запросов. Примерно так Код: plaintext
Здесь fil1 - это предполпгаемое имя индексного тега в таблице tab2. Хотя, советы вам давали правильные. SET FILTER хорош только в случае, когда надо сделать "по быстрому", просто чтобы "заткнуть дырку". Если же вы предполагаете дальнейшее развитие приложения, то использование SET FILTER - не желательно. Он сильно ограничивает возможности модификации приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 11:48 |
|
|
start [/forum/topic.php?fid=41&msg=35826520&tid=1586748]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 186ms |
0 / 0 |