|
ADO MySQL | ☑ | ||
---|---|---|---|---|
0
abuca
30.10.13
✎
11:34
|
Вот текст модуля
ПарамСоедСайт = Новый ПараметрыСоединенияВнешнегоИсточникаДанных; Соединение = Новый COMОбъект("ADODB.Connection"); ПарамСоедСайт= "DRIVER={MySQL ODBC 3.51 Driver};SERVER=SERVER;DATABASE=DATABASE;UID=UID;PWD=PWD;Option=3"; Соединение.Open(ПарамСоедСайт); НаборЗаписей = Новый COMОбъект("ADODB.RecordSet"); НаборЗаписей.CursorLocation = 3; НаборЗаписей.LockType = 3; НаборЗаписей.ActiveConnection = Соединение; НаборЗаписей.Open("SELECT * FROM " + Таблица + ";"); Для Каждого Стр Из МассивСтрок2 Цикл НаборЗаписей.AddNew(); Для Каждого Кл Из Товары.Колонки Цикл Если Кл.Имя = "Синхронизировать" Тогда // добавлена нами Стр[кл.Имя]=Ложь; Продолжить; КонецЕсли; Зн = Стр[кл.Имя]; НаборЗаписей.Fields(кл.Заголовок).value=Зн; КонецЦикла; КонецЦикла; НаборЗаписей.Update(); НаборЗаписей.Close(); Соединение.Close(); Ошибка: {Форма.Форма.Форма(547)}: Ошибка при вызове метода контекста (AddNew) НаборЗаписей.AddNew(); по причине: Произошла исключительная ситуация (Microsoft Cursor Engine): Поставщик данных или другая служба вернули состояние E_FAIL. Проследил в отладчике, ошибка возникает после выполнения запроса. Запрос ВЫПОЛНЯЕТСЯ! Записи в набор попадают. Аналогичная проблема разбиралась: v8: V8: Работа с ADO Попытка установить НаборЗаписей.CursorLocation = 2 или 1 Позволяет работать AddNew() но, перестает работать НаборЗаписей.Fields(кл.Заголовок).value=Зн; на строковых полях неограниченной длины: {Форма.Форма.Форма(552)}: Ошибка при установке значения атрибута контекста (Value) НаборЗаписей.Fields(кл.Заголовок).value=Зн; по причине: Произошла исключительная ситуация (Provider): Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена. Надо заметить, что с другой похожей по структуре таблицей все проходит на ура и со строками неограниченной длины и с AddNew() с настройкой рекордсета CursorLocation = 3; Помогите! Третий день бьюсь! |
|||
1
abuca
30.10.13
✎
11:48
|
UP
Можно воспользоваться INSERT INTO но, там 62 столбца, надо ли прописывать значение каждого? Я не силен в MySQL если кто знает подскажите как сделать с помощью INSERT |
|||
2
Jonny_Khomich
30.10.13
✎
11:56
|
(1) можно прописать только те колонки, которые хочешь добавить.
|
|||
3
Serginio1
30.10.13
✎
12:01
|
(1) Там для длинных строк нужно размер указывать. Помню с Экселем мучался
Если Парам.Type=203 Тогда Парам.Size=СтрДлина(Значение)+1; КонецЕсли; Парам.Value=Значение; |
|||
4
abuca
30.10.13
✎
12:30
|
(2)
{Форма.Форма.Форма(542)}: Ошибка при вызове метода контекста (Execute) Соединение.Execute("INSERT INTO " + Таблица + " (product_id, product_quantity, name_ru-RU) values (22, 100, АбырвалГ);"); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver][mysqld-5.1.70-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-RU) values (22, 100, АбырвалГ)' at line 1 поля, где в названии есть "-" ODBC начинает истерить Можно ли INSERT INTO использовать не с названиями полей а с их порядковыми номерами? Подскажите синтаксис. (3) сейчас в отладчике гляну что в типе возвращает |
|||
5
Серго62
30.10.13
✎
12:36
|
Вот тут почитай, может поможет...
http://www.script-coding.com/ADO.html |
|||
6
abuca
30.10.13
✎
12:37
|
(3) тип, я так понял 200 и видно, что Value недоступно ни для чтения ни для записи:
Value Неопределено Выражение Значение Тип ActualSize 0 Число Attributes 8 Число DataFormat Неопределено DefinedSize 255 Число Name "name_ru-RU" Строка NumericScale 255 Число OriginalValue Неопределено Precision 255 Число Properties COMОбъект COMОбъект Status 0 Число Type 200 Число UnderlyingValue Ошибка чтения значения Value Неопределено |
|||
7
abuca
30.10.13
✎
12:41
|
(5) Респект! Этого очень не хватало! В сети собирал все разрозненно.
Item(index) Возвращает элемент коллекции по имени или порядковому номеру. попробую так. |
|||
8
1dvd
30.10.13
✎
12:45
|
(4) разве АбырвалГ не должен быть в кавыках?
|
|||
9
abuca
30.10.13
✎
12:51
|
(8) пробовал и 'Абырвалг' но до него не доходит. Дефис не нравится в названии поля. Сразу оговоримся. Названия полей в MySQL править не будем.
|
|||
10
Serginio1
30.10.13
✎
13:32
|
Попрбуй для интереса
Соединение.Execute("INSERT INTO " + Таблица + " (product_id, product_quantity, [name_ru-RU]) values (22, 100, АбырвалГ);"); |
|||
11
abuca
30.10.13
✎
13:37
|
(10)
{Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (Execute) Соединение.Execute(ТекстЗапроса); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 3.51 Driver][mysqld-5.1.70-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[name_ru-RU]) values (22, 100, АбырвалГ)' at line 1 |
|||
12
Ёпрст
30.10.13
✎
13:40
|
Соединение.Execute("INSERT INTO " + Таблица + " (product_id, product_quantity,name_ru-RU) values (22, 100, 'АбырвалГ');");
|
|||
13
Ёпрст
30.10.13
✎
13:41
|
Соединение.Execute("INSERT INTO " + Таблица + " (product_id, product_quantity, [name_ru-RU]) values (22, 100, 'АбырвалГ')");
|
|||
14
Ёпрст
30.10.13
✎
13:41
|
так точнее.
|
|||
15
Ёпрст
30.10.13
✎
13:46
|
ну или можно так еще попробовать
Соединение.Execute("INSERT INTO " + Таблица + " (product_id, product_quantity, `name_ru-RU`) values (22, 100, 'АбырвалГ')"); |
|||
16
Ёпрст
30.10.13
✎
13:46
|
с обратными ковычками для поля с дефисом
|
|||
17
abuca
30.10.13
✎
13:47
|
Ёпрст Ты Гений!!!! Кавычки!!!
|
|||
18
abuca
30.10.13
✎
13:48
|
Я уже форму написал куда запрос кидаю в виде строки.
Все перепробовал. Даже не знал где на клавиатуре есть такие ковычки )))) |
|||
19
Ёпрст
30.10.13
✎
13:50
|
(17) это не я.. это гугля
:) |
|||
20
Ёпрст
30.10.13
✎
13:52
|
надо бы это шнягу в базу знаний кинуть..
|
|||
21
Ёпрст
30.10.13
✎
13:52
|
мало ли.. кто будет еще искать
|
|||
22
Serginio1
30.10.13
✎
14:05
|
(21) Я тоже посмотрел на эти кавычки как какие то непривычные. Там и строки ими отделяют. А Вообще с My Sql тяжело работать, но многие его выбирают из-за бесплатности.
Блин у самого же есть ТекстЗапроса="SELECT name,part_number,description,description_russian,price,quantity |FROM `zap_stocks` |Where date_price<>'0000-00-00 00:00:00' and price>0 and |
|||
23
abuca
30.10.13
✎
14:11
|
Кстати, по этой причине невозможно использовать Внешниеисточникиданных для загрузки данных с хостинга.
При получении полей 1С меняет все "-" на "_" и из поля уже ничего не вытащить. Ругается на синтаксис. |
|||
24
abuca
30.10.13
✎
14:12
|
У меня задача наладить обмен с сайтом из УТ 10.3. Там базы на MySQL
|
|||
25
Serginio1
30.10.13
✎
14:30
|
(24) Кстати если сервер находится далеко, то можно сжать трафик добавив в строку соединения
COMPRESSED_PROTO=1 |
|||
26
fly7
07.11.13
✎
06:22
|
СПС !!!
тоже столкнулся с полем name_ru-RU спасло `name_ru-RU` 2 дня убил... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |