Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на изменение записей. / 15 сообщений из 15, страница 1 из 1
29.06.2004, 12:49:21
    #32580919
Андрей GR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Народ, какой синтаксис запроса должен быть на изменение, если мы не знаем название полей, но знаем их последовательность и тип?


Со вставкой все просто:
INSERT INTO TableName
Values('sdf','asfasd','fghdfg');
...
Рейтинг: 0 / 0
29.06.2004, 12:51:30
    #32580926
ищ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
одним запросом не получица. будешь вставлять в цикле.
...
Рейтинг: 0 / 0
29.06.2004, 12:59:24
    #32580960
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Андрей GRНарод, какой синтаксис запроса должен быть на изменение, если мы не знаем название полей, но знаем их последовательность и тип?


Со вставкой все просто:
INSERT INTO TableName
Values('sdf','asfasd','fghdfg');Нет такого в SQL.
Но если знаешь последовательность и тип, то можно через Recordset поля поменять:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim strSQL as String
Dim rs as Recordset
strSQL = "..."  ' открываем rs на нужной записи
 
Set rs = ... 

rs.Edit
rs( 0 ) = ...  ' первое поле
 
rs( 1 ) = ...  ' второе
 
...
rs.Update
...
Рейтинг: 0 / 0
29.06.2004, 13:13:48
    #32581003
маяк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Компромиссное решение - через vba смотрим названия полей, дальше к ним sql-ем обращаемся.
...
Рейтинг: 0 / 0
29.06.2004, 13:35:54
    #32581105
Андрей GR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Все дело в том, что именно на SQL надо! :-(
...
Рейтинг: 0 / 0
29.06.2004, 13:37:51
    #32581111
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Андрей GRВсе дело в том, что именно на SQL надо! :-(
Непонятно, как можно работать с таблицей не зная названия столбцов?
Что за задача такая?
...
Рейтинг: 0 / 0
29.06.2004, 14:52:11
    #32581353
Андрей GR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Да. Вставить-то можно строку, без названия столбцов.
...
Рейтинг: 0 / 0
29.06.2004, 14:56:28
    #32581374
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
1 ну хоть количество столбцов заранее известно ?
2 что дальше делается с запросом:
- запускается руками
- запускается из формы
- ???
...
Рейтинг: 0 / 0
29.06.2004, 14:58:03
    #32581384
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
задачу целиком опиши - возможно существуют готовые нетривиальные решения
...
Рейтинг: 0 / 0
29.06.2004, 22:34:29
    #32582192
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
paparome Андрей GRНарод, какой синтаксис запроса должен быть на изменение, если мы не знаем название полей, но знаем их последовательность и тип?

Со вставкой все просто:
INSERT INTO TableName
Values('sdf','asfasd','fghdfg');Нет такого в SQL.


Это, видать, в вашем нету - а вообще есть :)

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

Код: plaintext
1.
2.
3.
4.
CREATE TABLE tt1
( f1 INTEGER, f2 VARCHAR( 128 ), f3 DOUBLE);

INSERT INTO tt1 VALUES( 1 ,'10', 1 . 2 );
...
Рейтинг: 0 / 0
29.06.2004, 22:41:42
    #32582194
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Чего-то туплю... вобще не по поводу ответил.
там же не про INSERT а про UPDATE.

Для UPDATE - действительно нету.
В качестве вариантов - как сказал paparome, открывать recordset и идти по записям вколлекции через индекс.
Второй вариант - более надежный (IMHO).
считать спецификацию из того же открытого recordset-а (названия полей) и составить UPDATE запрос.
Третий вариант - почти как второй, только обновлять непосредственно в recordset-е, всеравно он уже открыт.
...
Рейтинг: 0 / 0
30.06.2004, 00:44:36
    #32582251
Андрей GR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
Да, похоже придется мне тогда перечислять поля. Всем спасибо!
...
Рейтинг: 0 / 0
30.06.2004, 09:00:11
    #32582365
paparome
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
авторВторой вариант - более надежный (IMHO).
считать спецификацию из того же открытого recordset-а (названия полей) и составить UPDATE запрос.
Третий вариант - почти как второй, только обновлять непосредственно в recordset-е, всеравно он уже открыт.
Второй вариант: Дык один фиг для чтения спецификации придется по числовым индексам проходить
Третий вариант: вообще, от моего ни чем не отличается :)
...
Рейтинг: 0 / 0
30.06.2004, 09:12:03
    #32582396
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
так задачку и не обьяснил - жаль , вдруг что-то красивое ускользнуло!
...
Рейтинг: 0 / 0
30.06.2004, 11:06:17
    #32582709
Bely
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос на изменение записей.
paparomeТретий вариант: вообще, от моего ни чем не отличается :)
Ну как сказать... вообще все эти варианты слабо друг от друга отличаются, поскольку все сводится к Recordset-у
А разница между нашими вариантами мала, но есть.
Одно дело индексировать поля в Recordset-е по порядку вхождения, другое дело считывать имена и искать под это имя правильное значение.

При создании VIEW на основе таблицы и перепутывании полей твой способ ломается, мой - нет.

А я вот еще о чем подумал...
Если в таблице нет Counter-ов, особенно в качестве ключа и эта таблица не является MASTER-ом для других, то можно разбить задачц на две:
1) Удалить старую запись
2) Добавить новую INSERT-ом

:)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на изменение записей. / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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