|
Попытка записать через ADO в чужую базу ₽ |
☑ | ||
|---|---|---|---|---|
|
0
VadPl
04.08.08
✎
16:03
|
Пытаюсь записать в чужую не 1С базу.
---------------------------------------------------------- Соединение=СоздатьОбъект("ADODB.Connection"); СтрокаКоннекта="driver={SQL Server};server=SERVER;uid=sa;pwd=******;Database=База"; Соединение.ConnectionTimeOut=20; Соединение.CursorLocation=3; ------------- Вариант 1: --------------------------------- Запрос = СоздатьОбъект("ADODB.Recordset"); Запрос.Open("SELECT * FROM TAB1",Соединение,3,3); НовыйИД = НовыйИД + 1; Запрос.AddNew(); Запрос.Fields("ID").Value = НовыйИД; Запрос.Update(); Запрос.Close(); ---------- Ошибка ------------------------------------------- Microsoft Cursor Engine: Произошли ошибки во время выполнения многошаговой операции. Проверте значения всех состояний. ------------- Вариант 2: --------------------------------- ЗапросАДО=СоздатьОбъект("ADODB.Command"); ЗапросАДО.ActiveConnection=Соединение; ТекстЗапроса="INSERT INTO TAB1 (ID) VALUES ("+СокрЛП(Строка(НовыйИД))+")"; ЗапросАДО.CommandText=ТекстЗапроса; Результат=ЗапросАДО.Execute(); ---------- Ошибка ------------------------------------------- Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert explicit value for identity column in table 'TAB1' when IDENTITY_INSERT is set to OFF. ------------- Вариант 2: --------------------------------- ТекстЗапроса="SET IDENTITY_INSERT TAB1 ON"; ЗапросАДО.CommandText=ТекстЗапроса; Результат=ЗапросАДО.Execute(); ТекстЗапроса="INSERT INTO TAB1 (ID) VALUES ("+СокрЛП(Строка(НовыйИД))+")"; ЗапросАДО.CommandText=ТекстЗапроса; Результат=ЗапросАДО.Execute(); ---------- Ошибка ------------------------------------------- Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Violation of PRIMARY KEY constraint 'PK_tab1'. Cannot insert duplicate key in object 'dbo.TAB1'. -------------------------------------------------------------------- с ADO и SQL знаком не хорошо. Вопрос: где поискать или почитать в инете, что делать с этим, или кто-то делал такое? |
|||
|
1
ТелепатБот
гуру
04.08.08
✎
16:03
|
||||
|
2
Nordok
04.08.08
✎
16:09
|
TAB1 чё за структура таблицы?
|
|||
|
3
ДенисЧ
04.08.08
✎
16:09
|
"Cannot insert explicit value for identity column in table 'TAB1" - это понятно. Нельзя вствлять идентити-поля, явно не разрешив их
Cannot insert duplicate key in object - тоже. Вставляешь неуникальное значение в первичный ключ |
|||
|
4
КонецЦикла
04.08.08
✎
16:20
|
Чего надо-то?
Там одна колонка с identity? Тогда insert into TAB1 default values |
|||
|
5
VadPl
04.08.08
✎
16:20
|
TAB1.ID - int
TAB1.S1 - smalint ... TAB1.S10 - smalint НовыйИД который вставляю, точно не повторяется |
|||
|
6
VadPl
04.08.08
✎
16:30
|
На insert into TAB1 default values
-> Explicit value must be specified for identity column in table 'FRY' either when IDENTITY_INSERT is set to ON or when a replication user is inserting into a NOT FOR REPLICATION identity column. |
|||
|
7
VadPl
04.08.08
✎
16:41
|
Спасибо ДенисЧ.
Cannot insert duplicate key in object - тоже. Вставляешь неуникальное значение в первичный ключ. Я настоящий идиот. |
|||
|
8
Nordok
04.08.08
✎
16:42
|
Нефига не понял, ты руками хочешь заполнять identity колонку?
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |