![]() |
|
Запись в базу SQL | ☑ | ||
---|---|---|---|---|
0
mdv92
06.12.10
✎
16:14
|
MyRst.Fields("Resultat").Value="Киргуду";
MyRst.Update(); Эти волшебные слова у меня есть. Мне не хватает - как сказать, в какую именно таблицу я хочу писать и как добавить новую запись. |
|||
1
Grusswelle
06.12.10
✎
16:15
|
а это смотря как тебе надо: замещением или добавлением
|
|||
2
ado
06.12.10
✎
16:18
|
||||
3
mdv92
06.12.10
✎
16:19
|
(1) Добавлением!
|
|||
4
el-gamberro
06.12.10
✎
16:20
|
Update table
Set field = 'Киргуду' Where ... |
|||
5
ado
06.12.10
✎
16:21
|
(3) Используй SQL-запрос INSERT. Писать в базу через рекордсет тебе не любой провайдер позволит.
|
|||
6
mdv92
06.12.10
✎
16:29
|
Предположим, мне надо создать 10 новых записей с номером 1,2, ... 10 и словом Кирдуду в таблице TLIST
|
|||
7
mdv92
06.12.10
✎
16:33
|
INSERT INTO TLIST VALUES ('1', Кирдуду);
Так? Уже записалось? Потом только MyRst.Close(); Коннект.Close(); или TLIST.Close(); |
|||
8
el-gamberro
06.12.10
✎
16:41
|
(7) что за объект TLIST?)
|
|||
9
mdv92
06.12.10
✎
16:43
|
(7) Это одна из таблиц базы.
|
|||
10
el-gamberro
06.12.10
✎
16:49
|
(9) Рекомендую объект Command
objComm = Новый COMОбъект("ADODB.Command"); objComm.CommandText = "INSERT INTO TLIST VALUES ('1', Кирдуду);"; objComm.Execute(); |
|||
11
el-gamberro
06.12.10
✎
16:49
|
+10 objComm = Неопределено;
|
|||
12
КМ155
06.12.10
✎
16:58
|
(0) во нафлюдили
у MyRst ест метод AddNew() |
|||
13
mdv92
06.12.10
✎
17:01
|
Сначала написано:
СтрСоединения = "dri.....245376;"; Коннект = Новый COMObject("ADODB.Connection"); КонКоманда = Новый COMObject("ADODB.Command"); Коннект.Open(СтрСоединения); КонКоманда.ActiveConnection = Коннект; КонКоманда.CommandText = "select id from "+ПолеВводаНаименованиеБазы+".dbo.TLIST"; КонКоманда.Prepared = 1; АДОРекордСет = Новый COMОбъект("ADODB.RecordSet"); АДОРекордСет = КонКоманда.Execute(); Для каждого Эл из Справочники.Номенклатура Цикл ТекЭл=Эл.ПолучитьСсылку; NSERT INTO АДОРекордСет VALUES (ТекЭл.Код,ТекЭл.Родитель.ПолныйКод,ТекЭл.Наименование); КонецЦикла; |
|||
14
mdv92
06.12.10
✎
17:02
|
Похоже?
|
|||
15
КМ155
06.12.10
✎
17:03
|
(13) бред
близкий к помешательству |
|||
16
mdv92
06.12.10
✎
17:08
|
(15) Бред - только здесь!
"NSERT INTO АДОРекордСет VALUES" |
|||
17
el-gamberro
06.12.10
✎
17:08
|
(13) вау, шикарно просто))))
|
|||
18
ado
06.12.10
✎
17:11
|
(13) Тьфу, блин. Позовите программиста.
|
|||
19
el-gamberro
06.12.10
✎
17:11
|
ТекстКоманды = "";
Сч = 1; Для каждого Эл из Справочники.Номенклатура Цикл ТекстКоманды = ТекстКоманды + " INSERT INTO TLIST VALUES ('+"Сч"+', '+"Эл.Наименование"+'); "; Сч = Сч + 1; КонецЦикла; objComm = Новый COMОбъект("ADODB.Command"); objComm.CommandText = ТекстКоманды; objComm.Execute(); |
|||
20
mdv92
06.12.10
✎
17:15
|
Выборка=Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл NSERT INTO АДОРекордСет VALUES (Выборка.Код,Выборка.Родитель.ПолныйКод,Выборка.Наименование); КонецЦикла; |
|||
21
КМ155
06.12.10
✎
17:15
|
(16) тебе же русским языком сказано AddNew()
в гугле забанили ? |
|||
22
mdv92
06.12.10
✎
17:16
|
(19) Агп! А потом всё запишется одновременно!
|
|||
23
mdv92
06.12.10
✎
17:17
|
(22) А до этого сказали - INSERT INTO.
Всё! Поняла! Спасибо. Про название таблицы-то у меня правильно написано? |
|||
24
mdv92
06.12.10
✎
17:33
|
Соединение=СоздатьОбъект("ADODB.Connection");
НаборЗаписей=СоздатьОбъект("ADODB.RecordSet"); Соединение.ConnectionString="DRIVER=Microsoft FoxPro VFP Driver (*.dbf);SourceDB=D:\;SourceType=DBF;"; Соединение.ConnectionTimeOut=15; Соединение.CursorLocation=3; Соединение.Open(); СтрокаЗапроса="SELECT * FROM METRO.dbf"; НаборЗаписей.CursorType=2; НаборЗаписей.LockType=3; НаборЗаписей.ActiveConnection=Соединение; НаборЗаписей.Open(СтрокаЗапроса); НаборЗаписей.AddNew(); НаборЗаписей.Fields(0).Value=1; НаборЗаписей.Fields(1).Value=2; НаборЗаписей.Fields(2).Value=AnsiToOem("Иван Иванович Иванов"); НаборЗаписей.Fields(3).Value=AnsiToOem("John Smith"); НаборЗаписей.Update(); Во какую я штуку украла! Сейчас ее приспособлю! |
|||
25
Жан Пердежон
06.12.10
✎
17:37
|
(24) какой ужас, insert into используй, как выше сведущие люди советуют;
|
|||
26
mdv92
06.12.10
✎
17:39
|
А в чем разница?
|
|||
27
mdv92
06.12.10
✎
17:42
|
НаборЗаписей.CursorType=2;
НаборЗаписей.LockType=3; НаборЗаписей.ActiveConnection=Соединение; Вот эта часть - нужна? |
|||
28
mdv92
06.12.10
✎
17:44
|
Если я ничего не хочу из таблицы вытаскивать - можно начать прямо с
Соединение=СоздатьОбъект("ADODB.Connection"); НаборЗаписей=СоздатьОбъект("ADODB.RecordSet"); Соединение.ConnectionString="DRIVER=Microsoft FoxPro VFP Driver (*.dbf);SourceDB=D:\;SourceType=DBF;"; Соединение.ConnectionTimeOut=15; Соединение.CursorLocation=3; Соединение.Open(); НаборЗаписей.AddNew(); НаборЗаписей.Fields(0).Value=1; НаборЗаписей.Fields(1).Value=2; НаборЗаписей.Fields(2).Value=AnsiToOem("Иван Иванович Иванов"); НаборЗаписей.Fields(3).Value=AnsiToOem("John Smith"); НаборЗаписей.Update(); |
|||
29
mdv92
06.12.10
✎
17:51
|
НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
ТекстСелект="Select * from TLIST "; Попытка НаборЗаписей.Open(СтрокаЗапроса); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Выборка=Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл НаборЗаписей.AddNew(); НаборЗаписей.Fields(0).Value=Выборка.Код; НаборЗаписей.Fields(1).Value=Выборка.Родитель.ПолныйКод;НаборЗаписей.Fields(2).Value=Выборка.Наименование; НаборЗаписей.Update(); КонецЦикла; Ну как?? |
|||
30
el-gamberro
06.12.10
✎
17:53
|
Вы 92 или 67го? Неловко конечно у дамы спрашивать, но...
|
|||
31
mdv92
06.12.10
✎
17:54
|
Да какая разница? 92 - моя дочь, уверена, она бы справилась лучше, но ей некогда.
|
|||
32
mdv92
06.12.10
✎
17:55
|
но мне кажется, в (29) - уже близко к истине!
|
|||
33
Жан Пердежон
06.12.10
✎
18:03
|
близко было в (20), а потом пошло не в ту сторону
|
|||
34
mdv92
06.12.10
✎
18:15
|
Так в чём разница-то?
Наверное, я могу и так написать: ТекстКоманды=""; Выборка=Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл ТекстКоманды = ТекстКоманды + " INSERT INTO TLIST VALUES (Выборка.Код,Выборка.Родитель.ПолныйКод,Выборка.Наименование); "; КонецЦикла; objComm = Новый COMОбъект("ADODB.Command"); objComm.CommandText = ТекстКоманды; objComm.Execute(); Значения можно прямо так перечислять? Зачем в (19) кавычки? |
|||
35
Жан Пердежон
06.12.10
✎
18:26
|
(34) затем, что просто так нельзя:
objComm = Новый COMОбъект("ADODB.Command"); Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл objComm.CommandText = "INSERT INTO TLIST VALUES ("+Выборка.Код+","+Выборка.Родитель.ПолныйКод+","+... +")"; objComm.Execute(); КонецЦикла; |
|||
36
mdv92
06.12.10
✎
18:49
|
А двойная кавычка годится разве?
|
|||
37
mdv92
06.12.10
✎
18:51
|
TLIST - это имя таблицы, этого достаточно?
А всего прочего огорода не надо? Соединение=СоздатьОбъект("ADODB.Connection"); НаборЗаписей=СоздатьОбъект("ADODB.RecordSet"); Соединение.ConnectionString="DRIVER=Microsoft FoxPro VFP Driver (*.dbf);SourceDB=D:\;SourceType=DBF;"; Соединение.ConnectionTimeOut=15; Соединение.CursorLocation=3; Соединение.Open(); Не, надо как-то сообщить, что objComm относится к нашей базе. |
|||
38
mdv92
06.12.10
✎
18:54
|
А сначала вот это!
СтрСоединения = "dri.....245376;"; Коннект = Новый COMObject("ADODB.Connection"); objComm = Новый COMObject("ADODB.Command"); Коннект.Open(СтрСоединения); objComm.ActiveConnection = Коннект; Потом Выборка = Справочники.Номенклатура.Выбрать(); Пока Выборка.Следующий() Цикл objComm.CommandText = "INSERT INTO TLIST VALUES ("+Выборка.Код+","+Выборка.Родитель.ПолныйКод+","+... +")"; objComm.Execute(); КонецЦикла; И потом еще закрыть? |
|||
39
Amra
06.12.10
✎
18:54
|
В коннекшнстринг указывай базу
|
|||
40
mdv92
06.12.10
✎
18:57
|
(39) в смысле - в СтрСоединения?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |