Запись в Interbase через ODBC с помощью ADO из 1с!
От: SLAVA66  
Дата: 29.09.05 08:45
Оценка: :)
Здрасьте!
Я работаю с Interbase'овской БД через ODBC с помощью ADO из 1с!
Задача такая: некоторые данные вынимать из 1с и записывать в базу Interbase!
Вопрос: Как организовать запись в Interbase!
пытался кое что сам накатать своими крючечками...не выходит...нужна помощь!!!!
Вот то что я накатал...:

БД=CreateObject("ADODB.Connection");
БД.ConnectionString = "DRIVER=Firebird/InterBase(r) driver;PWD=masterkey;UID=SYSDBA;DBNAME=localhost:"+ПутьФ+"";
БД.Open();
Запрос=СоздатьОбъект("ADODB.Recordset");
Запрос.ActiveConnection = БД;
Запрос.Source = "Insert into fcapital(Code_business,Calc_codebus,No_invent,Inn_obj,NAME_FC) values('58','0','99999999999999','9999999999999','test')";
Запрос.Open();
Запрос.Close();
БД.Close();
КонецПроцедуры

выдает ошибку:
Запрос.Open(); Microsoft OLE DB Provider for ODBC Drivers: violation of PRIMARY or UNIQUE KEY constraint "PK_FCAPITAL" on table "FCAPITAL"

Если у кого есть соображения напишите... и если можно пример проги (т.к. никогда не работал с ADO и Interbase)
Re: Запись в Interbase через ODBC с помощью ADO из 1с!
От: tarasich  
Дата: 29.09.05 08:55
Оценка:
Здравствуйте, SLAVA66, Вы писали:

SLA>выдает ошибку:

SLA>Запрос.Open(); Microsoft OLE DB Provider for ODBC Drivers: violation of PRIMARY or UNIQUE KEY constraint "PK_FCAPITAL" on table "FCAPITAL"

SLA>Если у кого есть соображения напишите... и если можно пример проги (т.к. никогда не работал с ADO и Interbase)


Ошибка не выглядит какой-то особенной.
Что вообще известно про таблицу FCAPITAL и ее ключи?
там уже есть аналогичная запись?
Re: Запись в Interbase через ODBC с помощью ADO из 1с!
От: Alex.Che  
Дата: 29.09.05 08:57
Оценка:
Привет, SLAVA66!
Вы пишешь 29 сентября 2005:

[Sorry, skipped]
S> выдает ошибку:
S> Запрос.Open(); Microsoft OLE DB Provider for ODBC Drivers:
S> violation of PRIMARY or UNIQUE KEY constraint "PK_FCAPITAL" on table "FCAPITAL"

Тебе ж ясно сказали, пытаешься воткнуть в таблицу FCAPITAL,
такое значение, которое уже есть в первичном ключе (PK_FCAPITAL).

Обратись к тому, кто проектировал базу на InterBase за консультациями.

--
With best regards, Alex Cherednichenko.
Posted via RSDN NNTP Server 1.9
Re[2]: Запись в Interbase через ODBC с помощью ADO из 1с!
От: SLAVA66  
Дата: 29.09.05 09:17
Оценка:
Здравствуйте, tarasich, Вы писали:

T>Здравствуйте, SLAVA66, Вы писали:


SLA>>выдает ошибку:

SLA>>Запрос.Open(); Microsoft OLE DB Provider for ODBC Drivers: violation of PRIMARY or UNIQUE KEY constraint "PK_FCAPITAL" on table "FCAPITAL"

SLA>>Если у кого есть соображения напишите... и если можно пример проги (т.к. никогда не работал с ADO и Interbase)


T>Ошибка не выглядит какой-то особенной.

T>Что вообще известно про таблицу FCAPITAL и ее ключи?
T>там уже есть аналогичная запись?

Ключа всего 4 на первые четыре поля (+ NOTT NULL).
я и делаю обязательную запись на первые четыре поля плюс одно текстовое "TEST".
аналогичных записей нет...
так откройте же мне глаза...
Re[3]: Запись в Interbase через ODBC с помощью ADO из 1с!
От: OLEGus1 Россия  
Дата: 29.09.05 12:40
Оценка:
Здравствуйте, SLAVA66, Вы писали:

SLA>так откройте же мне глаза...

1. проверить PK_FCAPITAL (я так понял он из неск. полей?)
2. убедиться, что вставляемые значения отсутствуют в PK_FCAPITAL
3. Проверить типы. Хотя тогда он по другому бы ругался
values('58','0','99999999999999','9999999999999','test')";
Crescite, nos qui vivimus, multiplicamini
Re[4]: Запись в Interbase через ODBC с помощью ADO из 1с!
От: SLAVA66  
Дата: 29.09.05 18:01
Оценка:
Здравствуйте, OLEGus1, Вы писали:

OLE>Здравствуйте, SLAVA66, Вы писали:


SLA>>так откройте же мне глаза...

OLE>1. проверить PK_FCAPITAL (я так понял он из неск. полей?)
OLE>2. убедиться, что вставляемые значения отсутствуют в PK_FCAPITAL
OLE>3. Проверить типы. Хотя тогда он по другому бы ругался
OLE>values('58','0','99999999999999','9999999999999','test')";

Действетельно PK_FCAPITAL состоит из 4-х ключей:Code_business,Calc_codebus,No_invent,Inn_obj
второе вопрос: почему входящие в PK_FCAPITAL поля (ключевые) при записи не должны иметь вставляемых значений?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.