|   |   | 
| 
 | v7: Запись напрямую в табличку в базе на postgree из 7.7 | ☑ | ||
|---|---|---|---|---|
| 0
    
        mishaPH модератор 30.01.14✎ 13:12 | 
        Коллеги. 
 Как подключиться к имеющейся базе постгри и записать в табличку нужную данные. | |||
| 1
    
        МихаилМ 30.01.14✎ 13:14 | ||||
| 2
    
        mishaPH модератор 30.01.14✎ 14:06 | 
        гм
 что-то не выходит нашел пример. PostgresCON = СоздатьОбъект("ADODB.Connection"); ConnectionString = "Provider=PostgreSQL OLE DB Provider;Password=adempiere;User ID=adempiere;Data Source=192.168.20.200;Location=prod3;Extended Properties="; PostgresCON.Open(ConnectionString); Говорит Не удается найти указанный поставщик. Вероятно, он установлен неправильно. запустил 1.udl. действительно нет. и вроде бы psqlodbc.msi установил | |||
| 3
    
        mishaPH модератор 30.01.14✎ 15:19 | 
        гм. запустил
 немного с другой конструкцией. | |||
| 4
    
        dk 30.01.14✎ 15:22 | 
        дык запустил - делись мало ли кому потом понадобится     | |||
| 5
    
        mishaPH модератор 30.01.14✎ 15:26 | 
        Conn = СоздатьОбъект("ADODB.Connection");
 ConnectionString = "DRIVER={PostgreSQL Unicode};DATABASE=prod3;SERVER=192.168.20.200;PORT=5432;UID=adempiere;PWD=adempiere;"; ААА = Conn.Open(ConnectionString); Cmd = СоздатьОбъект("ADODB.Command"); Conn.BeginTrans(); Cmd.ActiveConnection = Conn; Cmd.CommandText = "select m_product_id, ad_client_id, ad_org_id, isactive, created, createdby from adempiere.m_product"; Попытка Res = Cmd.Execute(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Пока Res.Eof() = 0 Цикл //проверяем есть ли реквизит в базе ФлагУдСтр = 1; Для А=0 По 5 Цикл Сообщить(СокрЛП(Res.Fields(А).Name), Res.Fields(А).Value); КонецЦикла; Попытка Res.MoveNext(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; КонецЦикла;; Попытка Conn.CommitTrans(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка Conn.Close(); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; | |||
| 6
    
        mishaPH модератор 30.01.14✎ 15:26 | 
        СокрЛП(Res.Fields(А).Name
 имя поля выдает значение Res.Fields(А).Value выдает ошибку как получить значение поля??? | |||
| 7
    
        mishaPH модератор 30.01.14✎ 15:27 | 
        Тип переменой не поддерживается говорит.     | |||
| 8
    
        ДенисЧ 30.01.14✎ 15:28 | 
        Res.Fields("m_product_id").Name
 так что говорит? Тип переменной в таблице какой? | |||
| 9
    
        mishaPH модератор 30.01.14✎ 15:32 | 
        гм. некоторые поля isactive, created выдает значение велью     | |||
| 10
    
        mishaPH модератор 30.01.14✎ 15:34 | 
        в общем он не хочет выдавать типы полей которые numeric     | |||
| 11
    
        mishaPH модератор 30.01.14✎ 15:36 | 
        значение полей. через Value     | |||
| 12
    
        dk 30.01.14✎ 15:37 | 
        кастани в другой тип     | |||
| 13
    
        ДенисЧ 30.01.14✎ 15:40 | 
        (10) numeric и ado в 77 очень не дружат. Так что приводи к другому типу в самом запросе.     | |||
| 14
    
        mishaPH модератор 30.01.14✎ 15:44 | 
        (13) понятно. но мне более надо будет insert делать там как с типом. нумерик это вроде число. числа из 1с прокатит?     | |||
| 15
    
        mishaPH модератор 30.01.14✎ 15:44 | 
        это так пробный коннект был     | |||
| 16
    
        ДенисЧ 30.01.14✎ 15:45 | 
        (14) прокатят. По крайней мере мелкософтный вполне принимал и автоматически кастовал.     | |||
| 17
    
        mishaPH модератор 30.01.14✎ 15:45 | 
        (16) ок. попробую     | |||
| 18
    
        mishaPH модератор 03.02.14✎ 07:14 | 
        В общем и селект и инсерт нормально работают.
 при запросе типа селект. все значения в запросе тупо перевел в текст. все нормально прочиталось. С инсертом проблем небыло, даже ничего в текст не переводил. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |