Отвязный RecordSet

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Отвязный RecordSet

Сообщение vvs_adm » 14.04.2005 (Чт) 12:32

Создаю
Код: Выделить всё
Dim rsMy_BD as New ADODB.Recordset
rsMy_BD.ActiveConnection=cnMain
rsMy_BD.CursorLocation=adUseClient
rsMy_BD.CutsorType=adOpenStatic
rsMy_BD.LockType=adLockOptimistic
rsMy_BD.Source="SELECT * FROM My_Table"
rsMy_BD.Open

.....
.....
change rsMy_BD.Fields("...")
.....
Exit Sub
Почему при заходе в Таблицу в следующий раз я вижу ее обновленной? Метода .Update нигде нет вообще. Там, где троеточие, код вообще к рекордсету практически не относится.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 14.04.2005 (Чт) 12:38

rsMy_BD.LockType=adBatch....(чего то там)
...

rsMy_BD.Open
rsMy_BD.ActiveConnection=nothing
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 12:46

Попробую, но в вумной книге написано, что пока .Update не сделаешь, можно не беспокоиться...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.04.2005 (Чт) 14:59

если у тебя сидит на этом рекордсете грид, то в нем могли проапдейтить записи без твоего ведома, если обработка событий не включена

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 15:17

Konst_One Да там вшивый MSH FlexGrid ручками заполняется, используя измененные строки рекордсета, но никаких апдейтов там тоже нет, хотя они б и не мешали :)
P.S.: И он не сидит на этом рекордсете. он просто на той же форме валяется...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.04.2005 (Чт) 15:46

тогда проверяй, может кто апдейтит твою таблицу на сервере или через другой софт (для SQL server запусти Profiler и смотри, что с твоей таблицей делается)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 16:16

Konst_One Так дело в том, что у компа даже сетевухи нету :)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.04.2005 (Чт) 16:22

тогда см свою функцию
Код: Выделить всё
change rsMy_BD.Fields("...")

наверное в ней ошибка

или код в студию, мы не телепаты :)

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 16:32

Konst_OneДа Change - это вообще не функция, это я сократил. Там написано типа : rsMy_BD.Fields(0)=rsMy_BD.Fields(0)+"NewString" Да потом почти сразу rsMy_BD.close set rsMy_BD= nothing Unload form
А при новой загрузке формы вываливаю рекордсет в грид, а он уже измененный гад. Я конечно попробую активконекшен=нафиг, но разве он должен меняться??? При курсор локейшене на клиенте и без апдейта?

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 16:43

rsMy_BD.ActiveConnection=nothing
Оно, конечно помогло. Спасибо. Только странно, что оно нужно...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.04.2005 (Чт) 17:10

а это что:
Код: Выделить всё
rsMy_BD.Fields(0)=rsMy_BD.Fields(0)+"NewString"


вот это и есть изменение данных

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 14.04.2005 (Чт) 17:11

у тебя курсор
Код: Выделить всё
rsMy_BD.LockType=adLockOptimistic

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 14.04.2005 (Чт) 17:24

Konst_One Да оно то понятно, непонятно, какой ... вумную книжку писал и зачем я раньше после изменения данных rs.Update делал... Надо правда еще раз внимательнее книгу то перелистать, наверное я чего то пропустил и я даже догадываюсь, что :)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList