rs.close проблема

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

rs.close проблема

Сообщение lord0n » 06.08.2005 (Сб) 21:39

как узнать закрыт рекордсет или нет?
мне приходит на ум только ловить ошибку

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:11

Код: Выделить всё
If RS.State = 1 Then RS.Close 'Закрываем если открыт
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:13

смотрел в отладчике он у меня всегда = 0
я сам к нему хотел привязаться

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:14

Еще можно убивать рекордсет:)
Set RS = Nothing

тока потом надо заново все создать ...
ещё можешь проверять
If Not Rs Is Nothing Then ... ' проверка на существование
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:15

У тебя RS локализован для процы возможно:)

Подробнее о ошибке что пишет?
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:16

ща проверю

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:18

операция не допускается если обьект закрыт

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:20

Так у тебя он уже закрыт ... RS.State = 0
А еесли открыт RS.State = 1
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:21

SSecurity писал(а):If Not Rs Is Nothing Then


а случайно не знаеш как сделать чтоб не "если рс закры то", а наоборот

просто весь день програмил - уже туплю

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:23

SSecurity писал(а):Так у тебя он уже закрыт ... RS.State = 0
А еесли открыт RS.State = 1


в том то и трабла что хоть он закрыт, хоть откры - стайт всегда 0
сам не пойму в чем дело :(

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:24

так ... а ты можешь дать кусок кода ...
Просто уже интересно:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:26

Код: Выделить всё

Private Sub Form_Initialize()

Set RS = New ADODB.Recordset
RS.Open "select * from Art Order by Артикул", db, adOpenDynamic, adLockOptimistic

Set grd.DataSource = RS

RS.Close
db.Close

End Sub

Private Sub Form_Unload(Cancel As Integer)
RS.Close
db.Close
End Sub

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:30

Так .... поставь после строки
Set grd.DataSource = RS

отладчик на строке
RS.Close

и в Имедиат виндовсе напиши
? RS.State
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:33

После коннекта ты все закрываешь у тебья итак все при инициализации закрыто ...

Если уберешь
Код: Выделить всё
RS.Close
db.Close


из Form_Initialize() все будет работать:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:35

согласен так получается 1
но как только он входит в анлоад он становится в любом случае 0
мож вставить закрытие куданить в другое место типа терминейт или vb при входе в анлоад сам закрывает рекордсет?

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:37

SSecurity писал(а):После коннекта ты все закрываешь у тебья итак все при инициализации закрыто ...

Если уберешь
Код: Выделить всё
RS.Close
db.Close


из Form_Initialize() все будет работать:)


так у меня на кнопках в форме висит открытый рс и закрыть я его не могу

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:37

смотри выше:)))) ...
убери лишнее закрытие:)
или убери их из унлоада ююю они итак закрыты:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:40

все разобрался - при входе в анлоад он сам закрывается
третий раз огромное спасибо :!: :!: :!: :wink:

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:40

lord0n писал(а):согласен так получается 1
но как только он входит в анлоад он становится в любом случае 0
мож вставить закрытие куданить в другое место типа терминейт или vb при входе в анлоад сам закрывает рекордсет?


Потому как в этой и следующей строке ты закрываешь и Рекордсет и Соединение:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:44

SSecurity писал(а):
lord0n писал(а):согласен так получается 1
но как только он входит в анлоад он становится в любом случае 0
мож вставить закрытие куданить в другое место типа терминейт или vb при входе в анлоад сам закрывает рекордсет?


Потому как в этой и следующей строке ты закрываешь и Рекордсет и Соединение:)


даже если ебрать ету строку то всеравно
я же говорю что туплю, прошу прощения :oops: :oops: :oops:
разобрался

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:47

сделай так...
ТОКА объявление Dim RS as New recordset должен быть на уровне формы


Код: Выделить всё
Private Sub Form_Initialize()

Set RS = New ADODB.Recordset
RS.Open "select * from Art Order by Артикул", db, adOpenDynamic, adLockOptimistic

Set grd.DataSource = RS

End Sub

Private Sub Form_Unload(Cancel As Integer)
  msgbox RS.State
End Sub


то получишь RS.State = 1, потому что ты его не закрывал и сам он не закрывается:)
а вообще если сделать в Form_Unload
Код: Выделить всё
  Set RS = Nothing
  Set db = Nothing

то, не ошибешься
Последний раз редактировалось SSecurity 06.08.2005 (Сб) 22:50, всего редактировалось 1 раз.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:49

елки моталки надо не рс проверять а саму базу
ну я и тупой :ncool:

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:52

все бли спать пора а незя

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:54

Молодец, нашел ошибку - исправь:)
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 22:56

я перед тобой должник стока времени на меня угрохал

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 06.08.2005 (Сб) 22:59

Да ладно тебе, мне не сложно, будут вопросы - задавай.
Успехов, как спать решишь - приятных сновидений.
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

lord0n
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 845
Зарегистрирован: 30.06.2005 (Чт) 9:55
Откуда: Moskow

Сообщение lord0n » 06.08.2005 (Сб) 23:00

еще раз огромное спасибо :)


Вернуться в Visual Basic 1–6

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

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

    TopList