Имя: Пароль:
1C
1С v8
ADODB.RecordSet with UPDATE
0 areaho0ray
 
19.10.16
08:09
Доброго времени суток.
Сейчас влип в ситуацию - через RecordSet изменяю строки, попавшие под условия. Но есть такие моменты, что под условие ни одна из строк в таблице не попадает. В этом случае нужно сделать INSERT. Но - как понять, что количество измененных строк после RecordSet.Open() = 0?
1 бомболюк
 
19.10.16
08:41
на уровне adodb.recordset не подскажу, а вот на уровне t-sql есть там @@rowcount, поэтому делаешь так:
update tablename set fieldname = 'value'
if (@@rowcount = 0)
insert into tablename(fieldname) values('value')
2 areaho0ray
 
19.10.16
08:42
Хмм... У меня база в .sdf, я даже не знаю, есть ли там такая возможность.
3 бомболюк
 
19.10.16
08:44
а свойство "RecordCount" у adodb.recordset - это не то?
4 areaho0ray
 
19.10.16
08:47
token in error = if

(3) Показывает, если сделать SELECT. А при UPDATE говорит
RecordCount    Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.

Хоть я его не закрываю. Подозреваю, это из-за того, что в переменной LockType = 1
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан