Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля? / 25 сообщений из 36, страница 1 из 2
12.07.2003, 12:19
    #32206306
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
т.е. выбрать изз таблицы все поля кроме одного указаного? возможно такое сделать sql-запросом?
...
Рейтинг: 0 / 0
12.07.2003, 13:20
    #32206312
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
В Access имхо стандартных возможностей для этого нет. Динамический запрос не подойдет?
...
Рейтинг: 0 / 0
12.07.2003, 13:39
    #32206319
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Сорри за запрещенный вопрос, но зачем это нужно? Может, можно решить задачу другим способом? Взять все поля, а потом скрыть одно из них уже в форме (или для чего оно нужно)?
...
Рейтинг: 0 / 0
12.07.2003, 13:44
    #32206321
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Или такой вариант: написать программу, которая будет честно строить длинный селект, в котором будут перечислены все поля кроме одного.
...
Рейтинг: 0 / 0
12.07.2003, 14:05
    #32206325
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
2IgorM
например? =)

2Владимир Саныч
не запрещённый =) работаю не с формой.
Или такой вариант:
чесно говоря возникла такая мысль, но надо быстро и сейчас.
а для чего это нужно.. вот: есть таблица со счётчиком и кучей полей (около 20). надо сделать копию определённой записи. когда открываю таблицу, выделяю запись, копирую её в новую всё ок(значение счётчика автоматом обновляется) когда пытаюсь сделать
Код: plaintext
CurrentDb.Execute  "insert into тЗаявления select * from тЗаявления  where (idZ=1 );"

он мне говорит что невозможно добавить запись по причине нарушения уникальность ключа.
вот и хотелось бы сделать что-то вроде
select * кроме id.... =)
в принципе уже сделал, но извратно.
сначала копирую нужную запись в новую временную таблицу, потом во временной таблице удаляю поле счётчика, и уже потом из временной переписываю запись в исходную таблицу.
...
Рейтинг: 0 / 0
12.07.2003, 14:53
    #32206328
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
20 полей - это не куча. Куча - это 100 и больше. По-моему, написать ручками селект из 19 полей было бы гораздо быстрее, чем ждать ответа из форума. И никакая временная таблица не нужна.
...
Рейтинг: 0 / 0
12.07.2003, 15:07
    #32206330
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Согласен с Санычем. Тем более конструктор запросов для ленивых никто не отменял. 19 галочек проставить не так уж и сложно.
...
Рейтинг: 0 / 0
12.07.2003, 16:04
    #32206343
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Даже 19 галочек не нужно. Дабл-кликаем по заголовку прямоугольника таблицы в верхней половине построителя, это выделяет в прямоугольнике все поля (невыделенная остается первая строчка со звездочкой). Тащим мышкой все выделенное в нижнюю половину. Потом одно поле стираем.

А временная таблица - это и медленно, и ненадежно. И это плата за что? За экономию нескольких минут работы программиста.
...
Рейтинг: 0 / 0
12.07.2003, 16:26
    #32206357
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
=)) раскритиковали.... "лень двигатель прогресса".... =) этот запрос надо делать из вба по кнопочке. т.е. не разово.. а структура таблицы в принципе может поменятся.. или название полей... а потом в коде вылавливать что же и где надо поменять.. это имхо не .... вобщем ленивый я =).. поэтому и сделал.. как я думаю более универсально.
...
Рейтинг: 0 / 0
12.07.2003, 17:05
    #32206373
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
С момента задания вопроса прошло 4 часа. За это время можно было написать что-нибудь такое:

s = ""
With CurrentDb.OpenRecordset(...)
For Each f In .Fields
If f.Name <> "ID" Then
If s <> "" Then s = s & ","
s = & f.Name
End If
Next
.Close
End With
s = "select " & s & " from ..."

Блин четыре раза.
...
Рейтинг: 0 / 0
12.07.2003, 17:36
    #32206377
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
когда я писал вопрос, я уже решил проблему как описал в 14:05. просто заинтересовал этот вопрос. вот и задал
...
Рейтинг: 0 / 0
12.07.2003, 18:00
    #32206381
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Все равно на пост от 14:05 ушло время, за которое можно было написать что-то типа моего от 17:05. Разрази меня гром, это будет работать надежнее и быстрее, чем временная таблица.
...
Рейтинг: 0 / 0
12.07.2003, 19:42
    #32206406
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Имхо для таблицы будет еще быстрее TableDef открыть.
...
Рейтинг: 0 / 0
12.07.2003, 22:45
    #32206431
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Согласен с IgorM.
...
Рейтинг: 0 / 0
13.07.2003, 10:47
    #32206451
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Все равно на пост от 14:05 ушло время, за которое можно было написать что-то типа моего от 17:05.

за то время пока читаешь форум, просматриваешь почту... кофе пьешь... и т.д. можно ого-го сколько сделать =)))) я решил вопрос, но меня заинтересовало как можно ещё. вот и спросил.

Разрази меня гром, это будет работать надежнее и быстрее, чем временная таблица.

надежней и быстрей??.. почему?
...
Рейтинг: 0 / 0
13.07.2003, 11:16
    #32206452
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
как-то видел решение аналогичной задачи для SqlServer.
Если народу интересно ,могу поискать и опубликовать
...
Рейтинг: 0 / 0
13.07.2003, 11:29
    #32206454
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Быстрее - потому что одну запись в файл сделать быстрее, чем две записи и одно стирание.

Надежнее - потому что при записях в файл бывают блокировки и конфликты между сессиями, и чем меньше записей в файл, тем их меньше.
...
Рейтинг: 0 / 0
13.07.2003, 11:44
    #32206456
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
И кстати:

> в принципе уже сделал, но извратно.

За этой фразой разве не стояло понимание, что этот способ по каким-то причинам нежелателен?
...
Рейтинг: 0 / 0
13.07.2003, 12:07
    #32206459
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
2VIG
если можно

2Владимир Саныч
я уже где-то писал.." я только учусь". за этой фразой стояло понимание того, что я НЕ ЗНАЮ как сделать выборку всех полей кроме некоторых. но я сделал это. Было понимание, что наверное можно и лучше сделать. Наверное Ваш способ лучше =). когда в следующий раз возникнет такой вопрос, я уже буду знать КАК это можно сделать несколькими способами. =) эт называется.. "из-за дурной головы ногам покоя нет"... т.е. "рукам" =))))
...
Рейтинг: 0 / 0
13.07.2003, 12:11
    #32206460
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Прошу на "ты", мне так понятнее. :^)
...
Рейтинг: 0 / 0
13.07.2003, 12:24
    #32206464
VIG
VIG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
set nocount on

Declare @TableName varchar( 128 ), @ColumnList varchar( 1000 )
Declare @SQL varchar( 1000 )
set @TableName = 'authors'

SELECT @ColumnList = COALESCE(@ColumnList + ', ', '') + column_name 
FROM INFORMATION_SCHEMA.Columns
WHERE Ordinal_position <=  10 
and table_name = @TableName

Set @SQL = 'Select ' + @ColumnList + ' from ' + @TableName

Exec (@SQL)

позаимствовано отсюда
...
Рейтинг: 0 / 0
13.07.2003, 12:28
    #32206465
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
2Владимир Саныч
ок =)

2VIG
сэнкс... положим. в "копилку" =)) и будем пользоваться
...
Рейтинг: 0 / 0
13.07.2003, 12:34
    #32206466
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
Быстрее - потому что одну запись в файл сделать быстрее, чем две записи и одно стирание.
А вот здесь я слегка не соглашусь. Конечно, добавить одну запись быстрее, чем добавить две и одну убить, но только если добавляют одним и тем же способом. А здесь - разными.
Добавление записи SQL-запросом и добавление той же записи через объекты DAO - две большие разницы во времени. По другому и не может быть. Делается то одно и тоже, только еще и через дополнительную прослойку в виде DAO+VBA.
Кто хочет - может провести замеры.
...
Рейтинг: 0 / 0
13.07.2003, 12:44
    #32206468
наутилус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
+ сначала надо пробежаться по всем полям (дабы выбрать название). а как вы сами говорили если полей больше 100... то может быстрее будет убить одно поле?
...
Рейтинг: 0 / 0
13.07.2003, 13:04
    #32206470
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как сделать select * from tbl, кроме одного поля?
2 Лох:

Простая арифметика. Случай 1. Делаем что-то (например, вставляем запись либо кушаем кактус). Случай 2. Делаем точно то же самое плюс что-то еще неважно каким способом. Что быстрее? Зависит ли это от чего-то?

2 наутилус:

> если полей больше 100

Все равно. Когда приходится рисовать руками, то руки приходится беречь. А если программа, то какая разница, 20 или 2000?
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля? / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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