|
v7: MySQL ADODB.Connection помогите получить количество обновленных или вставленных строк | ☑ | ||
---|---|---|---|---|
0
sysadminlk
27.09.24
✎
07:13
|
Попытка
ТаблицаЗаписей = СоздатьОбъект("ТаблицаЗначений"); Соед = СоздатьОбъект("ADODB.Connection"); Соед.Open("driver={MySQL ODBC 5.1 Driver}; server="+server+"; uid="+uid+"; pwd="+pwd+"; database="+database+"; port=3306; STMT=SET CHARACTER SET cp1251"); RS = CreateObject("ADODB.Recordset"); RS.Open(ТекстЗапроса, Соед); Если RS.State = 0 Тогда Перейти ~Конец; КонецЕсли; Для НомПол=0 По RS.Fields().Count-1 Цикл ТаблицаЗаписей.НоваяКолонка(СокрЛП(RS.Fields(НомПол).Name)); КонецЦикла; НомСтроки = 0; Пока RS.EOF() = 0 Цикл НомСтроки=НомСтроки+1; ТаблицаЗаписей.НоваяСтрока(); Для НомерКолонки=1 По ТаблицаЗаписей.КоличествоКолонок() Цикл ТаблицаЗаписей.УстановитьЗначение(НомСтроки,НомерКолонки,СокрЛП(RS.Fields(НомерКолонки-1).Value)); КонецЦикла; RS.MoveNext(); КонецЦикла; RS.Close(); ~Конец: RS=""; Соед.Close(); Соед=""; Возврат ТаблицаЗаписей; Исключение Возврат ОписаниеОшибки(); КонецПопытки; |
|||
1
sysadminlk
27.09.24
✎
07:15
|
р = ВыпЗапросНаСайтттт("INSERT INTO `copysms` SET `phone`='111', `text`='111';
|SELECT CONVERT(ROW_COUNT(), CHAR) AS 'row';"); Сообщить(р); Если ТипЗначенияСтр(р) = "ТаблицаЗначений" Тогда глПоказатьТаблицуЗначений(р); КонецЕсли; Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 5.1 Driver][mysqld-5.1.73]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 'SELECT CONVERT(ROW_COUNT(), CHAR) AS 'row'' at line 2 |
|||
2
sysadminlk
27.09.24
✎
08:16
|
Отбой уже нашел как
Функция РаскрытьВыборку(Выборка) ТаблицаЗаписей = СоздатьОбъект("ТаблицаЗначений"); Для НомПол=0 По Выборка.Fields().Count-1 Цикл ТаблицаЗаписей.НоваяКолонка(СокрЛП(Выборка.Fields(НомПол).Name)); КонецЦикла; НомСтроки = 0; Пока Выборка.EOF() = 0 Цикл НомСтроки=НомСтроки+1; ТаблицаЗаписей.НоваяСтрока(); Для НомерКолонки=1 По ТаблицаЗаписей.КоличествоКолонок() Цикл ТаблицаЗаписей.УстановитьЗначение(НомСтроки,НомерКолонки,СокрЛП(Выборка.Fields(НомерКолонки-1).Value)); КонецЦикла; Выборка.MoveNext(); КонецЦикла; Возврат ТаблицаЗаписей; КонецФункции // РаскрытьВыборку Функция ВыпЗапросНаСайт(Запросы, server="", userid="user",password="qwerty",database="main") Экспорт server = ?(ПустоеЗначение(server)=1,ИпСервера,server); Итоги = СоздатьОбъект("СписокЗначений"); Попытка Connection = СоздатьОбъект("ADODB.Connection"); Connection.Open("driver={MySQL ODBC 5.1 Driver}; server="+server+"; uid="+userid+"; pwd="+password+"; database="+database+"; port=3306; STMT=SET CHARACTER SET cp1251"); Если Connection.State = 1 Тогда Если ТипЗначенияСтр(Запросы) = "Строка" Тогда Список = СоздатьОбъект("СписокЗначений"); Для НомСтр=1 По СтрКоличествоСтрок(Запросы) Цикл Стр = СтрПолучитьСтроку(Запросы,НомСтр); Список.ДобавитьЗначение(СокрЛП(Стр)); КонецЦикла; Запросы = Список; КонецЕсли; Для Ном=1 По Запросы.РазмерСписка() Цикл Выборка = Connection.Execute(Запросы.ПолучитьЗначение(Ном)); Если Выборка.State = 0 Тогда Выборка = Connection.Execute("SELECT CONVERT(ROW_COUNT(), CHAR) AS 'affected_rows';"); КонецЕсли; Если Запросы.РазмерСписка() = 1 Тогда ТабЗнач = РаскрытьВыборку(Выборка); Connection.Close(); Connection=""; Возврат ТабЗнач; Иначе Итоги.ДобавитьЗначение(РаскрытьВыборку(Выборка)); КонецЕсли; КонецЦикла; Connection.Close(); Connection=""; Возврат Итоги; Иначе Сообщить("Connection.State:"+Connection.State+""); КонецЕсли; Исключение Возврат ОписаниеОшибки(); КонецПопытки; КонецФункции //ВыпЗапросНаСайт |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |