|
Адо, редактирование. Как? |
☑ |
0
YF
10.07.12
✎
13:56
|
Хочу редактировать табличку акцесс или Фокспро через адо.
Как открыть ее на редактирование?
Делаю так:
объектАДО = Новый COMОбъект("ADODB.Connection");
объектАДО.Open(строкаПодключения_);
командаАДОДБ_ = Новый COMОбъект("ADODB.Command");
командаАДОДБ_.ActiveConnection = объектАДО;
командаАДОДБ_.CommandText = "Select * From MyTable";
//
наборЗаписейАДОДБ_ = Новый COMОбъект("ADODB.Recordset");
наборЗаписейАДОДБ_ = командаАДОДБ_.Execute();
наборЗаписейАДОДБ_.MoveFirst();
Пока наборЗаписейАДОДБ_.EOF() = 0 Цикл
наборЗаписейАДОДБ_.Edit();
наборЗаписейАДОДБ_.Fields("ИмяРеквизита").Value = 0;
наборЗаписейАДОДБ_.Update();
// Не забываем перейти к следующей записи
наборЗаписейАДОДБ_.MoveNext();
КонецЦикла;//наборЗаписейАДОДБ_.EOF() = 0
// Закроем набор записей
наборЗаписейАДОДБ_.Close();
Ругается на отсутствие метода Edit
Если убрать Edit, то ругается, что рекордсет не поддерживает обновление
|
|
1
shuhard
10.07.12
✎
13:59
|
(0) надо правильно открывать рекордсет:
MyCon = Новый COMОбъект ("ADODB.Connection");
MyCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=D:\1.MDB");
MyRst = Новый COMОбъект ("ADODB.Recordset");
MyStr = "select * from zdania where NOM_REG_VI=1 and id_predpr=1 and id_ik=1 and id_zdan=1";
MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
MyRst.Fields("Resultat").Value="Киргуду"; // Присвоение
MyRst.Update(); //Запись
MyRst.Close();
MyCon.Close();
|
|
2
shuhard
10.07.12
✎
14:01
|
(1) ну и конечно после Open
MyRst.Edit();
|
|
3
YF
10.07.12
✎
14:01
|
(1) А как рекордсет связан с конкретным экземпляром АДО?
|
|
4
skunk
10.07.12
✎
14:01
|
еще правильние ознакомиться с ... языком запросов ... апдейт
|
|
5
YF
10.07.12
✎
14:02
|
+(3) ай, торможууууу, щас попробую
|
|
6
shuhard
10.07.12
✎
14:02
|
(3)
MyRst.Open (MyStr, MyCon, 2, 3);//adOpenDynamic, adLockOptimistic
|
|
7
774816
10.07.12
✎
16:24
|
UpdateBatch
|
|