|   |   | 
| 
 | Подключение к базе Декларант-Алко | ☑ | ||
|---|---|---|---|---|
| 0
    
        Amfiaray 05.12.13✎ 09:05 | 
        Добрый день.
 Подскажите как подключиться к базе Декларант-Алко, я пробую вот так но ничего не получается: ОлеДБ = Новый COMОбъект("ADODB.Connection"); Соединение = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source="+СокрЛП(ПутьКБазе)); Попытка ОлеДБ.Open(Соединение); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; запрос="select * from wrk_Contragents"; cmd = Новый COMОбъект("ADODB.Command"); cmd.ActiveConnection = ОлеДБ; cmd.CommandText=запрос; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet.ActiveConnection = ОлеДБ; RecordSet.CursorLocation = 3; RecordSet.CursorType = 2; RecordSet.Open(cmd); Выдает ошибку: RecordSet.Open(cmd); по причине: Произошла исключительная ситуация (Microsoft Cursor Engine): Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний. Если не ставить RecordSet.CursorLocation = 3; RecordSet.CursorType = 2; то нормально открывает, но добавлять ничего не дает | |||
| 1
    
        Amfiaray 05.12.13✎ 09:51 | 
        Неужели никто не встречался с таким?     | |||
| 2
    
        Ёпрст гуру 05.12.13✎ 10:04 | 
        она с паролем     | |||
| 3
    
        Ёпрст гуру 05.12.13✎ 10:07 | 
        на вот..
 ОлеДБ = Новый COMОбъект("ADODB.Connection"); Соединение = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source="+СокрЛП(КаталогИБ)+";SSCE:Database Password=7338a7e6-fd3b-49d1-8d90-ddbbc1b39fa1"; ОлеДБ.Open(Соединение); Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = ОлеДБ; ТекстЗапроса = " |INSERT INTO DecF11 ...."; Command.CommandText = ТекстЗапроса; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); | |||
| 4
    
        Amfiaray 05.12.13✎ 12:39 | 
        INN = 1234567891;
 Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = ОлеДБ; ТекстЗапроса = "INSERT INTO wrk_Contragents(INN)VALUES("+INN+")"; Command.CommandText = ТекстЗапроса; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); Выдает ошибку RecordSet.Open(cmd); по причине: Произошла исключительная ситуация (Microsoft SQL Server Compact OLE DB Provider): The command contained one or more errors. [,,,,,] Не могу догнать как надо делать :( | |||
| 5
    
        Ёпрст гуру 05.12.13✎ 12:51 | 
        (4) а те че сделать то надо ?     | |||
| 6
    
        Aleksey 05.12.13✎ 12:55 | 
        а там апострофы разве не нужны?
 VALUES('"+INN+"')"; | |||
| 7
    
        Aleksey 05.12.13✎ 12:56 | 
        да и обычно еще и Where пишут, а то он во все строки таблицы зафигачит     | |||
| 8
    
        Ёпрст гуру 05.12.13✎ 12:57 | 
        (7) у него вообще то инсерт
 :) | |||
| 9
    
        zak555 05.12.13✎ 12:57 | 
        зачем её использовать *?     | |||
| 10
    
        zak555 05.12.13✎ 12:58 | 
        сейчас 1с-ка сама умеет всё подписывать и шифровать     | |||
| 11
    
        Aleksey 05.12.13✎ 12:59 | ||||
| 12
    
        zak555 05.12.13✎ 12:59 | 
        поделки от рар лучше в руки не брать -- помню, что они даже не запускались под обычным пользователем
 нужны были одминские права | |||
| 13
    
        Ёпрст гуру 05.12.13✎ 13:03 | 
        (4) 
 вот так сработает insert into wrk_Contragents ([inn],[orgtype]) values ('123123123',1) ибо orgtype не может содержать null полей. Хотя, по-уму, нужно все значимые поля втыкать.. | |||
| 14
    
        Ёпрст гуру 05.12.13✎ 13:06 | 
        (11)
 2. зачетная поделка.. тоже ей пользовался как-то. Хотя, проще самому написать прямо в qa, что надо. | |||
| 15
    
        Amfiaray 05.12.13✎ 13:08 | 
        Всем спасибо, разобрался и всё работает. По поводу того что 1С сама всё умеет я не спорю, но глав бух сказала что "НАДО В ДЕКЛАРАНТ", вот и пляшу тут.     | |||
| 16
    
        zak555 05.12.13✎ 13:09 | 
        (15) кому надо ?     | |||
| 17
    
        Amfiaray 05.12.13✎ 13:13 | 
        (16) Им надо, они так привыкли.     | |||
| 18
    
        Amfiaray 06.12.13✎ 07:34 | 
        Возник ещё вопрос, записывать всё хорошо записывает, а как узвнать id записанной строки?
 Записываю вот так: ТекстЗапроса="INSERT INTO wrk_org ([INN],[KPP],[OrgName],[Phone],[Email],[CCode],[Index],[RCode],[Area],[City],[Place],[Street],[Building],[Korp],[Flat],[Head_id],[OrgType],[DirID],[BuhID],[Liter])VALUES |('"+INN+"','"+KPP+"','"+OrgName+"','"+Phone+"','','643','"+Индекс+"','22','','"+Город+"','','"+Улица+"','"+Дом+"','','','1','','','','')"; cmd = Новый COMОбъект("ADODB.Command"); cmd.ActiveConnection = ОлеДБ; cmd.CommandText=ТекстЗапроса; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet.ActiveConnection = ОлеДБ; RecordSet.Open(cmd); | |||
| 19
    
        Ёпрст гуру 06.12.13✎ 08:15 | 
        select max(id) from wrk_org
 например.. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |