Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 | 2 |

 

  Вопрос: запрос на инвертирование Добавлено: 25.12.06 03:05  

Автор вопроса:  Antibiotic
у меня в таблице есть чекбокс..
соответственно он принимает значения true или false..
можно ли поменять значение этого поля в каждой записи на обратное при помощи запроса на обновление?

в форме я сделал код для построчной переборки и исправления, но смущает скорость обработки.. с большим числом записей задержка будет все увеличиваться и увеличиватсья.. через запрос это было бы на порядок быстрее

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #1 Добавлено: 25.12.06 03:07
да и последовательный перебор в форме выглядит напряжно.. некрасиво когда перед тобой программа начинает крутить таблицу и править значения.. ((

Ответить

Номер ответа: 2
Автор ответа:
 shady



ICQ: 344149605 

Вопросов: 0
Ответов: 10
 Профиль | | #2 Добавлено: 25.12.06 08:07
Нужно почитать описание к Вашей БД. В SQL Server например true=1 false=0 и поле имеет тип Bit

Ответить

Номер ответа: 3
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #3 Добавлено: 25.12.06 11:48
даже если true=1 false=0..
у меня AccessXP..

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 25.12.06 13:02
можно ли поменять значение этого поля в каждой записи на обратное при помощи запроса на обновление?

А почему нет? Что мешает тебе сделать запрос типа такого?
UPDATE blah-blah SET Flag = Not Flag WHERE blah-blah

Ответить

Номер ответа: 5
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #5 Добавлено: 26.12.06 02:46
это односторонний запрос на обновление..
а для инвертирования нужен двухсторонний.. (
или я что то не понял?

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 26.12.06 04:32
Ты каких-то умных терминов начитался но похоже не по назначению их используешь...

Ответить

Номер ответа: 7
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #7 Добавлено: 26.12.06 07:59
не начитался..
ну извините конечно пожалуйста что на ИТ факультет поступить невозможно и я учусь на экономике где слыхом не слыхивали о программировании..
извините что я самоучка и пытаюсь что то даже написать..
и изъясняюсь не академическими терминами а в меру своего понимания..

но какое это имеет отношение к моему вопросу?
я просто хочу знать есть ли возможность сделать инвертирование через запрос? если да то намекните как..
в программе у меня..
For s = 1 To F2.Form.Recordset.RecordCount
If F2.Form.select = True Then F2.Form.select = False Else F2.Form.select = True
F2.Form.Recordset.MoveNext
Next s

а как в запросе на обновление сделать if и else?

Ответить

Номер ответа: 8
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #8 Добавлено: 26.12.06 08:38
есть ли возможность сделать инвертирование через запрос?

А я, по твоему, в четвертом посте что сделал??
или я что то не понял?

Именно ты что то и не понял.. Ты вообще, с SQL дело когда либо имел? В твоем случае F2.Form.Recordset - это набор записей, а в случае с запросом типа Update, как правило, никакого результирующего набора записей не возвращается. Update позволяет обновить махом необходимое количество записей НЕ перебирая их в цикле как у тебя...
И что в твоем понятии означает двусторонний запрос на обновление?

Ответить

Номер ответа: 9
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #9 Добавлено: 26.12.06 09:10
я знаю что такое запрос на обновление..
поэтому его и хочу использовать..

при нажатии кнопки обнуления у меня выполняется вот такое запрос..
UPDATE [movie] SET [movie].select = False WHERE [movie].[select]=True;

сдесь если у чекбокса стояло true становится false и в результате у всех записей в таблице в этом поле стоит false..

сейчас же я хочу чтобы в таблице значения не обнулились а ПОМЕНЯЛИСЬ!
чтобы где было true стало false, а где было false стало true.. моих знаний нехватает для такого запроса.. а последовательно выполнить 2 запроса на обновление не имеет смысла.. тк после первого все значения станут одинаковыми..

наглядное изображение чего я хочу
true -> false
false -> true
true -> false
true -> false

Ответить

Номер ответа: 10
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #10 Добавлено: 26.12.06 09:17
А угадай с одного раза, что произойдет если ты выполнишь такой запрос?
UPDATE [movie] SET [movie].select = NOT [movie].select

Ответить

Номер ответа: 11
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #11 Добавлено: 26.12.06 09:20
не начитался..
ну извините конечно пожалуйста что на ИТ факультет поступить невозможно и я учусь на экономике где слыхом не слыхивали о программировании..

Это хорошо даже, на ИТ факультете могут полной ерисью голову забить :(

Ты не волнуйся главное - тут запрос все правильно делает - он как раз инвертирует значение логической переменой. NOT - унарная операция, из True она делает False, из False - True. То есть никакой проблемы на самом деле нет и эта задача - элементарная, бывают и посложнее.

Ответить

Номер ответа: 12
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #12 Добавлено: 26.12.06 09:30
извиняюсь.. действительно про NOT я ничего не знал..
спасибо =)

жаль что книги тоже дорогие и их покупка сводится к азартной игре.. 1000 руб и повезет что хорошая или неповезет что фуфел (

Ответить

Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 26.12.06 10:05
или неповезет что фуфел

имхо.. книги - фуфел не бывают.. Просто для каждой книги свое время.. Одни книги ты уже перерос.. а до других ты еще не дорос! Когда то (на заре программирования) мне подарили бестселлер.. Win32 API (Д.Аппельмана) Я тогда открыл ее - нифига не понял.. подумал что фуфуель и закрыл.. И только спустя какое то время я оценил эту книгу по достоинству...

Ответить

Номер ответа: 14
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #14
Добавлено: 27.12.06 11:44
ну извините конечно пожалуйста что на ИТ факультет поступить
невозможно

И слава богу, что невозможно. Лучше вообще не поступать никуда, если
хочешь избежать маразма. Это великая дезинформация нашего времени: ВУЗ
готовит не специалистов, а профессиональных рабов.

Ответить

Номер ответа: 15
Автор ответа:
 Antibiotic



Вопросов: 9
Ответов: 34
 Профиль | | #15 Добавлено: 28.12.06 16:13
я не жду что в ВУЗе на ИТ факультете из меня сделают специалиста..
Просто верю что там я бы мог получить базовые знания от которых дальше бы отталкивался..

а на самом деле поверьте нет ничего хуже учиться на факультете на котором не интересно..
сколько меня не учат эконом из меня никудишный.. этож надо додуматься пользоваться судебным делом для получения денег..
порой экономисты не лучше адвокатов..

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам